首页 文章

OAuth 2.0“隐式流程”如何比“资源所有者密码”更好?

提问于
浏览
2

我刚开始使用IdentityServer4并通过不同的教程和文章工作 .

我知道不同的架构有不同的流程 . 我主要构建单页应用程序(使用Angular) . 据我所知,我基本上有两种选项可以进行身份验证,然后进行授权:

  • 隐式流

  • 资源所有者密码(仅调用令牌 endpoints )

我看到的每个地方都表明,隐含流动会更好(在一方面或另一方面) .

这是为什么?

我将成为API和SPA的产品所有者 .

2 回答

  • 0

    Implicit流程优于资源所有者密码有几个原因:

    • /token endpoints 应该要求客户端机密,单页应用程序(SPA)无法保证其机密安全 .

    • 用户通常比使用它的应用程序更信任OAuth2服务器 . 使用资源所有者密码流时,您的应用程序会读取用户名和密码,因此用户可能不愿意输入它 .

    • 您的应用程序可能存在安全问题,会将密码暴露给攻击者 - 这是不必要的风险 .

    • 使用资源所有者密码流,很难实现多种不同的身份验证方法 . 使用Implicit流程,您可以免费获得 .

    也许其他人会添加其他没有出现在我脑海中的理由 .

  • 1

    除了Ján所做的好处之外,值得注意的是,如果您使用资源所有者密码流,您将不会获得SSO . 如果使用隐式流,Identity Server可以像任何网站一样存储用户,而使用资源所有者密码,您无法查看用户之前是否已使用Identity Server对其他服务进行了身份验证 .

相关问题