Type de stratégie de mappage de revendications

Un objet de stratégie représente un ensemble de règles appliquées à des applications individuelles ou à toutes les applications d’une organisation. Chaque type de stratégie présente une structure unique avec un ensemble de propriétés qui sont ensuite appliquées aux objets auxquels elles sont affectées.

Une stratégie de mappage des revendications est un type d’objet de stratégie qui modifie les revendications comprises dans les jetons. Pour plus d’informations, voir Personnaliser des revendications émises dans le jeton SAML pour des applications d’entreprise.

Ensembles de revendications

Le tableau suivant répertorie les ensembles de revendications qui définissent comment et quand elles sont utilisées dans les jetons.

Ensemble de revendications Description
Ensemble de revendications principal Présent dans chaque jeton, quelle que soit la stratégie. Ces revendications sont également considérées comme restreintes, et ne peuvent pas être modifiées.
Ensemble de revendications de base Inclut les revendications comprises par défaut pour les jetons en plus de l’ensemble de revendications principal. Vous pouvez omettre ou modifier des revendications de base à l’aide de stratégies de mappage de revendications.
Ensemble de revendications restreint Ne peut pas être modifié à l’aide d’une stratégie. La source de données ne peut pas être modifiée, et aucune transformation n’est appliquée lors de la génération de ces revendications.

Ensemble de revendications restreint JSON Web Token (JWT)

Les revendications suivantes se trouvent dans l’ensemble de revendications restreintes pour un JWT.

  • .
  • _claim_names
  • _claim_sources
  • aai
  • access_token
  • account_type
  • acct
  • acr
  • acrs
  • actor
  • actortoken
  • ageGroup
  • aio
  • altsecid
  • amr
  • app_chain
  • app_displayname
  • app_res
  • appctx
  • appctxsender
  • appid
  • appidacr
  • assertion
  • at_hash
  • aud
  • auth_data
  • auth_time
  • authorization_code
  • azp
  • azpacr
  • bk_claim
  • bk_enclave
  • bk_pub
  • brk_client_id
  • brk_redirect_uri
  • c_hash
  • ca_enf
  • ca_policy_result
  • capolids
  • capolids_latebind
  • cc
  • cert_token_use
  • child_client_id
  • child_redirect_uri
  • client_id
  • client_ip
  • cloud_graph_host_name
  • cloud_instance_host_name
  • cloud_instance_name
  • CloudAssignedMdmId
  • cnf
  • code
  • controls
  • controls_auds
  • credential_keys
  • csr
  • csr_type
  • ctry
  • deviceid
  • dns_names
  • domain_dns_name
  • domain_netbios_name
  • e_exp
  • email
  • endpoint
  • enfpolids
  • exp
  • expires_on
  • extn. as prefix
  • fido_auth_data
  • fido_ver
  • fwd
  • fwd_appidacr
  • grant_type
  • graph
  • group_sids
  • groups
  • hasgroups
  • hash_alg
  • haswids
  • home_oid
  • home_puid
  • home_tid
  • iat
  • identityprovider
  • idp
  • idtyp
  • in_corp
  • instance
  • inviteTicket
  • ipaddr
  • isbrowserhostedapp
  • iss
  • isViral
  • jwk
  • key_id
  • key_type
  • login_hint
  • mam_compliance_url
  • mam_enrollment_url
  • mam_terms_of_use_url
  • mdm_compliance_url
  • mdm_enrollment_url
  • mdm_terms_of_use_url
  • msgraph_host
  • msproxy
  • nameid
  • nbf
  • netbios_name
  • nickname
  • nonce
  • oid
  • on_prem_id
  • onprem_sam_account_name
  • onprem_sid
  • openid2_id
  • origin_header
  • password
  • platf
  • polids
  • pop_jwk
  • preferred_username
  • previous_refresh_token
  • primary_sid
  • prov_data
  • puid
  • pwd_exp
  • pwd_url
  • rdp_bt
  • redirect_uri
  • refresh_token
  • refresh_token_issued_on
  • refreshtoken
  • request_nonce
  • resource
  • rh
  • role
  • roles
  • rp_id
  • rt_type
  • scope
  • scp
  • secaud
  • sid
  • sid
  • signature
  • signin_state
  • source_anchor
  • src1
  • src2
  • sub
  • target_deviceid
  • tbid
  • tbidv2
  • tenant_ctry
  • tenant_display_name
  • tenant_id
  • tenant_region_scope
  • tenant_region_sub_scope
  • thumbnail_photo
  • tid
  • tokenAutologonEnabled
  • trustedfordelegation
  • ttr
  • unique_name
  • upn
  • user_agent
  • user_setting_sync_url
  • username
  • uti
  • ver
  • verified_primary_email
  • verified_secondary_email
  • vnet
  • vsm_binding_key
  • wamcompat_client_info
  • wamcompat_id_token
  • wamcompat_scopes
  • wids
  • win_ver
  • x5c_ca
  • xcb2b_rclient
  • xcb2b_rcloud
  • xcb2b_rtenant
  • ztdid

Notes

Toute revendication commençant par xms_ est restreinte.

Ensemble de revendications restreint SAML

Le tableau suivant répertorie les revendications SAML qui se trouvent dans l’ensemble de revendications restreint.

Type de revendication restreinte (URI) :

  • http://schemas.microsoft.com/2012/01/devicecontext/claims/ismanaged
  • http://schemas.microsoft.com/2014/02/devicecontext/claims/isknown
  • http://schemas.microsoft.com/2014/03/psso
  • http://schemas.microsoft.com/2014/09/devicecontext/claims/iscompliant
  • http://schemas.microsoft.com/claims/authnmethodsreferences
  • http://schemas.microsoft.com/claims/groups.link
  • http://schemas.microsoft.com/identity/claims/accesstoken
  • http://schemas.microsoft.com/identity/claims/acct
  • http://schemas.microsoft.com/identity/claims/agegroup
  • http://schemas.microsoft.com/identity/claims/aio
  • http://schemas.microsoft.com/identity/claims/identityprovider
  • http://schemas.microsoft.com/identity/claims/objectidentifier
  • http://schemas.microsoft.com/identity/claims/openid2_id
  • http://schemas.microsoft.com/identity/claims/puid
  • http://schemas.microsoft.com/identity/claims/scope
  • http://schemas.microsoft.com/identity/claims/tenantid
  • http://schemas.microsoft.com/identity/claims/xms_et
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/confirmationkey
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlywindowsdevicegroup
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/expiration
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/expired
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/groups
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/ispersistent
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/role
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/role
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/samlissuername
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/wids
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsdeviceclaim
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsdevicegroup
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsfqbnversion
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowssubauthority
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsuserclaim
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authentication
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authorizationdecision
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/spn
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
  • http://schemas.xmlsoap.org/ws/2009/09/identity/claims/actor

Ces revendications sont restreintes par défaut, mais ne sont pas restreintes si vous disposez d’une clé de signature personnalisée. Évitez de définir acceptMappedClaims dans le manifeste de l’application.

  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/x500distinguishedname

Ces revendications sont restreintes par défaut, mais ne sont pas restreintes si vous disposez d’une clé de signature personnalisée :

  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/role

Propriétés de stratégie de mappage de revendications

Pour contrôler les revendications qui sont incluses et l’origine des données, utilisez les propriétés d’une stratégie de mappage de revendications. Sans stratégie, le système émet des jetons avec les revendications suivantes :

  • Ensemble de revendications principal.
  • Ensemble de revendications de base.
  • Toutes les revendications facultatives que l’application a choisi de recevoir.

Notes

Les revendications de l’ensemble de revendications principal sont présentes dans chaque jeton, indépendamment de la définition de cette propriété.

String Type de données Récapitulatif
IncludeBasicClaimSet Booléen (True ou False) Détermine si l’ensemble de revendications de base est inclus dans les jetons affectés par cette stratégie. Si la valeur est True, toutes les revendications de l’ensemble de revendications de base sont émises dans les jetons affectés par la stratégie. Si la valeur est False, les revendications de l’ensemble de revendications de base ne figurent pas dans les jetons, sauf si elles sont ajoutées individuellement à la propriété de schéma de revendications de la même stratégie.
ClaimsSchema Objet blob JSON avec une ou plusieurs entrées de schéma de revendication Définit les revendications présentes dans les jetons affectés par la stratégie, en plus de l’ensemble de revendications de base et de l’ensemble de revendications principal. Pour chaque entrée de schéma de revendication définie dans cette propriété, certaines informations sont requises. Spécifiez l’origine des données (Valeur, Paire Source/ID ou Paire Source/ExtensionID), et le Type de revendication, qui est émis comme (JWTClaim Type ou SamlClaimType).

