使用 OAuth2 和 OpenID Connect 进行会话管理/撤销



假设我有一个场景,即用户使用 OAuth2/OpenID Connect 流通过身份提供程序登录到客户端应用程序,如何管理决定撤销客户端对其配置文件的访问权限的用户?也就是说,如何确保客户端应用程序自动终止本地会话?

如上所述,在使用外部提供程序登录时,是否有在客户端应用程序级别实现会话管理的推荐方法?

TL;DR:如何使用OAuth2/OpenID Connect流程实现单点注销?

您可以查看 OpenID 会话管理草稿:

此规范是对OpenID Connect Core 1.0的补充。 [OpenID.Core] 规范,通过定义如何监控最终用户的 持续在 OpenID 提供程序上的登录状态,以便信赖方可以注销已注销OpenID 的最终用户 供应商。

互联网上也有一些关于这个主题的文档:

  • https://medium.com/@technospace/managing-sessions-with-openid-connect-d3b6fb4f552b
  • https://oa.dnc.global/web/-OpenID-Connect-SSO-management-de-session-etc-.html#draftmanagementdesessionopenidconnect
  • https://connect2id.com/products/server/docs/api/check-session

你也可以检查 django-oidc-provider 是如何管理的: https://django-oidc-provider.readthedocs.io/en/latest/sections/sessionmanagement.html

最新更新