RPM*_*984 4 mobile access-token oauth-2.0 openid-connect identityserver3
我们公司正在构建一个移动应用程序 (iOS),它需要使用IdentityServer与我们的 API 进行通信,该 API 由 OpenIdConnect/OAuth2 保护。
我的问题是,我现在使用的大多数应用程序都要求用户登录/注册一次,然后就不再登录/注册。
假设他们使用 OAuth2 令牌访问 API,他们如何实现这一目标?
OAuth 支持offline_access通过“刷新”令牌,这允许用户无需再次登录即可获取新令牌。但是,它们也有有效期 - 因此考虑到以下情况:
此时,访问令牌和刷新令牌都已过期。他们如何获得新的凭据,而不提示用户再次输入凭据?
我了解 OpenIdConnect 有身份令牌的概念,只要它在服务器上处于活动状态,就可以获取新的访问令牌,而无需再次提示用户。
所以,我只能想到应用程序执行此操作的两种方式:
2 似乎是可能的,但这仅适用于涉及 SSO/cookie 的基于浏览器的 OAuth 流(隐式授权代码)。
对于具有本机登录(应用程序中的 U/P)的应用程序,它们很可能使用资源所有者密码凭据流程,该流程不支持 SSO(无浏览器,无 cookie)。那么他们如何获得新的令牌,除非他们在客户端应用程序本身中存储可逆的用户名/密码,然后再次将它们传递到身份验证服务器以获取新的令牌?
我缺少什么?
提前致谢。
这些应用程序通常使用长期刷新令牌,这些令牌不会按照您的建议在 30 分钟内过期,但可能会持续数周/数月,直到用户被迫再次登录。使刷新令牌的生命周期与访问令牌相同就达不到目的,因为刷新令牌应该是在旧令牌过期时可用于获取新访问令牌的令牌。刷新令牌的寿命通常比提供者处的用户身份验证会话的寿命长。
| 归档时间: |
|
| 查看次数: |
3893 次 |
| 最近记录: |