wpf - Active Directory B2C 注销 : what is the purpose then?

标签 wpf azure-ad-b2c logout azure-ad-graph-api

目前,我仍在研究为我的桌面应用程序实现 ADB2C 注销的解决方案(我们实现了访问 token (用于隐式流))。到目前为止,我发现的情况让我对 AD B2C 中注销功能的用途感到非常困惑(也可能在 OpenId 中?)。我意识到以下几点:

  1. 注销过程不会撤销已颁发的 ID token
  2. 没有什么可以阻止被阻止的用户使用刷新 token (在被阻止之前授予)获取另一个访问代码,并继续这样做,直到他们自己退出(来自 here )
  3. 来自 this link (实际上是一样的..)他们建议使用Azure Graph命令“invalidateAllRefreshTokens”,但是来自Official Microsoft documentation似乎仍处于测试阶段,在生产环境中不受支持。

所以现在我想知道使用注销过程的真正目的是什么。似乎我应该自己处理这一切(这很好),但是我仍然需要调用注销端点吗? Here他们说: 如果您的应用未转到注销端点,用户将重新对您的应用进行身份验证,而无需再次输入其凭据。原因是他们将与 Microsoft 身份平台进行有效的单点登录 session 。 但目前我无法理解这句话(可能是因为我仍然对所有这些感到有点震惊)坏消息)。所以我的问题是:您如何完成注销过程?从桌面应用程序注销时有什么需要注意的事项吗?感谢您的耐心和时间。

最佳答案

当您调用注销端点时,会发生一些事情:

  1. 访问和刷新 token 由客户端或 secret 服务器销毁
  2. AAD B2C session Cookie 已清除

此处注销的要点是,当合法用户请求在特定设备上注销并再次登录时,用户必须提供凭据。想象一下家庭或图书馆中的共享设备。用户必须注销才能保护自己。

您所担心的一切都与捕获其 token 并重放它们的合法用户有关。当用户是一开始进行身份验证的用户,并且是可以重新进行身份验证以获得这些 token 的用户时,这不是问题。

如果您担心的是,作为管理员,您会因为您的要求而迫使最终用户失去完全访问权限,而这并不是通过用户自愿注销来实现的,则由您作为管理员调用/revoke 端点来确定需求(尽管 AAD B2Cs session cookie 不会失效,只会失效 token )。

在这种情况下,用户将保持登录状态,直到其访问 token 过期。如果帐户在 token 撤销时被标记为禁用,则无论如何他们都将无法再次进行身份验证。如果这种情况对于您的服务安全运行至关重要,您希望缩短访问 token 的生命周期(最少:5 分钟)。

关于wpf - Active Directory B2C 注销 : what is the purpose then?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66507130/

相关文章:

javascript - Electron App - 如何在 15 分钟不活动后自动注销用户?

来自 django.contrib.auth.views 的 Python 导入注销 ImportError : cannot import name 'logout'

c# - 将文本框绑定(bind)到字典

c# - Grid Splitter 在对角线上工作?

wpf - 当所有子项都被禁用时,如何禁用顶级 WPF MenuItem?

azure - 在Azure B2C中,如何限制用户通过社交媒体(gmail)和本地帐户(电子邮件)使用同一电子邮件注册/登录

Azure Active Directory B2C 隐藏成本

Azure AD B2C 忽略自定义 HTML 页面内容

c# - 隐藏ListView中的按钮

spring - 如何使用 Spring 安全手动注销用户?