ADFS(Active Directory Federation Services)实现身份验证及单点登录(SSO,Single Sign-On)的过程涉及多个步骤,这些步骤确保用户只需一次登录就可以访问多个受信任的应用程序和服务。以下是ADFS实现单点登录的详细过程:
- 建立信任关系:
- ADFS首先与需要实现单点登录的应用程序或服务建立信任关系。这通常通过配置这些应用程序或服务的元数据来完成,这些元数据描述了它们如何与ADFS进行交互。
- 用户访问应用程序:
- 当用户尝试访问一个受ADFS保护的应用程序时,该应用程序会检测用户是否已经通过ADFS进行了身份验证。如果用户尚未登录,应用程序会将用户重定向到ADFS的登录页面。
- 身份验证:
- 在ADFS登录页面上,用户需要提供其Active Directory(AD)的凭据(通常是用户名和密码)。
- ADFS验证这些凭据是否有效,并检查用户是否有权访问请求的应用程序。
- 发放安全令牌:
- 如果身份验证成功,ADFS会生成一个安全令牌。这个令牌通常是一个SAML(Security Assertion Markup Language)或WS-Federation令牌,包含了用户的身份信息和授权信息。
- 令牌会被加密和签名,以确保其完整性和机密性。
- 令牌传递和验证:
- ADFS将令牌发送给最初用户尝试访问的应用程序。
- 应用程序接收到令牌后,会验证令牌的有效性,并提取用户的身份信息和授权信息。
- 访问应用程序:
- 一旦应用程序验证了令牌并提取了用户信息,它就会允许用户访问其资源或执行相应的操作。
- 用户现在可以在这个应用程序中自由操作,而无需再次输入用户名和密码。
- 会话管理和注销:
- ADFS和应用程序会管理用户的会话,确保会话的安全性,并在需要时结束会话。
- 当用户完成与应用程序的交互并希望注销时,可以通过ADFS的注销功能来结束会话,同时清除ADFS和应用程序中的会话信息。
通过这个过程,ADFS提供了一个集中化的身份验证机制,使得用户只需在ADFS中进行一次登录,就可以无缝地访问多个受信任的应用程序和服务,极大地提升了用户体验和安全性。
实现层面,其他受信任的应用程序首次登入时检查ADFS中是否存在用户的会话,如果存在且有该应用程序的访问权限则可以直接访问该应用程序而不需再次登入.
windows Server提供ADFS管理工具(类似IIS)用于配置相关信息。