简体   繁体   English

ADFS和Shibboleth自动登录

[英]ADFS and Shibboleth auto sign in

I'm new to Identity Assertion Provider (IdP) and the hole Single sign-on (SSO) architecture. 我是Identity Assertion Provider (IdP)和Single sign-on (SSO)体系结构的新手。

Today we have a SharePoint 2010 application that has claims authentication in place. 今天,我们有一个SharePoint 2010应用程序,该应用程序具有声明身份验证。 The environment or the flow of the sign-on is as follow: 登录的环境或流程如下:

SharePoint <-> Azure AC <-> ADFS <-> Shibboleth

This works and the SSO is working correctly. 这可以正常工作,并且SSO可以正常工作。 We now want to auto sign in the user by getting the Security Assertion Markup Language (SAML) response from a different source (not Shibboleth ). 现在,我们希望通过从其他来源(不是Shibboleth )获得Security Assertion Markup Language (SAML)响应来自动登录用户。

SharePoint <-> Azure AC <-> ADFS <- REST (Different client then the users client) <-> Shibboleth.

We will receive the SAML as header or plain text. 我们将收到SAML标头或纯文本。

What I want to do now is to set or validate the user in Active Directory Federation Service (ADFS) based on the response from the Representational state transfer (REST) service. 我现在要做的是根据来自Representational state transfer (REST)服务的响应来设置或验证Active Directory联合身份验证服务(ADFS)中的用户。 What we are missing is the idp_session cookie from Shibboleth which is set on the client, in this case the REST service host. 我们缺少的是在客户端(在本例中为REST服务主机)上设置的Shibboleth的idp_session cookie。

The (REST) service host is performing a normal sign in to Shibboleth . (REST)服务主机正在正常登录Shibboleth

Does anyone know a good tutorial, or what to search for to achieve this? 有谁知道一个好的教程,或者要寻找什么来实现这一目标? Is it even possible? 可能吗?

The application that gets the REST response is on the same domain as Shibboleth. 获得REST响应的应用程序与Shibboleth位于同一域。 So we could maybe set the idp_session cookie ourselves. 因此,我们可以自己设置idp_session cookie。

Any response or guidelines are very appreciated. 任何回应或指导方针都非常感谢。

Possible solution, and tried successfully in lab environment. 可能的解决方案,并在实验室环境中成功尝试。

Shibboleth is hosted on a sub domain to the application that are supposed to sets the cookie. Shibboleth托管在应设置Cookie的应用程序的子域中。 So what we tried and what was successful was to send the _idp_session cookie over the REST service and from our application return that value to the client with HTTP header set-cookie. 因此,我们尝试并成功的是通过REST服务发送_idp_session cookie,并从我们的应用程序使用HTTP标头set-cookie将该值返回给客户端。

So now when we redirect the user into our SharePoint environment the client has the _idp_session cookie and gets authenticated thru the chain of client -> SharePoint <-> Azure AC <-> ADFS <-> Shibboleth :) 因此,现在当我们将用户重定向到SharePoint环境时,客户端将具有_idp_session cookie并通过客户端链进行身份验证-> SharePoint <-> Azure AC <-> ADFS <-> Shibboleth :)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM