使用自定义策略从 Azure AD B2C 撤消访问权限

时间:2021-03-19 08:16:58

标签: azure-active-directory azure-ad-b2c-custom-policy

我们需要从与 Azure AD B2C 集成的设备注销用户。

应用程序将 Azure AD B2C 与自定义策略结合使用,在此组合中撤销刷新令牌似乎存在问题。 (我们使用的是授权码流)

我们已尝试通过对用户使用“撤销会话”以及使用 Graph API 的 invalidateAllRefreshTokens 来撤销访问权限,但用户仍处于登录状态并且可以检索访问和刷新令牌。

我们是否需要在自定义策略中实现撤销逻辑,或者这是 AD B2C 中的错误? 我们对自定义政策的实施基于 AD B2C 文档中的示例。

1 个答案:

答案 0 :(得分:0)

谢谢@Jason:

用于撤销与 Azure AD B2C 相关的会话的 Graph API 命令不会使 B2C 用户会话 cookie 失效。它只将 refreshTokenLastValidFrom 时间戳设置为当前时间。

参考:- https://docs.microsoft.com/en-us/graph/api/user-revokesigninsessions?view=graph-rest-1.0&tabs=http

当使用 SPA 应用、.Net 应用和 PKCE 流时,用户访问令牌到期将决定随后何时使用刷新令牌。如果此交换因调用 /revoke 端点而失败,则要求用户再次登录。

当要求用户再次登录时,如您所见,Azure AD B2C Web 会话 sso cookie 可能会提供 SSO(如果存在且有效)。否则,要求用户重新进行身份验证。您可以通过将 'prompt=login' 作为 loginRedirect() 方法的一部分传递来稍微强制该行为,以清除这种情况下的 cookie(当刷新令牌调用失败时)。

您还可以减少 Web 会话 SSO 提升时间,使 cookie 在更短的时间内有效,从而在一定程度上缩短用户在调用 /revoke 端点后无需重新验证而仍然可以访问的时间。

请注意,SPA PKCE 流中的刷新令牌仅在 24 小时内有效,缩短 Web 会话 SSO 生命周期也会影响尚未针对他们调用 /revoke 端点的用户。例如,如果用户访问另一个应用程序,由于 cookie 生命周期较短,他们可能无法获得 SSO。

如果您需要更多信息,请告诉我们。

相关问题