Inicio Rápido

¿Cuántos perfiles mantienes hoy en diferentes sitios web?. Quizás tienes una cuenta Yahoo!, una en Facebook, otra en Google, etc. Cada vez que se actualiza un dato personal, teléfono o dirección, tienes que actualizarlo en cada lugar o mantener datos desactualizados. OpenID soluciona este problema de datos de perfil distribuidos por diferentes proveedores. Con OpenID, mantienes tu perfil solamente en tu OpenID provider. Y todos los otros sitios se transforman en OpenID relying parties. Estos “hablan” con tu proveedor OpenID para obtener tu información de perfil.

Cada vez que intentes entrar a un sitio web OpenID relying party; serás redireccionado al OpenID provider. Ahí deberás autenticarte y aprobar el requerimiento de atributos hecho por el relying party. Al aprobar, eres redireccionado de vuelta al sitio del relying party con los atributos del request.

Con SSO, solamente autentificas en el proveedor OpenID. Esto siendo, un relying party te redirecciona por primera vez. Luego de eso, el OpenID provider no vuelve a consultar por credenciales, sino que utiliza la sesión creada previamente. Esta sesión autenticada es mantenida ya sea por una cookie hasta que el browser sea cerrado, o por una cookie persistente.

sequenceDiagram;
    participant Usuario
    participant Relying Party
    participant OpenID Provider
    Usuario->>+Relying Party: Intento de Login
    Relying Party-->>-Usuario: Login link
    Usuario->>Usuario: Click link
    alt auth flow
        Usuario->>+OpenID Provider: Login request
        OpenID Provider-->>-Usuario: Render toma de evidencias
        Usuario->>+OpenID Provider: Proporciona evidencias
    end
    alt consent flow
        OpenID Provider-->>-Usuario: Render toma consentimientos
        Usuario->>+OpenID Provider: Proporciona consentimientos
    end
    OpenID Provider-->>-Usuario: 302 callback url
    Usuario->>Usuario: resuelve 302
    Usuario->>Relying Party: Entrega code
    Relying Party->>OpenID Provider: Intercambio code por tokens
    OpenID Provider->>Relying Party: AccessToken y/o idToken