场景:openid-基于连接的SPA社交登录。
案例1:在SPA中注册为OAuth 2.0客户端,向社会身份验证提供者(ex )注册。( Google) OAuth/OIDC的角色映射如下:
案例2:现在,让我们考虑使用IDaaS (ex )的SPA的社会身份验证的情况。Okta/Auth0)。IDaaS已经向社会认证提供商(如ex)注册了OAuth 2.0客户端。谷歌( Google)和SPA已经在IDaaS注册了一个IDaaS 2.0客户端。
问题:这个用例是两个OIDC流(嵌套的)的组合吗?
流程1:
(此时,社会服务提供商宣称id_token (iss=Google,aud=IDaaS)为IDaaS redirect_uri)
流程2:
(最后,IDaaS将id_token (iss=IDaaS,aud=SPA)断言为SPA redirect_uri,此时SPA的身份验证已经完成)。
以上的理解是否正确?
另外,对于这种涉及使用IDaaS作为身份代理的体系结构,是否有标准的OIDC/OAuth模式?
发布于 2018-11-09 04:30:29
您正在使用一个名为OAuth 2.0/OpenID联合的概念。身份提供者供应商使用这种集成的外部标识提供者,而不是作为标准。
案例1完全使用OAuth 2.0和OpenID连接。SPA只是依靠授权服务器来发出令牌。
在案例2中,用户身份验证依赖于外部身份提供程序(如您的解释所示)。如果您比较您的配置,您将IDaaS配置为谷歌的客户端。然后你的SPA成为IDaaS的客户。
这个用例是两个OIDC流的组合吗?
不,它使用的是同样的OIDC流。但是IDaaS没有直接联系Google,而是提出了请求(而不是转发请求)。IDaaS将创建授权请求并将SPA直接发送到Google的登录,page.This是通过IDaaS获得注册的详细信息,如重定向URL、客户端id和客户端机密。
作为客户端,您将获得登录页面并提供凭据。一旦完成,OAuth 2.0/OpenID重定向就会发生在IDaaS上(注意--我们在IDaaS上配置了将URL重定向到IDaaS)。IDaaS将接收重定向并处理它。根据所使用的流,该步骤将涉及一个令牌请求。然后继续进行令牌处理。
在这个步骤中,在内部,IDaaS将替换令牌。它将首先验证谷歌发布的令牌。如果令牌是有效的,IDaaS将创建一个新的令牌,要求谷歌以及受众和发行者的值设置为SPA已知值。
基本上是IDaaS接收原始的Google令牌。SPA接收IDaaS创建的令牌。这是相同的流程,但是中间的IDaaS与外部标识提供程序一起工作。
https://stackoverflow.com/questions/53201842
复制相似问题