Nous avons besoin de plusieurs métadonnées.xml et de son entité pour activer l'authentification unique car nous avons plusieurs sites de pays qui s'exécutent à partir d'une même instance et de la même base de code.Configuration de plusieurs métadonnées.xml avec son propre entityid dans SAML
Ce que nous avons fait jusqu'à présent
personnalisé le metadatageneratorfilter pour définir l'entité appropriée en fonction de l'URL de la demande (nous avons un code de pays à venir dans le domaine de l'url).
En XML Spring,
<pre>
[bean id="metadata" class="org.springframework.security.saml.metadata.CachingMetadataManager">
[constructor-arg>
[list>
[bean class="org.springframework.security.saml.metadata.ExtendedMetadataDelegate">
[constructor-arg>
[bean class="org.opensaml.saml2.metadata.provider.FilesystemMetadataProvider">
[constructor-arg>
[value type="java.io.File">${sso.metadata.location:classpath:security/metadata_se.xml}[/value>
[/constructor-arg>
[property name="parserPool" ref="parserPool"/>
[/bean>
[/constructor-arg>
[!-- added section starts -->
[constructor-arg>
[bean class="org.springframework.security.saml.metadata.ExtendedMetadata">
[property name="signingKey" value="ssoIDPCertr"/>
[/bean>
[/constructor-arg>
[!-- added section ends-->
[/bean>
[bean class="org.springframework.security.saml.metadata.ExtendedMetadataDelegate">
[constructor-arg>
[bean class="org.opensaml.saml2.metadata.provider.FilesystemMetadataProvider">
[constructor-arg>
[value type="java.io.File">${sso.metadata.location:classpath:security/metadata_es.xml}[/value>
[/constructor-arg>
[property name="parserPool" ref="parserPool"/>
[/bean>
[/constructor-arg>
[!-- added section starts -->
[constructor-arg>
[bean class="org.springframework.security.saml.metadata.ExtendedMetadata">
[property name="signingKey" value="ssoIDPCertr"/>
[/bean>
[/constructor-arg>
[!-- added section ends-->
[/bean>
[bean class="org.springframework.security.saml.metadata.ExtendedMetadataDelegate">
[constructor-arg>
[bean class="org.opensaml.saml2.metadata.provider.FilesystemMetadataProvider">
[constructor-arg>
[value type="java.io.File">${sso.metadata.location:classpath:security/metadata_de.xml}[/value>
[/constructor-arg>
[property name="parserPool" ref="parserPool"/>
[/bean>
[/constructor-arg>
[!-- added section starts -->
[constructor-arg>
[bean class="org.springframework.security.saml.metadata.ExtendedMetadata">
[property name="signingKey" value="ssoIDPCertr"/>
[/bean>
[/constructor-arg>
[!-- added section ends-->
[/bean>
[/list>
[/constructor-arg>
[/bean>
</pre>
But this approach is not working as we dont have set providers against any unique values to identify the proper providers for countries.
our urls will be like
<pre>
https://xy.brand.com
https://yy.brand.com
</pre>
Chaque site a metadata.xml séparé.
nous avons besoin de stocker metadata.xml avec countryCode comme identificateurs et de le récupérer en fonction de l'URL de demande avant de former la réponse SAML &.
Toute aide sera grandement appréciée.
Merci, Siva