OAuth 2.0登录的正确注销流程是什么

OAuth 2.0登录的正确注销流程是什么,oauth,oauth-2.0,asp.net-identity,identity,logout,Oauth,Oauth 2.0,Asp.net Identity,Identity,Logout,让我们假设有一个身份服务器,用于登录和注销。还有一个android应用程序,它使用OAuth 2.0通过IS4登录和注销。现在,当您登录时,您将单击android应用程序上的登录按钮,通过web浏览器重定向到您登录的identity server,然后您将被重定向回该应用程序。我们还假设所有这些都有效,并且在整个过程结束时获得一个访问令牌 我遇到的问题是,注销您的行为应该是什么。现在我了解到,在android应用程序上,你只需清理访问令牌和刷新令牌,用户就不再可以访问应用程序中的任何地方。但是,

让我们假设有一个身份服务器,用于登录和注销。还有一个android应用程序,它使用OAuth 2.0通过IS4登录和注销。现在,当您登录时,您将单击android应用程序上的登录按钮,通过web浏览器重定向到您登录的identity server,然后您将被重定向回该应用程序。我们还假设所有这些都有效,并且在整个过程结束时获得一个访问令牌

我遇到的问题是,注销您的行为应该是什么。现在我了解到,在android应用程序上,你只需清理访问令牌和刷新令牌,用户就不再可以访问应用程序中的任何地方。但是,在浏览器上,您仍然登录。这就是我迷路的地方

要完全注销,我现在必须将用户重定向到web浏览器以在那里注销,因此现在至少需要单击两次注销才能真正注销。如果我使用正确的设计,我还应该有一个确认窗口来缓解某些攻击,现在可以点击3次注销。那么在这一切之后,你打算去哪里?这是困扰我的部分。我应该将您留在web浏览器中还是将您推回到应用程序登录屏幕上

请澄清我的问题,因为它们实际上是两个:

  • 我应该将用户重定向到要注销的网站,还是只将用户注销应用程序
  • 如果我在网站上注销用户,我应该让用户坐在打开浏览器的位置,还是让用户坐在打开应用程序的位置?基本上,最终目的地是什么

  • 您的身份提供者知道会话并将令牌存储在其数据库中。要真正以单次注销的方式注销,您需要在身份提供商处注销

    Open Id Connect提供用于发出注销请求的端点。见本规范第5节。

    OAuth 2.0本机未提及注销。但正如您所注意到的,OpenID Connect提供会话管理、前后通道注销机制