OAuth和OpenID Connect SSO
OAuth是一种授权协议,允许在服务器和服务之间进行经过身份验证的资源访问,而无需共享任何登录凭据。OpenID Connect是OAuth框架之上的身份层。
OAuth和OpenID Connect工作的基本组件是:
- 服务器: 这将验证用户凭据并提供用于登录的密钥。在我们的例子中,ADSelfService Plus充当服务器。
- 客户端应用: 这是用户尝试登录的应用程序。
- 用户: 这是尝试登录到客户端应用程序的帐户。
OAuth 2.0
OAuth如何启用SSO:
- 当用户尝试登录应用程序时,它会向ADSelfService Plus发送授权请求。然后,用户被重定向至ADSelfService Plus登录页面,他们在此输入登录凭据。
- 验证成功后,将从ADSelfService Plus向应用程序发送授权码。
- 应用将授权码发送回ADSelfService Plus以接收访问令牌和刷新令牌。访问令牌充当用户访问应用程序受保护资源的限时密钥。刷新令牌是一个永久密钥,可用于在旧访问令牌过期后请求新的访问令牌。
- 现在,应用程序向ADSelfService Plus发送用户信息请求以及作为身份证明的访问令牌。对此请求的响应将返回完成登录过程所需的用户配置文件详细信息。
- 在应用程序端成功验证用户详细信息后,用户登录到应用程序。
OpenID Connect
OpenID Connect类似于OAuth SSO,但这里使用的是ID令牌。ID令牌包含ADSelfService Plus的签名和用户详细信息。这里有两种可能的情况。让我们了解一下这两种情况下的工作流程。
应用程序发起的登录
- 用户尝试登录到应用程序。应用程序向ADSelfService Plus发送授权请求。用户将重定向到ADSelfService Plus登录页面。
- 用户在此输入其登录凭据。验证成功后,将从ADSelfService Plus向应用程序发送授权码。
- 应用程序将授权码发送回ADSelfService Plus以接收ID令牌。此令牌包含完成登录过程所需的用户详细信息。
- 在验证ID令牌中ADSelfService Plus的签名后,应用程序从ID令牌中检索用户详细信息。
- 最后,在应用程序端成功验证用户详细信息后,用户登录到应用程序。
ADSelfService Plus启动的登录
- 用户成功登录ADSelfService Plus,转到应用程序标签,然后点击所需的应用程序。
- 在这种情况下,ADSelfService Plus直接向应用程序发送ID令牌。
- 在验证ID令牌中ADSelfService Plus的签名后,应用程序从ID令牌中检索用户详细信息。
- 在应用程序端成功验证用户详细信息后,用户登录到应用程序。
支持的作用域
作用域定义了服务提供商可以请求访问资源的访问级别。这些功能必须由管理员适当启用。ADSelfService Plus支持以下作用域:
- openid: 确定这是OpenID连接请求。这是OpenID Connect身份验证请求的强制范围。
- profile: 请求用户的配置文件声明(名和姓)。
- email: 请求用户的邮件属性。
- offline_access: 请求可用于接收新访问令牌的刷新令牌。
支持的应用