The Identity Provider sends a list of key value pairs as claims. Common attributes have been added to the connector, however, this list is not exhaustive.
You may wish to add additional attributes. The ICNF file for the connector is configured with a basic fieldset which makes those claims available in the ASM resource mapping for Field Matching.
Some of these names are mapped in code to a more user friendly value:
Dictionary<string, string> claimTypeAliases = new Dictionary<string, string>
{
{ ClaimTypes.Email, InternalClaimTypes.EmailAddress },
{ GlobalClaimTypes.EmailAddress, InternalClaimTypes.EmailAddress },
{ ClaimTypes.GivenName, InternalClaimTypes.FirstName },
{ ClaimTypes.Surname, InternalClaimTypes.Surname },
{ GlobalClaimTypes.MemberOf, InternalClaimTypes.MemberOf }
};
static class GlobalClaimTypes
{
public const string EmailAddress = "
http://schemas.xmlsoap.org/claims/EmailAddress
";
public const string MemberOf = "
http://schemas.xmlsoap.org/claims/Group
";
}
static class InternalClaimTypes
{
public const string UserName = "User Name";
public const string FirstName = "First Name";
public const string Surname = "Surname";
public const string EmailAddress = "Email Address";
public const string MemberOf = "Member Of";
}
SAML supports free text definition of key names for claims (Outgoing Claim Types)
All Claims are included in the standard ASM Diagnostic Tracing to assist with troubleshooting issues.
Adding New Claims to the ICNF File
Additional claims can be defined by the Identity Provider. To make them available to the connector, those claims must be added to the ICNF File.
To add support for a custom claim, you simply need to add a new field to the existing fieldSet.
<field xsi:type="mappedField" fieldID="Custom Claim Name" fieldDisplay="The name to display in the resource mapping drop down" dataType="string" select="Custom Claim Name" />
Each SAML claim can define one or more values. E.g. a user could have multiple Email Addresses.
In this case, the claim values are received as a list. This list is then converted to a semi-colon separated string.
a.user@alembagroup.com;auser@alembagroup.com
This value can then be parsed in the Resource Mapping by using a Transform.