Así que me han dicho que nuestra aplicación PHP puede necesitar soportar la autenticación usando ADFS.
<fuerte<
Para una persona que no sea de Microsoft, ¿qué es ADFS?
¿En qué se diferencia de cosas como LDAP?
¿Cómo funciona? ¿Qué tipo de información se incluye en una solicitud típica a un servidor ADFS? ¿Está diseñado tanto para la autenticación como para la autorización?
¿Son los servidores ADFS normalmente accesibles desde Internet (mientras que los controladores de dominio AD corporativos no lo serían)?
;
He intentado leer algunos de los documentos de Technet, pero están llenos de jerga de Microsoft que no es de gran ayuda.
Wikipedia es mejor (ver más abajo), pero tal vez algunos de la comunidad ServerFault puede llenar algunos de los vacíos.
El Active Directory Federation Services (ADFS) es un componente de software desarrollado por Microsoft que puede instalarse en los sistemas operativos Windows Server para proporcionar a los usuarios un acceso único a los sistemas y aplicaciones ubicados más allá de los límites de la organización. Utiliza un modelo de autorización de control de acceso basado en reclamaciones para mantener la seguridad de las aplicaciones e implementar la identidad federada.
La autenticación basada en reclamaciones es el proceso de autenticación de un usuario basado en un conjunto de reclamaciones sobre su identidad contenidas en un token de confianza.
En el ADFS, la federación de identidades se establece entre dos organizaciones mediante el establecimiento de la confianza entre dos ámbitos de seguridad. Un servidor de federación en un lado (el lado de las Cuentas) autentica al usuario a través de los medios estándar en los Servicios de Dominio de Active Directory y luego emite un token que contiene una serie de afirmaciones sobre el usuario, incluyendo su identidad. En el otro lado, el de los Recursos, otro servidor de federación valida el token y emite otro token para que los servidores locales acepten la identidad reclamada. Esto permite a un sistema proporcionar un acceso controlado a sus recursos o servicios a un usuario que pertenece a otro ámbito de seguridad sin que el usuario tenga que autenticarse directamente en el sistema y sin que los dos sistemas compartan una base de datos de identidades o contraseñas de usuarios.
En la práctica, el usuario suele percibir este enfoque de la siguiente manera:
Para alguien que no sea de Microsoft, ¿qué es la ADFS?
ADFS es la solución de Microsoft para el inicio de sesión único y la autenticación basada en la web.
Se utiliza principalmente para proporcionar un único conjunto de credenciales que puede acceder a una variedad de sitios no necesariamente alojados en el mismo dominio.
¿En qué se diferencia de cosas como LDAP?
LDAP:
mod_authnz_ldap
.ADFS:
Véase también esta respuesta sobre el tema.
¿Cómo funciona? ¿Qué tipo de información se incluye en una solicitud típica a un servidor ADFS? ¿Está diseñado tanto para la autenticación como para la autorización?
Funciona teniendo un único sitio (sitio A) que aloja los servidores ADFS / proxy ADFS, que tiene acceso a las credenciales (normalmente comunicándose con un controlador de dominio de Active Directory). A continuación, se le da una confianza entre otros sitios (sitios B & C) que requieren la autenticación a través de la ADFS.
Cuando un usuario intenta acceder al sitio B en su navegador, el sitio redirige al usuario al sitio web del proxy ADFS (sitio A) que le pide su nombre de usuario y contraseña, lo autentifica, le devuelve un conjunto de cookies para recordarlo y lo redirige de nuevo al sitio B, junto con un token de acceso.
Si el usuario intenta visitar el sitio C, también será redirigido al sitio A para su autenticación desde el sitio web del proxy ADFS. Si existen las cookies adecuadas, el usuario no tendrá que volver a introducir su contraseña, sino que será redirigido de nuevo al sitio C con un token.
El ADFS puede ser configurado con reclamos específicos (o permisos) para el usuario, con fines de autorización. Por lo tanto, puede servir para ambas funciones. (Nótese la diferencia entre autenticación y autorización.
Algunas personas prefieren no utilizarlo para la autorización y mantener la gestión de permisos en el sitio web de terceros. La desventaja obvia es que tanto el sitio A como el B necesitan hacer un seguimiento de las cuentas de usuario, mientras que en el escenario en el que el ADFS maneja ambos, sólo el ADFS necesita estar al tanto de los usuarios.
¿Son los servidores ADFS normalmente accesibles desde Internet (mientras que los controladores de dominio AD corporativos no lo serían)?
Sí, casi siempre. El ADFS se basa en la idea de que se utilizará principalmente para la autenticación de sitios web. Y está construido alrededor de IIS.
El sitio ADFS-proxy es el que suele ser accesible desde Internet. Sin embargo, el propio ADFS no lo es. El ADFS es generalmente un servidor separado del ADFS-proxy.