我们有一个预先存在的移动应用程序。用户将注册他的用户名和密码。目前我们有一个基于自定义令牌的身份验证。我们希望在不影响用户体验的情况下切换到 OAuth2。看起来资源所有者密码凭证对我们来说是最接近的流程,但是有很多建议反对使用它们...任何其他建议...我们计划使用 IdentityServer4
太棒了;采用授权码流程 + PKCE
对于无法转换(迁移)为完全 OAuth 客户端的客户端,可以授予资源所有者密码凭据。另外,请注意,规范严格提及与客户端和最终用户的信任关系。
From 规格
资源所有者密码凭据授予类型适用于
资源所有者拥有的情况信任关系与
客户端,例如设备操作系统 or a 高度特权
应用。授权服务器在以下情况下应特别小心:
启用此授权类型,并且仅在其他流不允许时才允许它
可行的。
所以你听到的都是正确的。仅当您别无选择时才必须使用此选项。请注意,通过使用此流程,您将失去 OAuth 2.0 的本质。您将向客户端公开最终用户凭据。!
迁移到 OAuth 2.0
移动客户端有公共客户。移动客户端的建议补助金是授权码授予类型。另外,由于它是公共客户端,您必须使用PKCE(OAuth 公共客户端代码交换的证明密钥)。 PKCE 为授权代码授予类型添加了额外的保护层。
迁移到 OAuth 2.0 需要对您的移动应用程序进行更改。您将必须重新设计应用程序的登录功能。但不要害怕,有很多优秀的库可用于支持 PKCE 的 OAuth 2.0。 IdentityServer4 也将支持这些协议。
如果您采用 OAuth 2.0,您就可以无缝更改授权服务器(通过某些配置)。这意味着同一应用程序可以使用来自不同授权服务器的用户。因此,请使用授权代码流程 + PKCE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)