了解Azure B2C Auth流程 - Oauth 2.0和openID连接

时间:2018-01-30 09:56:28

标签: azure oauth-2.0 openid-connect

我很难掌握B2C身份验证和授权流程。有人可以解释一下:

  • 如果我与同意的用户登录,为什么我们需要客户端凭据?什么时候使用这些客户端凭证?
  • 何时使用openID以及何时使用Oauth 2.0?
  • ID令牌和访问令牌之间有区别吗?如果是这样,那是什么区别,为什么我们需要两者? ID令牌是我登录时获得的ID,当我请求访问API时,访问令牌是我得到的吗?

1 个答案:

答案 0 :(得分:4)

  

如果我与同意的用户登录,为什么我们需要客户端凭据?什么时候使用这些客户端凭证?

您的应用需要在请求访问令牌时证明身份。

在授权代码流中,它们与授权代码一起使用,以在用户重定向回您的应用后获取访问令牌。

  

何时使用openID以及何时在流程中使用Oauth 2.0?

OpenID Connect向OAuth添加身份验证,专注于授权。因此,当您将用户重定向到登录时,您正在使用OIDC。然后,当您通过交换凭据获得访问令牌时,您正在使用OAuth。 (这至少是我的理解)

  

ID令牌和访问令牌之间有区别吗?如果是这样,那是什么区别,为什么我们需要两者? ID令牌是我登录时获得的ID,当我请求访问API时,访问令牌就是我得到的吗?

是。虽然它们在某些方面相似。登录后会给出一个Id令牌(如果你要求的话)。它旨在识别用户并由请求身份验证的应用程序使用。它包含用户的显示名称等声明。应用程序请求访问令牌,但该应用程序不应读取它。它旨在附加到另一个API的请求,然后另一个API验证令牌并从中获取调用者的信息。你的理解是正确的。