2017-07-12 75 views
1

设置为:我们有我们的用户。我们的认证平台(授权服务器)。和两个不同的资源。代码授权流程在我们的设置中使用。OpenID连接嵌入式资源

现在资源A在资源B的页面中嵌入资源(类似于iFrame)。现在我们想要完成的是,一旦用户被授权使用资源A,他将会透明地从资源B访问嵌入式资源。

这可能吗?如果是这样如何?

回答

1

如果授权服务器支持单点登录(SSO),则嵌入式页面可以获取其令牌,而无需用户输入其凭据。具体的步骤是这样的:

  1. 用户请求资源共享的
  2. 资源A的用户重定向到的OAuth2服务器,以获得令牌
  3. 的OAuth2用户服务器用户(通过浏览器cookie识别创建会话)
  4. 用户通过身份验证并被重定向到资源A页面
  5. 资源A页面请求资源B页面,所以资源B转到点2,但点4被跳过,因为OAuth2服务器已经具有为用户提供一个会话,并且不要求真实性再也不用担心了。

或者如果您的应用程序不需要access_tokens,只需标识令牌,就可以将其从资源A传递到资源B(例如作为URL参数)。在这种情况下,ID令牌在其aud(受众)参数中应包含两个客户端(资源A和B)。

+0

我们对不同的应用程序使用角色,这些应用程序在应用程序端确定用户是否具有身份验证。因此,OAuth2服务器仅适用于粗糙的迷宫(抱歉翻译不好)认证。虽然通过的角色是在应用服务器上进行精细的身份验证。现在传递身份标识只有在应用程序A的过程中还包含应用程序B的角色信息时才会起作用。在您的第一个过程中。但是,是的,在cookie中进行会话时,这基本上与我假设的SAML一起工作。我会检查一下 – Spyral