Security 我应该为PWA和x2B使用哪种OAuth2身份验证流;服务器端应用程序
我正在尝试为应用程序选择正确的身份验证流:Security 我应该为PWA和x2B使用哪种OAuth2身份验证流;服务器端应用程序,security,authentication,oauth,oauth-2.0,Security,Authentication,Oauth,Oauth 2.0,我正在尝试为应用程序选择正确的身份验证流: Fontend是一款只能通过HTTPS访问的渐进式Web应用程序。它是在有角度的单页应用程序中完成的 外部授权服务器 可通过REST调用访问后端 目前,我正在使用授权代码授权流 我试过什么: 我查过了。有一个可能的流列表(授权代码、隐式、密码、客户端凭据、设备代码等), 但没有明确指示如何在两者之间进行选择 然后我在Auth0.com上找到了。不幸的是,他们的方案中不存在PWA+服务器端beckend 您能告诉我什么OAuth2流程适合我的环境
- Fontend是一款只能通过HTTPS访问的渐进式Web应用程序。它是在有角度的单页应用程序中完成的
- 外部授权服务器
- 可通过REST调用访问后端
- 我查过了。有一个可能的流列表(授权代码、隐式、密码、客户端凭据、设备代码等), 但没有明确指示如何在两者之间进行选择
- 然后我在Auth0.com上找到了。不幸的是,他们的方案中不存在PWA+服务器端beckend
- 您拥有并开发前端(Angular应用程序)和后端(服务器端REST API)
- 您希望将身份验证外包给第三方身份提供商
- 您希望Angular应用程序(客户端)持有令牌,并能够在后端(资源服务器)上进行身份验证,并在第三方(授权服务器/身份提供商(IdP))上建立您的用户(资源所有者)的身份
与隐式流相比的风险是,如果Angular应用程序被破坏,用户凭据将被泄露给攻击者。你是否愿意接受这种风险完全取决于你自己。请注意,如果IdP是一项知名服务(例如社交网站),这显然不起作用,因为作为您的用户,我不想为您的应用程序提供我的社交网站密码。但是,只要您管理用户,信任客户机是可以接受的。“问题是您的客户机是否有一个服务器端来安全地保存秘密”。什么是“服务器端”?当你有一个API,你也可以让它存储在服务器上的秘密,或不?因此,我并不完全明白其中的区别…@musicformellons好吧,这是一个很好的观点,当我写上面的答案时,我认为这个客户端和API是两个独立的东西。如果两者之间没有太多的耦合,那么以这种方式耦合它们并让API为客户端保守秘密可能是没有意义的。如果它们是非常耦合的(它是“一个应用程序”,前端代码在SPA中,后端代码在API中),那么您可能会认为它实际上是有意义的,是的。谢谢你指出这一点!