我们假设有一个身份服务器,用于登录和注销。然后,您有了一个使用OAuth 2.0通过IS4登录和注销的android应用程序。现在,当您登录时,您将在android应用程序上单击“登录”按钮,通过Web浏览器将其重定向到您登录的身份服务器,然后将您重定向回该应用程序。我们还假设所有这些工作都可以完成,并且在整个过程结束时您将获得一个访问令牌。
我遇到的问题是注销您的行为。现在,我了解到在android应用程序上,您可以简单地清理访问令牌和刷新令牌,并且用户不再可以在应用程序中的任何位置进行访问。但是,在您的浏览器上,您仍然可以登录。所以这是我迷路的部分。
要完全注销,我现在必须将用户重定向到Web浏览器,以在那里也注销,因此,现在至少要单击2次注销才能实际注销。如果我采用正确的设计,则还应该有一个确认窗口来减轻某些攻击,现在单击3即可注销。然后所有这些您想去哪里?这是困扰我的部分。我应该让您留在网络浏览器中还是应该在应用程序登录屏幕上将您推送回去?
请澄清我的问题,因为它们实际上是两个:
答案 0 :(得分:2)
您的身份提供者知道会话并将令牌存储在其数据库中。要以单点注销的方式真正注销,您需要在身份提供者处注销。
Open-Id-Connect提供端点以发出注销请求。请参阅规范的第5节。 https://openid.net/specs/openid-connect-session-1_0.html