WildFly サーバーと picketlink を使用して SAML 2.0 ID プロバイダーを実装する必要がありますが、認証プロセスで行き詰まりました。picketlink ガイドに従い、github のクイックスタートも見ましたが、まだ機能していません。
問題は、サービス プロバイダーが POST AuthnRequest を wildfly サーバーに送信し、wildfly サーバーが GET 要求を介して login.jsp にリダイレクトし、SAMLRequest 属性がなくなり、ログインが成功した後、IDPFilter が SAMLRequest 属性を取得できないことです。そのため、ユーザーはサービス プロバイダーで認証されないか、リダイレクトされません。
ID プロバイダー プロジェクトの web.xml で構成した非常に基本的な FORM 認証を使用しています。
WildFly バージョン: 8.1.0-FINAL
Picketlink バージョン: 2.7.1.Final
Firefox ネットワーク監視:
picketlink.xml
<PicketLink xmlns="urn:picketlink:identity-federation:config:2.1">
<PicketLinkIDP xmlns="urn:picketlink:identity-federation:config:2.1" SupportsSignatures="true"
AttributeManager="org.picketlink.identity.federation.bindings.wildfly.idp.UndertowAttributeManager"
RoleGenerator="org.picketlink.identity.federation.bindings.wildfly.idp.UndertowRoleGenerator">
<IdentityURL>${idp.url::http://localhost:7080/idp}</IdentityURL>
<Trust>
<Domains>locahost</Domains>
</Trust>
<KeyProvider ClassName="org.picketlink.identity.federation.core.impl.KeyStoreKeyManager">
<Auth Key="KeyStoreURL" Value="/jbid_test_keystore.jks" />
<Auth Key="KeyStorePass" Value="changeit" />
<Auth Key="SigningKeyPass" Value="changeit" />
<Auth Key="SigningKeyAlias" Value="wildfly" />
<ValidatingAlias Key="localhost" Value="wildfly" />
<ValidatingAlias Key="127.0.0.1" Value="wildfly" />
</KeyProvider>
<MetaDataProvider ClassName="org.picketlink.identity.federation.core.saml.md.providers.FileBasedEntityMetadataProvider">
<Option Key="FileName" Value="/WEB-INF/classes/test_sp_metadata.xml"/>
</MetaDataProvider>
</PicketLinkIDP>
<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" />
<Handler class="org.picketlink.identity.federation.web.handlers.saml2.RolesGenerationHandler" />
<Handler class="org.picketlink.identity.federation.web.handlers.saml2.SAML2EncryptionHandler" />
<Handler class="org.picketlink.identity.federation.web.handlers.saml2.SAML2SignatureValidationHandler" />
</Handlers>
</PicketLink>
web.xml
...
<display-name>PicketLink Identity Provider</display-name>
<description>PicketLink Identity Provider Using a Servlet Filter</description>
<listener>
<listener-class>org.picketlink.identity.federation.web.listeners.IDPHttpSessionListener</listener-class>
</listener>
<filter>
<filter-name>IDPFilter</filter-name>
<filter-class>org.picketlink.identity.federation.web.filters.IDPFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>IDPFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
この問題で私を助けてくれることを願っています...
こんにちは、クリス