簡體   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