OAuth和OpenID Connect使用

时间:2019-04-04 21:56:45

标签: oauth-2.0 openid-connect

我已经开始对OAuth 2.0规范感兴趣,不确定目前为止我所了解的内容是否正确。

OAuth是授权协议,而OpenID Connect是扩展OAuth的身份验证协议。

第一个用于处理客户端应用程序授权对第三方资源的访问。例如,您正在构建一些应用程序,并想使用其他一些应用程序(资源不是您自己拥有的)。

另一方面,OpenID connect处理授权,通过验证某个人的身份来授权某个人实体,例如,访问仅他/她自己有权访问的特定资源。例如,您是银行业务应用程序,并且允许用户访问其帐户,但是首先,他们需要与授权提供者确认其身份。

那么可以肯定地说,授权是针对应用程序交互的,而对于人机交互则是验证?

1 个答案:

答案 0 :(得分:1)

您对OAuth和OpenID Connect的理解是正确的。引入OAuth时,它定义了一种获取访问令牌的方法,持有方可以将其用于受OAuth访问令牌保护的端点。这样就可以将身份详细信息存储在一个中央位置(授权服务器或身份服务器),并在该中央位置维护令牌获取过程(也包括人工身份验证)。

虽然访问令牌用于授予访问权限(授权),但OpenID Connect引入的ID令牌会与访问令牌一起传输。客户端应用程序将使用ID令牌,该令牌用于验证最终用户。

获取令牌需要在授权服务器上进行身份验证。根据令牌获取流程(也称为OAuth授予),此身份验证将涉及人类用户。还可以遵循不涉及人类用户的流程。这样的流程只会产生访问令牌。而且OpenID Connect仅在涉及人类用户时才能使用。

问:可以肯定地说,授权是针对应用程序交互的,而对于人机交互则是验证?

如果您的应用程序(客户端)涉及最终用户,则该用户可以参与令牌获取流程。您可以获取访问令牌以及ID令牌。然后,您使用ID令牌进行最终用户身份验证。访问令牌用于与另一个端点连接。

如果您的应用程序不涉及最终用户(例如:一项服务),则您将使用OAuth获取访问令牌,该令牌用于另一个端点。