Éléments d’entrée du schéma de revendication

  • Valeur : définit une valeur statique en tant que données à émettre dans la revendication.
  • SAMLNameForm : définit la valeur de l’attribut NameFormat pour cette revendication. Si elles sont présentes, les valeurs autorisées sont les suivantes :
    • urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified
    • urn:oasis:names:tc:SAML:2.0:attrname-format:uri
    • urn:oasis:names:tc:SAML:2.0:attrname-format:basic
  • Paire Source/ID : définit l’emplacement d’origine des données de la revendication.
  • Paire Source/ExtensionID : définit l’attribut d’extension de répertoire dont proviennent les données de la revendication. Pour plus d’informations, consultez Utiliser des attributs d’extension d’annuaire dans les revendications.
  • Type de revendication : les éléments JwtClaimType et SamlClaimType définissent la revendication à laquelle cette entrée de schéma de revendication fait référence.
    • L’élément JwtClaimType doit contenir le nom de la revendication que les jetons JWT doivent émettre.
    • SamlClaimType doit contenir l’URI de la revendication que les jetons SAML doivent émettre.

Définissez l’élément Source sur l’une des valeurs du tableau suivant.

Valeur source Données dans la revendication
user Propriété sur l’objet User.
application Propriété sur le principal du service d’application (client).
resource Propriété sur le principal du service de ressources.
audience Propriété définie sur le principal du service qui est l’audience du jeton (principal du service du client ou de la ressource).
company Propriété sur l’objet Company du locataire de la ressource.
transformation Transformation de revendications. Lorsque vous utilisez cette revendication, l’élément TransformationID doit être inclus dans la définition de revendication. L’élément TransformationID doit correspondre à l’élément d’ID de l’entrée de transformation dans la propriété ClaimsTransformation qui définit la façon dont les données de cette revendication sont générées.

L’élément ID identifie la propriété définie sur la source qui fournit la valeur de la revendication. Le tableau suivant répertorie les valeurs d’ID valides pour chaque valeur de Source.

Source id Description
user surname Nom de famille de l’utilisateur.
user givenname Prénom de l’utilisateur.
user displayname Nom complet de l'utilisateur.
user objectid ID d’objet de l’utilisateur.
user mail Adresse e-mail de l’utilisateur.
user userprincipalname Nom d’utilisateur principal de l’utilisateur.
user department Département de l’utilisateur.
user onpremisessamaccountname Nom du compte SAM local de l’utilisateur.
user netbiosname Nom NetBios de l’utilisateur.
user dnsdomainname Nom de domaine DNS de l’utilisateur.
user onpremisesecurityidentifier Identificateur de sécurité local de l’utilisateur.
user companyname Nom d’organisation de l’utilisateur.
user streetaddress Adresse postale de l’utilisateur.
user postalcode Code postal de l’utilisateur.
user preferredlanguage Langue préférée de l’utilisateur.
user onpremisesuserprincipalname UPN local de l’utilisateur. Lorsque vous utilisez un autre ID, l’attribut userPrincipalName local est synchronisé avec l’attribut onPremisesUserPrincipalName. Cet attribut n’est disponible que lorsque l’ID secondaire est configuré.
user mailnickname Surnom de courrier de l’utilisateur.
user extensionattribute1 Attribut d’extension 1.
user extensionattribute2 Attribut d’extension 2.
user extensionattribute3 Attribut d’extension 3.
user extensionattribute4 Attribut d’extension 4.
user extensionattribute5 Attribut d’extension 5.
user extensionattribute6 Attribut d’extension 6.
user extensionattribute7 Attribut d’extension 7.
user extensionattribute8 Attribut d’extension 8.
user extensionattribute9 Attribut d’extension 9.
user extensionattribute10 Attribut d’extension 10.
user extensionattribute11 Attribut d’extension 11.
user extensionattribute12 Attribut d’extension 12.
user extensionattribute13 Attribut d’extension 13.
user extensionattribute14 Attribut d’extension 14.
user extensionattribute15 Attribut d’extension 15.
user othermail Autre courrier de l’utilisateur.
user country Pays/région de l’utilisateur.
user city Ville de l’utilisateur.
user state État de l’utilisateur.
user jobtitle poste occupé par l'utilisateur.
user employeeid L’ID d’employé de l’utilisateur.
user facsimiletelephonenumber Numéro de téléphone de télécopie de l’utilisateur.
user assignedroles Liste des rôles d’application attribués à l’utilisateur.
user accountEnabled Indique si le compte d’utilisateur est activé.
user consentprovidedforminor Indique si le consentement a été donné pour un mineur.
user createddatetime Date et heure de création du compte d’utilisateur.
user creationtype Indique comment le compte d’utilisateur a été créé.
user lastpasswordchangedatetime Dernière date et heure de modification du mot de passe.
user mobilephone Téléphone mobile de l’utilisateur.
user officelocation Emplacement du bureau de l’utilisateur.
user onpremisesdomainname Nom de domaine local de l’utilisateur.
user onpremisesimmutableid ID immuable local de l’utilisateur.
user onpremisessyncenabled Indique si la synchronisation locale est activée.
user preferreddatalocation Définit l’emplacement de données préféré de l’utilisateur.
user proxyaddresses Adresses proxy de l’utilisateur.
user usertype Type de compte d’utilisateur.
user telephonenumber Téléphones professionnels ou de bureau de l’utilisateur.
application, resource, audience displayname Nom complet de l’objet.
application, resource, audience objectid ID de l'objet.
application, resource, audience tags Balise de principal de service de l’objet.
company tenantcountry Pays/région du locataire.

