authentication - 与我自己的水疗中心一起使用时,OAuth2 资源所有者密码凭证授予是否安全?

标签 authentication oauth-2.0 openid-connect asp.net-core-webapi

我正在构建一个带有后端 api (asp.net core) 的 SPA (angular),两者都是构建的并且属于同一方。

我想使用 jwt 身份验证而不是基于 cookie 的身份验证,因为双方 - 后端和前端 spa - 属于同一方我正在考虑使用 OAuth 资源所有者密码授予流程将用户凭据暴露给网络应用应该没有任何问题。

在网络上搜索后,我看到很多不建议使用此流程的信息,但是如果 Web 客户端属于同一方的 api 并且我为什么要实现任何带有重定向到 auth 服务器的 OpenId Connect 流程授权服务器?

最佳答案

在您的案例中,问题不在于向客户端公开凭据,因为正如您所提到的,流程中的所有组件都由同一方控制。

然而,重定向也有一些优点,因为这样做可以将身份验证方法和手段与客户端本身分开。这使得例如:

  • 在不影响客户的情况下更改身份验证机制或升级到多因素(或其他一些高级形式的)身份验证
  • 跨不同网络应用程序的单点登录
  • 精细的每个客户权限
  • 无需更改用户密码即可轻松撤销访问权限
  • 减少最终用户对他们可以信任哪些应用程序/客户端的凭据的困惑

关于authentication - 与我自己的水疗中心一起使用时,OAuth2 资源所有者密码凭证授予是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46082358/

相关文章:

Spring Security 和 OpenID Connect (OIDC)

azure - 无法通过 Azure Active Directory (OpenIdConnect) 进行身份验证 - Azure Web 应用程序

node.js - Passport 使用 NextJs 和 Express 对每个请求调用 deserializeUser

javascript - 如何用 PHP 制作一个机器人来登录网站并在网站上做事

azure - OAuth 应用程序身份扩展类

oauth-2.0 - 在 Microsoft Graph API 中,获得管理员同意的应用是否可以为与批准它的管理员不同的用户生成 token ?

php - laravel 5.1 Auth::check() 500 内部服务器错误 afterJWTAuth::attempt($credentials) login

security - 如何进行最安全的Websocket认证

google-api - 无法刷新访问 token : response is "unauthorized_client"

openid-connect - 通过OpenID Connect over ADFS声明的用户组