Hi there


Due to extensions for the WS-Federation Web SSO support I'm looking into 
CXF-3882.



Let's assume an STS has configured several realms/security domains. What 
happens if I send a SAML token from one security domain and request a new SAML 
token from another security domain?



Right now, the STS will call the configured identityMapper to map the principal.



One of the nice things in WS-Federation is that you don't want to provision 
user id for a single person in all realms (security domains) because it's an 
administration nightmare. Instead, you map the claims (any sort of statements 
made about a user) from one security domain to the other.



1) I'd propose to introduce a new interface ClaimsMapper which get the source 
realm, target realm and source claims list and returns the target claims.



2) You configure the kind of relationship between the realms like this:



<bean class="org.apache.cxf.sts.StaticSTSProperties">

  ...

  <property name="relationships" ref="relationships"/>

</bean>



<util:list id="relationships">

   <bean class="org.apache.cxf.sts.claims.Relationsship">

      <property name="source" value="www.company.com" />

      <property name="target" value="www.apache.org" />

      <property name="type" value="IdentityFederation|ClaimsFederation" />

      <property name="identityMapper" ref="" />

      <property name="claimsMapper" ref ="" />

   </bean>

</util:list>





The StaticSTSProperties provides a new properties called relationships which 
references a list of Relationship beans. The Relationship bean defines the type 
of relation when a security token from realm 'source' must be mapped to realm 
'target'. Whether identities or claims are mapped is defined in 'type'. The 
identityMapper and claimsMapper can be defined here but are optional as the 
interface is of the two are generic and can be defined globally. The 
relationship is not bidirectional. If you need to map a token from 
"www.apache.org<http://www.apache.org>" to 
"www.company.com<http://www.company.com>" then you must define a new 
relationship as the type of relation can be different.



What do you think?





------

Oliver Wulff

http://owulff.blogspot.com<http://owulff.blogspot.com/>
Solution Architect
Talend Application Integration Division http://www.talend.com

Reply via email to