Azure AD B2C开放ID连接性与OAuth 2.0

时间:2019-04-26 14:59:18

标签: azure oauth-2.0 openid-connect azure-ad-b2c

Azure AD B2C上的Microsoft文档中,我阅读了

  如果您要构建托管在服务器上并通过浏览器访问的Web应用程序,则建议使用

OpenID Connect。如果要使用Azure AD B2C向移动或桌面应用程序添加身份管理,则应使用OAuth 2.0而不是OpenID Connect。

Azure AD B2C中OpenID Connect和OAuth 2.0的作用是什么,它们分别支持哪些功能?

1 个答案:

答案 0 :(得分:2)

这个问题不是很正确。在同一页面上,您可以阅读

  

OpenID Connect扩展了OAuth 2.0授权协议,以用作   认证协议。通过此身份验证协议,您可以   执行单点登录。它介绍了ID令牌的概念,   允许客户端验证用户身份并获得   有关用户的基本个人资料信息。

OpenID Connect(OIDC)是OAuth 2.0的扩展或超集标准/ RFC。两种协议都定义了身份验证流程,而OAuth2有点通用,这是一个通用框架,它提供了很多选择自由,OIDC详细指定了重要方面。 OIDC除了将访问令牌,混合流,令牌自省端点等流添加到OAuth2外,还以JWT格式添加了id_token。

通常OAuth2与OIDC一起提供。如果您想详细了解不同之处,则可以使用OIDCOAuth2

的RFC。

因此,您的问题是关于协议差异的,除了RFC外,您还可以找到很多信息。这是IMO的好文章link

简而言之:

OAuth2

  • 使用访问令牌但未指定格式
  • 授权码授予
  • 隐性补助金
  • 资源所有者密码凭据授予
  • 客户凭证授予

OIDC

  • 通过id_token使用来扩展访问令牌。 JWT格式的id_token
  • 令牌端点,自发令牌,脱机访问
  • 授权代码流(扩展到授权代码授予)
  • 隐式流(扩展授权码授予)
  • 混合流

B2C专注于从消费者应用程序的客户端应用程序一侧使用。创建IdP提供程序时,Azure B2C支持已经存在的社交提供程序(Facebook,Microsoft等),实际上是具有专有扩展名的OIDC或自定义OIDC IdP提供程序。就API和身份验证流程而言,这对于任何IdP提供程序来说都是非常典型的,它同时支持两者,因此您可以将HTTP API用于OAuth2或OIDC,建议使用OIDC。