我想实现 SSO 框架。因此我的要求是:
一旦用户登录到特定网站并点击外部链接,就不应要求他再次验证其凭据。
编辑:在这里,我可以控制我所说的“外部链接”。此人登录的第一个链接可以向我提供凭据或我需要的其他信息,但我无法控制它。
我做了一些研究,发现 CAS 与我的要求相关。但是,我不希望最终用户最初登录到 CAS,我需要一个框架来从当前登录的网站接收凭据并使用它来登录到其他外部站点。安全当然是一个重要因素。关于如何设计这样一个框架,您能给我一些建议/想法吗?
最佳答案
根据您的描述,身份提供商 (IdP) 发起的 SAML 配置文件听起来像是可以满足您的要求(一个很好的直观表示是 here )。您的用户登录的原始网站将充当身份提供者。一旦用户通过该应用程序的身份验证,他们就可以通过单击链接来访问您的外部应用程序。原始应用程序不会被定向到您的应用程序的登录页面,而是通过 SAML 将用户的授权详细信息转发给您,您将在其中验证签名并可能与身份提供者核对。如果一切正常,用户将被重定向到您的应用程序中请求的资源,而无需登录。
请注意,上面描述了 SSO 的协议(protocol)。您可以使用许多支持 SAML 的不同框架。您可以研究的两个是 Shibboleth并且,如前所述,OpenAM .
这是基于有限细节的相当简化的解释,但希望它能帮助您找到解决方案。我建议您在做出决定之前对可用的协议(protocol)和框架进行大量研究。此外,在投资到没有返回的地步之前,概念验证永远不会伤害到证明该解决方案对您有用。
祝你好运。
关于java - 单点登录框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17620037/