OpenSAML サポート
Spring Security は、SAML 2.0 機能を実装するための API を提供し、OpenSAML を使用したデフォルトの実装も提供します。
Spring Security は OpenSAML の複数のバージョンを同時にサポートするため、コンポーネントでは次の命名規則が使用されます。
サポートされているすべてのバージョンで使用できるコンポーネントは、
OpenSamlXXX
という名前になります。OpenSAML 4.x をターゲットとするコンポーネントはすべて
OpenSaml4XXX
という名前になりますOpenSAML 5.x をターゲットとするコンポーネントはすべて
OpenSaml5XXX
という名前になります
spring-security-config
は、アプリケーションが現在使用しているバージョンを検出して、デフォルトでこれらの実装を選択します。例: OpenSAML 4 を使用している場合、Spring Security は OpenSaml4XXX
コンポーネントを使用します。
OpenSAML 4 の選択
Spring Security はデフォルトで OpenSAML 4 に依存しているため、spring-security-saml
依存関係をインポートする以外に使用を開始するために何もする必要はありません。
OpenSAML 5 の選択
OpenSAML を使用するには、次のように opensaml
依存関係をオーバーライドする必要があります。
<dependencies>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-saml2-service-provider</artifactId>
<exclusions>
<exclusion>
<groupId>org.opensaml</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-saml-api</artifactId>
<version>5.1.2</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml-saml-impl</artifactId>
<version>5.1.2</version>
</dependency>
</dependencies>
dependencies {
constraints {
implementation "org.opensaml:opensaml-core-api:5.1.2"
implementation "org.opensaml:opensaml-core-impl:5.1.2"
implementation "org.opensaml:opensaml-saml-api:5.1.2"
implementation "org.opensaml:opensaml-saml-impl:5.1.2"
}
// ...
implementation ('org.springframework.security:spring-security-saml2-service-provider') {
exclude group: "org.opensaml", module: "opensaml-core"
}
// ...
}
OpenSAML 5 では opensaml-core が opensaml-core-api と opensaml-core-impl に分割されるため、除外する必要があります。 |