Tabla de contenidos
Zend_OpenId es un componente de Zend Framework que ofrece
una API sencilla para construir sitios habilitados para OpenID y proveedores de identidad.
OpenID es un conjunto de protocolos para identidades digitales centradas en el usuario. Estos protocolos permiten a los usuarios crear una identidad en línea, mediante un proveedor de identidad. Esta identidad puede utilizarse en cualquier sitio que soporte OpenID. Usando sitios habilitados para OpenID, los usuarios no necesitan recordar los tokens de autenticación tradicionales, como nombres de usuario y contraseñas, para cada sitio. Todos los sitios habilitados para OpenID aceptan una única identidad OpenID. Esta identidad es típicamente una URL. Puede ser la URL de la página personal del usuario, su blog u otro recurso que pueda proporcionar información adicional sobre él. Eso significa que un usuario necesita solo un identificador para todos los sitios y servicios que utiliza. OpenID es una solución abierta, descentralizada y libre, centrada en el usuario. Los usuarios pueden elegir qué proveedor de OpenID utilizar, o incluso crear su propio servidor de identidad personal. No se requiere ninguna autoridad central para aprobar o registrar sitios habilitados para OpenID o proveedores de identidad.
Para más información sobre OpenID visite el sitio oficial de OpenID.
El propósito del componente Zend_OpenId es
implementar el protocolo de autenticación OpenID tal como se describe en el siguiente
diagrama de secuencia:
La autenticación es iniciada por el usuario final, quien pasa su identificador OpenID al consumidor OpenID a través de un agente de usuario.
El consumidor OpenID realiza la normalización y el descubrimiento sobre el identificador proporcionado por el usuario. Mediante este proceso, el consumidor obtiene el identificador reclamado, la URL del proveedor OpenID y una versión del protocolo OpenID.
El consumidor OpenID establece una asociación opcional con el proveedor utilizando claves Diffie-Hellman. Como resultado, ambas partes tienen un "secreto compartido" común que se utiliza para firmar y verificar los mensajes posteriores.
El consumidor OpenID redirige al agente de usuario a la URL del proveedor OpenID con una solicitud de autenticación OpenID.
El proveedor OpenID comprueba si el agente de usuario ya está autenticado y, si no, ofrece hacerlo.
El usuario final introduce la contraseña requerida.
El proveedor OpenID comprueba si tiene permitido pasar la identidad del usuario al consumidor dado, y pregunta al usuario si es necesario.
El usuario permite o deniega el paso de su identidad.
El proveedor OpenID redirige al agente de usuario de vuelta al consumidor OpenID con una solicitud de "autenticación aprobada" o "fallida".
El consumidor OpenID verifica la información recibida del proveedor utilizando el secreto compartido que obtuvo en el paso 3 o enviando una solicitud directa adicional al proveedor OpenID.
Zend_OpenId consta de dos subpaquetes. El primero
es Zend_OpenId_Consumer para desarrollar sitios habilitados
para OpenID, y el segundo es Zend_OpenId_Provider para desarrollar
servidores OpenID. Son completamente independientes entre sí y pueden usarse
por separado.
El único código común utilizado por estos subpaquetes es la extensión Simple
Registration de OpenID, implementada por la clase
Zend_OpenId_Extension_Sreg, y un conjunto de funciones
de utilidad implementadas por la clase Zend_OpenId.
![]() |
Nota |
|---|---|
|
El componente Zend_OpenId soporta los siguientes
estándares:
Protocolo de autenticación OpenID versión 1.1
Protocolo de autenticación OpenID versión 2.0 draft 11
Extensión Simple Registration de OpenID versión 1.0
Extensión Simple Registration de OpenID versión 1.1 draft 1
![[Note]](images/note.png)