Les seules sources de revendications à valeurs multiples disponibles sur un objet utilisateur sont des attributs d’extension à valeurs multiples qui ont été synchronisés à partir d’Active Directory Connect. D’autres propriétés, telles que othermails et tags, sont à valeurs multiples, mais une seule valeur est émise lorsqu’elles sont sélectionnées en tant que source.

Les noms et URI des revendications dans l’ensemble de revendications restreint ne peuvent pas être utilisés pour les éléments de type de revendication.

Filtre du groupe

  • Chaîne : GroupFilter
  • Type de données : blob JSON
  • Résumé : utilisez cette propriété pour appliquer un filtre sur les groupes d’utilisateurs à inclure dans la revendication de groupe. Cette propriété peut permettre de réduire utilement la taille du jeton.
  • MatchOn : identifie l’attribut de groupe sur lequel appliquer le filtre. Affectez à la propriété MatchOn l’une des valeurs suivantes :
    • displayname : nom d’affichage du groupe.
    • samaccountname : nom de compte SAM local.
  • Type : définit le type de filtre appliqué à l’attribut sélectionné par la propriété MatchOn. Affectez à la propriété Type l’une des valeurs suivantes :
    • prefix : incluez des groupes pour lesquels la propriété MatchOn commence par la propriété Valeur fournie.
    • suffix Incluez des groupes où la propriété MatchOn se termine avec la propriété Valeur fournie.
    • contains : incluez des groupes où la propriété MatchOn contient la propriété Valeur fournie.

Transformation de revendications

  • Chaîne : ClaimsTransformation
  • Type de données : blob JSON avec une ou plusieurs entrées de transformation
  • Résumé : cette propriété permet d’appliquer des transformations communes à des données sources afin de générer les données de sortie pour les revendications spécifiées dans le schéma de revendications.
  • ID : permet de faire référence à cette entrée de transformation dans l’entrée de schéma de revendication TransformationID. Cette valeur doit être unique pour chaque entrée de transformation au sein de cette stratégie.
  • TransformationMethod : identifie l’opération qui est effectuée pour générer les données de la revendication.

Selon la méthode choisie, un ensemble d’entrées et sorties est attendu. Définissez les entrées et sorties à l’aide des éléments InputClaims, InputParameters et OutputClaims.

