在Java中实现SAML SSO

在Java中实现SAML SSO,java,authentication,saml,Java,Authentication,Saml,我有一个应用程序AppA,需要通过另一个应用程序AppB访问URL AppB是服务提供商,也有身份提供商 我想创建一种自动方式,让我的应用程序在AppA上访问URL 我知道,在SAML协议中,在服务提供商向用户提供了身份验证url之后,在本例中,我的应用程序要求用户使用密码登录。我想知道是否有一种实现此标志的通用方法,或者我必须使用我已经拥有的用户和密码实现POST请求之类的东西?在SAML世界中,您有一个身份决策点idp、一个策略决策点pdp和策略实施点pep以及一个您想要调用的服务。idp以

我有一个应用程序AppA,需要通过另一个应用程序AppB访问URL

AppB是服务提供商,也有身份提供商

我想创建一种自动方式,让我的应用程序在AppA上访问URL


我知道,在SAML协议中,在服务提供商向用户提供了身份验证url之后,在本例中,我的应用程序要求用户使用密码登录。我想知道是否有一种实现此标志的通用方法,或者我必须使用我已经拥有的用户和密码实现POST请求之类的东西?

在SAML世界中,您有一个身份决策点idp、一个策略决策点pdp和策略实施点pep以及一个您想要调用的服务。idp以用户可以证明其身份的方式提供身份验证。pdp信任idp,并将决定提供有效idp文档的用户将获得哪一级别的授权。政治公众人物将根据pdp文件允许或拒绝访问服务

联系服务的一般流程是直接调用它,这会导致未授权的响应。结果应包括有关已接受PDP的信息。接下来调用pdp,它将提供接受哪些idp的信息。然后客户端联系idp并代表用户进行身份验证。由idp签署的最终文件将传递给pdp。然后,来自pdp的签名响应再次传递给服务。服务人员将文件与政治公众人物联系

在现实世界中,点可能不是单个实例,而是合并的。因此,服务也可以包括pep,或者idp也可以是pdp


那么,看看您的体系结构/基础设施。

是否有这样的库?或者你有实施指南吗?因为这就是我要寻找的,idp的身份验证是特定于idp的。请更新您的问题,并提供更多有关相关方的信息。我不确定我是否同意您选择的术语,Hannes。您使用的大多数术语更常见于访问控制系统中,如SAML的堂兄XACML:。您确实可以在SAML术语表中找到PDP/PEP/etc,但仅参考授权,而不是SAML真正插入的身份验证@安德鲁克。正确的观点。如果您查看SAML v1.0规范的域模型图1,则没有提及idp/pdp/pep,但您可以从协议流中将身份验证、属性和授权视为决策。所以SAML只定义协议。但当时idp/pdp/pep将实现该流程。自从微软以1.2的速度发展以来,情况就一团糟;重新措辞以确保我理解:AppA需要访问AppB提供的资源,这些资源受到某种web访问控制系统的保护?