服务提供商之间的单一登录

问题描述:

我正在更新为许多应用程序提供集中身份验证的自定义门户应用程序。我想改进门户以支持SAML和OAuth2,同时为用户提供良好的用户体验。服务提供商之间的单一登录

在SAML谈论我有(但目前它没有使用SAML):


/--------\ 
| Portal | 
| IdP | 
\--------/ 
    | 
    |-------------\ 
    v    v 
/------\  /------\ 
| App1 |  | App2 | 
| SP |  | SP | 
\------/  \------/ 

为App1和App2的所有请求得到定向到门户网站的认证。一旦通过身份验证,它们就会被发送到门户的着陆页。没错 - 门户网站。不是应用程序。

我期待在改变了以上:


/--------\ 
| OpenAM | 
| IdP | 
\--------/ 
    | 
    |-------------\---------------\ 
    v    v    v 
/------\  /------\  /------\ 
|Portal|  | App1 |  | App2 | 
| SP |  | SP |  | SP | 
\------/  \------/  \------/ 

我们的目标是,我想解耦认证的门户网站。我想为此使用OpenAM,并将Portal转换为SP,而不是IdP。我也在考虑做SP发起的SSO,一旦验证完成,用户就会将用户导回到SP。

这就是我的计划。 :D

我的问题是 - 如果用户点击门户(SP)上的链接到App1或App2(也是SP),那么我可以直接在那里指定它们而无需再次登录?我以前只接触过SSO的SP端,而IdP端对我来说是新的。这可以通过(希望)SAML和OAuth2完成吗?如果是的话,你有什么建议可以解决这个问题吗?

注意:用户在上述场景中登录到IdP以进行门户访问。

谢谢!

+0

在上面的情况下,当用户点击门户中的链接时。用户在第一次访问门户时是否已经通过了IDP的身份验证? –

+0

@StefanRasmusson - 是的。我希望这是一个简单的答案。 :)编辑指定此。 – Rontologist

所以,据我所知,问题是:如果用户已经在IDP第一次访问门户网站时被认证,他将不得不再次进入app1或app2认证。 Awnser没有。这是SSO背后的思想。访问第一个SP时登录一次,然后您可以访问所有SP,而无需再次进行身份验证。通常这会跟踪在用户浏览器上使用Cookie。

+0

太棒了,谢谢。这是我所希望的答案。 – Rontologist