为什么我不能使用OAuth进行身份验证?

时间:2018-04-18 04:04:10

标签: oauth-2.0 openid-connect

使用OAuth时,资源所有者需要输入其凭据。

每次资源所有者访问我的应用程序时,如果他没有连接到第三方授权服务器,他将始终必须输入其凭据。

为什么我不能将其视为我的应用程序的身份验证?为什么人们会把我扔在岩石上?#34; OpenID Connect"写在上面?

2 个答案:

答案 0 :(得分:1)

oAuth(开放授权)是一种协议,旨在仅解决委托授权问题。身份服务器提供访问令牌,该令牌旨在访问各自资源服务器上托管的资源。如果身份提供者选择使用不同的格式(仅可用于资源服务器)进行授权响应,则将来将委托授权响应作为身份验证响应可能会产生问题。

答案 1 :(得分:0)

在某些情况下,人们会使用OAuth2.0访问令牌进行身份验证。例如如果访问令牌是非加密的值类型令牌(例如JWT),那么客户端应用程序将访问令牌中的身份验证信息带走是非常诱人的。

然而,访问令牌并不意味着客户端使用,而是传递给用户委派访问权限的资源API。

客户端现在可能知道如何从令牌中获取用户ID,但不能保证令牌格式将来不会更改,或者切换为加密。这会破坏客户端,因为它依赖于不适合它的东西。

  

访问令牌专为资源服务器而设计

  • 令牌的格式,安全性和内容在资源服务器和授权服务器之间达成一致。
  

Id令牌是为客户(依赖方)设计的,即您的应用程序。

  • 这就是人们向你投掷OpenId Connect的原因。它是客户端可以依赖的固定格式令牌。此外,OpenId Connect还提供会话管理等有用的功能。