Méthode de transformation Entrée attendue Sortie attendue Description
Join string1, string2, séparateur Revendication de sortie Joint les chaînes d’entrée à l’aide d’un séparateur. Par exemple, string1: foo@bar.com, string2: sandbox, separator: . produit dans outputClaim:foo@bar.com.sandbox.
ExtractMailPrefix E-mail ou UPN chaîne extraite Attributs d’extension 1 à 15 ou toute autre extension de répertoire qui stocke une valeur d’UPN ou d’e-mail pour l’utilisateur. Par exemple : johndoe@contoso.com. Extrait la partie locale d’une adresse de courrier. Par exemple, mail: foo@bar.com entraîne la revendication de sortie :foo. Si aucun symbole @ n’est présent, la chaîne d’entrée d’origine est retournée.
ToLowercase() string chaîne de sortie Convertit les caractères de l’attribut sélectionné en minuscules.
ToUppercase() string chaîne de sortie Convertit les caractères de l’attribut sélectionné en majuscules.
RegexReplace() La transformation RegexReplace() accepte comme paramètres d’entrée :
- Paramètre 1 : un attribut utilisateur comme entrée regex
- Une option permettant d’approuver la source comme étant à valeurs multiples
- Un modèle d’expression régulière
- Un modèle de remplacement Le modèle de remplacement peut contenir un format de texte statique, ainsi que des références pointant vers des groupes de sortie regex et des paramètres d’entrée en plus.
  • InputClaims : permet de transmettre les données d’une entrée de schéma de revendication à une transformation. Celle-ci a trois attributs : ClaimTypeReferenceId, TransformationClaimType et TreatAsMultiValue.
    • ClaimTypeReferenceId : est joint à l’élément ID de l’entrée de schéma de revendication pour rechercher la revendication d’entrée appropriée.
    • TransformationClaimType donne un nom unique à cette entrée. Ce nom doit correspondre à l’une des entrées attendues pour la méthode de transformation.
    • TreatAsMultiValue est un indicateur booléen qui détermine si la transformation doit être appliquée à toutes les valeurs ou uniquement à la première. Par défaut, les transformations sont uniquement appliquées au premier élément d’une revendication à valeurs multiples. La définition de cette valeur sur true garantit qu’elle est appliquée à tous. Les groupes et les ProxyAddresses sont deux exemples de revendications d’entrée à traiter comme une revendication multi-valeur.
  • InputParameters : transmet une valeur constante à une transformation. Il utilise deux attributs : Value et ID.
    • L’attribut Value est la valeur de constante réelle à transmettre.
    • L’attribut ID est utilisé pour donner un nom unique à l’entrée. Le nom doit correspondre à l’une des entrées attendues pour la méthode de transformation.
  • OutputClaims : permet de conserver les données générées par une transformation, et de les lier à une entrée de schéma de revendication. Il utilise deux attributs : ClaimTypeReferenceId et TransformationClaimType.
    • L’attribut ClaimTypeReferenceId est joint à l’élément ID de l’entrée de schéma de revendication pour rechercher la revendication de sortie appropriée.
    • L’attribut TransformationClaimType est utilisé pour donner un nom unique à la sortie. Le nom doit correspondre à l’une des sorties attendues pour la méthode de transformation.

Exceptions et restrictions

SAML NameID et UPN : les attributs à partir desquels vous obtenez les valeurs NameID et UPN, ainsi que les transformations de revendications autorisées, sont limités.

Source id Description
user mail Adresse e-mail de l’utilisateur.
user userprincipalname Nom d’utilisateur principal de l’utilisateur.
user onpremisessamaccountname Nom de compte Sam local
user employeeid L’ID d’employé de l’utilisateur.
user telephonenumber Téléphones professionnels ou de bureau de l’utilisateur.
user extensionattribute1 Attribut d’extension 1.
user extensionattribute2 Attribut d’extension 2.
user extensionattribute3 Attribut d’extension 3.
user extensionattribute4 Attribut d’extension 4.
user extensionattribute5 Attribut d’extension 5.
user extensionattribute6 Attribut d’extension 6.
user extensionattribute7 Attribut d’extension 7.
user extensionattribute8 Attribut d’extension 8.
user extensionattribute9 Attribut d’extension 9.
user extensionattribute10 Attribut d’extension 10.
user extensionattribute11 Attribut d’extension 11.
user extensionattribute12 Attribut d’extension 12.
user extensionattribute13 Attribut d’extension 13.
user extensionattribute14 Attribut d’extension 14.
User extensionattribute15 Attribut d’extension 15.

Les méthodes de transformation répertoriées dans le tableau suivant sont autorisées pour SAML NameID.

Méthode de transformation Restrictions
ExtractMailPrefix None
Join Le suffixe joint doit être un domaine vérifié du locataire de ressources.

Émetteur avec ID d’application

  • Chaîne : issuerWithApplicationId
  • Type de données : valeur booléenne (True ou False)
    • Si la valeur est définie sur True, l’ID d’application est ajouté à la revendication de l’émetteur dans les jetons affectés par la stratégie.
    • Si la valeur est définie sur False, l’ID d’application n’est pas ajouté à la revendication de l’émetteur dans les jetons affectés par la stratégie. (par défaut)
  • Résumé : permet d’inclure l’ID d’application dans la revendication de l’émetteur. Garantit que plusieurs instances de la même application ont une valeur de revendication unique pour chaque instance. Ce paramètre est ignoré si une clé de signature personnalisée n’est pas configurée pour l’application.

Remplacement d’audience

  • Chaîne : audienceOverride
  • Type de données : chaîne
  • Résumé : vous permet de remplacer la revendication d’audience envoyée à l’application. La valeur fournie doit être un URI absolu valide. Ce paramètre est ignoré si aucune clé de signature personnalisée n’est configurée pour l’application.

Étapes suivantes