Oauth 2.0 使用IDaaS基于OIDC的社交登录是否有标准模式?

Oauth 2.0 使用IDaaS基于OIDC的社交登录是否有标准模式?,oauth-2.0,single-page-application,openid-connect,auth0,okta,Oauth 2.0,Single Page Application,Openid Connect,Auth0,Okta,场景:基于openid connect的SPA社交登录 案例1: 如果SPA已在社交身份验证提供商(例如Google)注册为OAuth 2.0客户端,OAuth/OIDC角色映射如下: 资源所有者=正在验证用户 客户=水疗中心 授权服务器=社交身份验证提供商(例如谷歌) 资源服务器=社会认证提供商(例如谷歌) 案例2: 现在,让我们考虑使用IAAs(SPE.OKTA/AUT0)的SPA的社会认证的情况。IDaaS已向社会认证提供商(例如Google)注册了OAuth 2.0客户端,SPA已向

场景:基于openid connect的SPA社交登录

案例1: 如果SPA已在社交身份验证提供商(例如Google)注册为OAuth 2.0客户端,OAuth/OIDC角色映射如下:

  • 资源所有者=正在验证用户
  • 客户=水疗中心
  • 授权服务器=社交身份验证提供商(例如谷歌)
  • 资源服务器=社会认证提供商(例如谷歌)
案例2: 现在,让我们考虑使用IAAs(SPE.OKTA/AUT0)的SPA的社会认证的情况。IDaaS已向社会认证提供商(例如Google)注册了OAuth 2.0客户端,SPA已向IDaaS注册了OAuth 2.0客户端

问题:这个用例是两个OIDC流(嵌套)的组合吗

流程1:

  • 资源所有者=正在验证用户
  • 客户=IDaaS(例如Okta)
  • 授权服务器=社交身份验证提供商(例如谷歌)
  • 资源服务器=社会认证提供商(例如谷歌)
(此时,社交提供商已将id_令牌(iss=Google,aud=IDaaS)声明为IDaaS重定向_uri)

流程2:

  • 资源所有者=正在验证用户
  • 客户=水疗中心
  • 授权服务器IDaaS(例如Okta)
  • 资源服务器:IDaaS(例如Okta)
(最后,IDaaS已将id_令牌(iss=IDaaS,aud=SPA)断言为SPA重定向_uri,此时SPA的身份验证已完成)

上述理解正确吗


另外,对于这种涉及使用IDaaS作为身份代理的体系结构,是否有标准的OIDC/OAuth模式?

您使用的是一个名为OAuth 2.0/OpenID Connect federation的概念。身份提供程序供应商使用此集成外部身份提供程序,而不是作为标准

案例1纯粹使用OAuth 2.0和OpenID connect。SPA仅仅依靠授权服务器来发行令牌

案例2中,您依赖外部身份提供商(如您的解释中所述,例如:-谷歌)进行用户身份验证。如果您比较您的配置,您将IDaaS配置为Google的客户端。然后你的SPA成为IDaaS的客户

此用例是两个OIDC流的组合吗?

不,它使用相同的OIDC流。但IDaaS没有直接联系谷歌,而是提出了请求(而不是转发请求)。IDaaS将创建授权请求并将SPA引导到Google的登录页面。这是由IDaaS获取注册的详细信息,如重定向URL、客户端id和客户端机密来完成的

作为客户端,您将获得登录页面并提供凭据。完成后,OAuth 2.0/OpenID连接重定向将发生在IDaaS上(注意-在Google上,我们配置了重定向URL到IDaaS)。IDaaS将接收重定向并对其进行处理。根据使用的流,步骤中将涉及令牌请求。然后进行令牌处理

在此步骤中,IDaaS将在内部替换令牌。它将首先验证谷歌发行的代币。如果令牌有效,IDaaS将创建一个新的令牌,其中包含谷歌要求的声明以及设置为SPA已知值的受众和发行者值

基本上IDaaS接收原始的Google令牌。SPA接收IDaaS创建的令牌。这是相同的流程,但是中间IDAS与外部身份提供者一起工作