我从一篇好的博客文章中获得了有关SSO原理的基本知识,访问https://auth0.com/blog/what-is-and-how-does-single-sign-on-work/#
为了实现SSO,我们使用一个中心域(如LDAP或其他身份验证服务器)进行身份验证,它可以生成令牌,并作为cookie存储或仅存储在浏览器的存储中。
下次我们访问另一个域中的应用程序时,它会重定向到Auth Server,并且可以使用我们之前存储的令牌,然后我们可以获得一个新的cookie,其中包括我们想要访问的域的这个令牌。
通过这种方式,我认为SSO是使用中央Auth Server作为第三个托管服务器,或者我们可以称它为委托服务器来为不同的域生成不同的cookie,这样我们就可以解析单一原产地策略(cookie只能由其创建者访问,不能跨域访问)。
如果这就是SSO的工作方式,我对IBM感到困惑。我使用WAS和指南,如果我想实现SSO,我需要获得从第一个服务器生成的LTPA密钥,并将其复制到我想要创建一个SSO函数的每个服务器。LTPA密钥包括一个公钥和一个用于解密由WAS生成的LTPA令牌的私钥。
因此,如果我使用LDAP作为Auth服务器,首先在域1上访问我的应用程序,我的请求将被重定向到登录页面,在LDAP中进行身份验证(在这里,我认为LDAP不会生成令牌),WAS将生成带有LTPA令牌的cookie,但是当我们想访问域2中的应用程序(在此域中有LTPA密钥)时,我们的LTPA令牌可以被解密并得到我们的userId(或者某个字段可以识别用户),然后我们再去LDAP Auth服务器验证这个userId.
我不知道我的理解是否正确,但我不认为这可以称为"SSO“。因为首先,我们得到的令牌是由WAS而不是LDAP生成的,所以我们得到的只是一个userId,当我们解密这个令牌时,我们需要在LDAP中再次验证这个用户。第二,我们用来使SSO工作的是交付一个带有LTPA令牌的cookie,但是如果域1和域2不是相同的领域,则不能通过domains....So发送cookie,这是不可能发生的.因为我们不能在第二域得到饼干.
我都快疯了..。
谁能告诉我LTPA是如何使用LTPA密钥准确地作为SSO机制工作的.
太过分了!
发布于 2017-04-17 13:18:36
LTPA是部署在WebSphere上的不同应用程序(以及其他一些产品,例如Domino)之间的单点登录。它的基本功能是在一个单元中工作,在不同服务器上的各种应用程序之间工作,或者在单元间(在其中交换密钥)之间的更复杂的场景中工作。正如您已经发现的,它不是跨DNS域,因此它仅限于单个公司(虽然支持子域)。如果您有远程EJB,它还支持通过IIOP向下游传播凭据。
如果您正在寻找跨域SSO机制,WebSphere支持SAML和。
发布于 2017-04-14 11:31:02
LTPA是一种将身份验证从WebSphere (或后端服务器)转移到SSO服务器的机制--让我们讨论一下ISAM (WebSeal)。
用户-->ISAM (WebSeal)- LTPA在这里-->后端服务器
通常,后端WAS服务器本身不执行任何身份验证。用户对SSO服务器进行身份验证,SSO服务器将加密的LTPA令牌发送到后端服务器,其中包含用户usename (通常只包含用户名、组成员资格,但从不包含密码)。后端服务器解密LTPA和LTPA并信任它。然后后端应用服务器(WAS)将此身份验证细节传递给应用程序。
请参见将IBM (应用程序放在WAS上)放在SSO服务器后面的示例。
http://www-01.ibm.com/support/docview.wss?uid=swg24022695
https://stackoverflow.com/questions/43394130
复制相似问题