繁体   English   中英

通过 Java struts Web 应用程序在 Azure AD 中进行 SAML 身份验证

[英]SAML authentication in Azure AD via Java struts web application

在一个基于 java struts 的 web 项目中,我使用 SAML 身份验证、使用picketlink 库实现了 SSO(单点登录),部署在 Jboss AS 7.1 上。 它的工作没有任何问题。

我需要在另一个基于 Struts 的 Web 项目中实现 SSO,该项目在 Tomcat 7 上运行。本例中的 IDP 是 Azure AD。 我已按照SAML 与 Tomcat 和 PicketLink 一文中给出的步骤进行操作。 我还在 Azure AD 中配置了应用程序。 picketlink conif 文件中提到了 IDP 和 SP URL,如下所示:

<PicketLink xmlns="urn:picketlink:identity-federation:config:2.1">
<PicketLinkSP xmlns="urn:picketlink:identity-federation:config:2.1" BindingType="POST">
    <IdentityURL>${idp.url::https://login.microsoftonline.com/29b0-4f33-a90e/saml2}</IdentityURL>
    <ServiceURL>${myapp.url::https://appserver.mydomain.com:10503/myapp/internal/}</ServiceURL>
    <Trust>
        <Domains>localhost,mydomain.com</Domains>
    </Trust>
</PicketLinkSP>
<Handlers xmlns="urn:picketlink:identity-federation:handler:config:2.1">
    <Handler class="org.picketlink.identity.federation.web.handlers.saml2.SAML2IssuerTrustHandler" />
    <Handler class="org.picketlink.identity.federation.web.handlers.saml2.SAML2LogOutHandler" />
    <Handler class="org.picketlink.identity.federation.web.handlers.saml2.SAML2AuthenticationHandler">
        <Option Key="ROLE_KEY" Value="http://schemas.microsoft.com/ws/2008/06/identity/claims/role"/>
    </Handler>
    <Handler class="org.picketlink.identity.federation.web.handlers.saml2.RolesGenerationHandler" />
</Handlers>

我已经针对上述文件中的配置应用程序提到了从 Azure AD 获得的 SAML-P 端点。

${idp.url:: https://login.microsoftonline.com/29b0-4f33-a90e/saml2 }

进行所有这些更改后,它不起作用。 看起来我需要从联邦元数据文件中获取证书,并按照一些步骤启用 SSL 并使其为 SAML 理解做好准备。 我不能这样做。 我不知道我的路径是否正确。 你能给我一个示例程序或步骤来完成这个任务。

我能够自己解决这个问题。 有2个问题。

应用程序未在 Azure 中正确配置,因此身份验证未到达 Azure。 在对配置进行了一些研究之后,我能够实现这一目标。

关于证书安装,我们可以从 Azure 联合选项卡下载证书,然后按照常规证书更新,然后在应用程序服务器中引用相同的证书。

我正在处理这个文件。 一旦我完成,我会将它们张贴在这里

暂无
暂无

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

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