5

データベースに対してユーザーの詳細を検証する春のセキュリティ基本認証を使用するアプリケーションがあります。SSO データベースに対して検証される特定のユーザー セットがあります。SAML を使用して、SSO データベースに対して検証できました。

しかし問題は、基本認証と SAML 認証の両方を 1 つのアプリケーションに統合し、ユーザーを特定の認証に誘導する方法です。もう 1 つの理由は、両方が異なる認証プロバイダーを使用していることです。

spring-saml の例を使用して SAML を構成しました。

別の問題は、intercept-url パターンにあります。以下の構成では、両方のセキュリティ構成が PATTERN 属性にマップされていません。これは、/** (任意の要求) にマップされる構成が 2 つあるため、サーバーの起動時に例外が発生するためです。この例外を解決するにはどうすればよいですか?

例:

<security:http access-denied-page="/saml/web/metadata/login">
    <security:form-login login-processing-url="/saml/web/login" login-page="/saml/web/metadata/login" default-target-url="/saml/web/metadata"/>
    <security:intercept-url pattern="/login" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
    <security:intercept-url pattern="/logout" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
    <security:intercept-url pattern="/home" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
    <security:custom-filter before="FIRST" ref="metadataGeneratorFilter"/>
</security:http>

<security:http pattern="/saml/mysignin" entry-point-ref="samlEntryPoint">
    <security:intercept-url pattern="/saml/mysignin" access="IS_AUTHENTICATED_FULLY"/>
    <security:custom-filter before="FIRST" ref="metadataGeneratorFilter"/>
    <security:custom-filter after="BASIC_AUTH_FILTER" ref="samlFilter"/>
</security:http>

<bean id="samlFilter" class="org.springframework.security.web.FilterChainProxy">
    <security:filter-chain-map request-matcher="ant">
        <security:filter-chain pattern="/saml/login/**" filters="samlEntryPoint"/>
        <security:filter-chain pattern="/saml/logout/**" filters="samlLogoutFilter"/>
        <security:filter-chain pattern="/saml/metadata/**" filters="metadataDisplayFilter"/>
        <security:filter-chain pattern="/saml/SSO/**" filters="samlWebSSOProcessingFilter"/>
        <security:filter-chain pattern="/saml/SSOHoK/**" filters="samlWebSSOHoKProcessingFilter"/>
        <security:filter-chain pattern="/saml/SingleLogout/**" filters="samlLogoutProcessingFilter"/>
        <security:filter-chain pattern="/saml/discovery/**" filters="samlIDPDiscovery"/>
    </security:filter-chain-map>
</bean>
4

1 に答える 1

3

Spring SAML 1.0.0 のサンプル アプリケーションには、ユーザー名とパスワードによる基本認証と SAML ベースの認証の両方が含まれています。例として使用します。

于 2014-09-26T19:41:54.970 に答える