CreateAlternativeSecurityId Transformation

A CreateAlternativeSecurityId transformation is used to create an ‘AlternativeSecurityId’ – a two-part identifier widely used in AAD and consisting of:
  1. the name of an identity provider; and
  2. a unique naming claim identifying objects within that identity provider’s namespace.

An example would be Microsoft Account (MSA) as an identity provider and ‘john@hotmail.com’ as a unique name (called a ‘key’) inside the MSA’s namespace.  Although its actual encoding would be different, one can think of it as being:

{
"identityProvider" : "MSA",
"key" : "john@hotmail.com"
}

This construct is important because John might, for example, use his email address at Hotmail or Google as his account name at facebook…  The AlternativeSecurityIds would then distinguish the various accounts, since in the facebook case the AlternativeSecurityId can be thought of as:

{
"identityProvider" : "facebook",
"key" : "john@hotmail.com"
}

InputClaims

TransformationClaimType

Description

identityProvider

The identity provider asserting an account name

key

THe unique account name within the identity provider’s namespace

OutputClaims

TransformationClaimType

Description

alternativeSecurityId

The encoded alternativeSecurityId

Example

This example defines a ClaimsTransformation of the ‘CreateAlternativeSecurityId’ type called ‘CreateALternativeSecurityId’ . The policy schema’s ‘userId’ and ‘identityProvider’ claims are transformed into an encoded AlternativeSecurityId which is returned as alternativeSecurityId claim.

      
<ClaimsTransformation Id="CreateAlternativeSecurityId" TransformationMethod="CreateAlternativeSecurityId">
        <InputClaims>
          <InputClaim ClaimTypeReferenceId="userId" TransformationClaimType="key" />
          <InputClaim ClaimTypeReferenceId="identityProvider" TransformationClaimType="identityProvider" />
        </InputClaims>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="alternativeSecurityId" TransformationClaimType="alternativeSecurityId" />
        </OutputClaims>
      </ClaimsTransformation>

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.