gpt4 book ai didi

authentication - 使用第一方移动和单页应用程序的 OAuth 2 密码授予

转载 作者:行者123 更新时间:2023-12-04 06:48:45 27 4
gpt4 key购买 nike

我正在开展一个项目,该项目既有第一方移动应用程序又有单页网络应用程序。我想使用 OAuth 2 进行身份验证,但我想知道是否允许这些公共(public)第一方客户使用此授权类型是明智的,因为他们无法保护他们的客户凭据。

理想情况下,我不想将移动用户推送到外部浏览器或将 Web 应用程序用户推送到单独的网页以使用授权代码授予类型进行身份验证。

我能否使密码授予类型适用于这些客户端类型,或者我是否应该为第一方应用探索 OAuth 的替代方案?

最佳答案

对于“可信”应用程序,即您所说的“第一方”应用程序,通常可以使用移动应用程序的资源所有者密码授予。您将用户名和密码交换为访问 token 和刷新 token ,然后将其尽可能安全地存储在您的移动应用程序中。完成后不要忘记从内存中清除最终用户的用户名和密码。

对于单页应用程序,转到授权流程更像是隐式授权,您将通过片段中的重定向接收访问 token (#access_token=...),以便 SPA可以从那里拿起它。在这种情况下,SPA 永远不会在其自己的范围内拥有用户名和密码。这些只会暴露给授权服务器和/或身份提供者的登录界面(取决于您的实现)。

在 SPA 的情况下,您仍然会初始重定向到授权服务器以进行初始身份验证和授权;如果您需要刷新访问 token ,您可以查看 OIDC 规范,其中引入了额外的 &prompt=none 附加项,以通过隐式授权获取新的访问 token ,例如一个隐藏的 iframe。最后,此方法依赖于授权服务器与最终用户的用户代理(=浏览器)进行 session ,但与 SPA 的源(可以是任何类型的静态 Web 服务器)进行 session 。

关于authentication - 使用第一方移动和单页应用程序的 OAuth 2 密码授予,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46554451/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com