GET https://aadb2cplayground.azurewebsites.net/#
access_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
&token_type=Bearer
&expires_in=3599
&scope="90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6 offline_access",
&id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
&state=arbitrary_data_you_sent_earlier
参数
说明
access_token
应用从 Azure AD B2C 请求的访问令牌。
token_type
令牌类型值。 Azure AD B2C 唯一支持的类型是 Bearer。
expires_in
访问令牌有效的时间长度(以秒为单位)。
scope
令牌的有效范围。 还可使用范围来缓存令牌,以供以后使用。
id_token
应用请求的 ID 令牌。 可以使用 ID 令牌验证用户的标识,开始与用户建立会话。 有关 ID 令牌及其内容的详细信息,请参阅 Azure AD B2C 令牌参考。
state
如果请求中包含 state 参数,响应中就应该出现相同的值。 应用需验证请求和响应中的 state 值是否相同。
错误响应
错误响应也可能发送到重定向 URI,让应用能够对其进行适当处理:
GET https://aadb2cplayground.azurewebsites.net/#
error=access_denied
&error_description=the+user+canceled+the+authentication
&state=arbitrary_data_you_can_receive_in_the_response
参数
说明
error
一个代码,用于对发生的错误类型进行分类。
error_description
帮助识别身份验证错误根本原因的特定错误消息。
state
如果请求中包含 state 参数,响应中就应该出现相同的值。 应用需验证请求和响应中的 state 值是否相同。
验证 ID 令牌
收到 ID 令牌并不表示可以对用户进行身份验证。 根据应用的要求验证 ID 令牌的签名和令牌中的声明。 Azure AD B2C 使用 JSON Web 令牌 (JWT) 和公钥加密对令牌进行签名并验证其是否有效。
GET https://aadb2cplayground.azurewebsites.net/#
error=user_authentication_required
&error_description=the+request+could+not+be+completed+silently
参数
说明
error
错误代码字符串,可用于对发生的错误类型进行分类。 还可使用该字符串对错误作出响应。
error_description
帮助识别身份验证错误根本原因的特定错误消息。
如果在 iframe 请求中收到此错误,用户必须再次以交互方式登录以检索新令牌。
刷新令牌
ID 令牌和访问令牌在较短时间后都会过期。 应用必须准备好定期刷新这些令牌。 由于安全原因,隐式流不允许你获取刷新令牌。 要刷新任一类型的令牌,请在隐藏的 HTML iframe 元素中使用隐式流。 在授权请求中包含 prompt=none 参数。 要接收新的 id_token 值,请务必使用 response_type=id_token 和 scope=openid 以及一个 nonce 参数。
发送注销请求
如果想要将用户从应用中注销,请将用户重定向到 Azure AD B2C 的注销终结点。 然后,可以在应用中清除用户的会话。 如果不对用户进行重定向,用户可能不需要输入其凭据就能重新通过应用的身份验证,因为他们与 Azure AD B2C 之间仍然存在有效的单一登录会话。
只需将用户重定向到验证 ID 令牌中所述的相同 OpenID Connect 元数据文档中列出的 end_session_endpoint。 例如:
GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/logout?post_logout_redirect_uri=https%3A%2F%2Faadb2cplayground.azurewebsites.net%2F
参数
必需
说明
{tenant}
是
Azure AD B2C 租户的名称。
{policy}
是
想要用于从应用程序中注销用户的用户流。 这需要与应用用于登录用户相同的用户流。
post_logout_redirect_uri
否
用户在成功注销后应重定向到的 URL。如果未包含此参数,Azure AD B2C 会向用户显示一条常规消息。
state
否
如果请求中包含 state 参数,响应中就应该出现相同的值。 应用程序需验证请求和响应中的 state 值是否相同。
备注
如果将用户定向到 end_session_endpoint,这将清除用户的某些 Azure AD B2C 单一登录状态。 但是,不会从用户的社交标识提供者会话中注销该用户。 如果用户在后续登录中选择相同的标识提供者,用户将重新进行身份验证,且无需输入其凭据。 例如,如果用户要注销 Azure AD B2C 应用程序,并不表示他们想要完全注销其 Facebook 帐户。 但是,如果是本地帐户,则会以正确的方式结束用户的会话。