Approvisionnement d’applications basé sur les attributs avec filtres d’étendueAttribute-based application provisioning with scoping filters

L’objectif de cet article est d’expliquer comment utiliser des filtres d’étendue pour définir des règles basées sur des attributs qui déterminent quels utilisateurs sont approvisionnés pour une application.The objective of this article is to explain how to use scoping filters to define attribute-based rules that determine which users are provisioned to an application.

Cas d’utilisation du filtre d’étendueScoping filter use cases

Un filtre d’étendue permet au service d’approvisionnement Azure Active Directory (Azure AD) d’inclure ou d’exclure tous les utilisateurs dont un attribut correspond à une valeur spécifique.A scoping filter allows the Azure Active Directory (Azure AD) provisioning service to include or exclude any users who have an attribute that matches a specific value. Par exemple, lors d’un approvisionnement d’utilisateurs depuis Azure AD vers une application SaaS utilisée par une équipe de vente, vous pouvez spécifier que seuls les utilisateurs dont l’attribut « Département » est « Ventes » doivent être sujets à l’approvisionnement.For example, when provisioning users from Azure AD to a SaaS application used by a sales team, you can specify that only users with a "Department" attribute of "Sales" should be in scope for provisioning.

Les filtres d’étendue peuvent être utilisés différemment en fonction du type du connecteur d’approvisionnement :Scoping filters can be used differently depending on the type of provisioning connector:

  • Approvisionnement sortant d’Azure AD vers des applications SaaS.Outbound provisioning from Azure AD to SaaS applications. Quand Azure AD est le système source, les affectations d’utilisateur et de groupe sont les méthodes les plus courantes pour déterminer les utilisateurs sujets à un approvisionnement.When Azure AD is the source system, user and group assignments are the most common method for determining which users are in scope for provisioning. Ces affectations sont également utilisées pour activer l’authentification unique et fournissent une méthode unique pour gérer l’accès et l’approvisionnement.These assignments also are used for enabling single sign-on and provide a single method to manage access and provisioning. Les filtres d’étendue peuvent être utilisés si vous le souhaitez, en plus des affectations ou à leur place, afin de filtrer les utilisateurs selon des valeurs d’attribut.Scoping filters can be used optionally, in addition to assignments or instead of them, to filter users based on attribute values.

    Conseil

    Vous pouvez désactiver l’approvisionnement basé sur des affectations pour une application d’entreprise en changeant le menu Étendue sous les paramètres d’approvisionnement sur Synchroniser tous les utilisateurs et groupes.You can disable provisioning based on assignments for an enterprise application by changing settings in the Scope menu under the provisioning settings to Sync all users and groups.

  • Approvisionnement entrant des applications HCM vers Azure AD et Active Directory.Inbound provisioning from HCM applications to Azure AD and Active Directory. Quand une application HCM telle que Workday est le système source, l’utilisation de filtres d’étendue est la principale méthode pour déterminer les utilisateurs sujets à un approvisionnement de l’application HCM vers Active Directory ou Azure AD.When an HCM application such as Workday is the source system, scoping filters are the primary method for determining which users should be provisioned from the HCM application to Active Directory or Azure AD.

Par défaut, les connecteurs d’approvisionnement Azure AD ne disposent pas de filtres d’étendue basés sur les attributs.By default, Azure AD provisioning connectors do not have any attribute-based scoping filters configured.

Construction d’un filtre d’étendueScoping filter construction

Un filtre d’étendue se compose d’une ou plusieurs clauses.A scoping filter consists of one or more clauses. Les clauses déterminent quels utilisateurs sont autorisés à traverser le filtre d’étendue en évaluant les attributs de chaque utilisateur.Clauses determine which users are allowed to pass through the scoping filter by evaluating each user's attributes. Par exemple, l’une de vos clauses peut exiger que l’attribut « État » d’un utilisateur soit égal à « New York », afin que seuls les utilisateurs de New York soient approvisionnés dans l’application.For example, you might have one clause that requires that a user's "State" attribute equals "New York", so only New York users are provisioned into the application.

Une seule clause définit une condition unique pour une seule valeur d’attribut.A single clause defines a single condition for a single attribute value. Si plusieurs clauses sont créées dans un seul filtre d’étendue, ils sont évalués ensemble en utilisant la logique « ET ».If multiple clauses are created in a single scoping filter, they're evaluated together by using "AND" logic. Cela signifie que chacune des clauses doit être considérée « true » pour qu’un utilisateur soit approvisionné.This means all clauses must evaluate to "true" in order for a user to be provisioned.

Enfin, plusieurs filtres d’étendue peuvent être créés pour une seule application.Finally, multiple scoping filters can be created for a single application. Si plusieurs filtres d’étendue sont présents, ils sont évalués ensemble en utilisant la logique « OU ».If multiple scoping filters are present, they're evaluated together by using "OR" logic. Cela signifie que si toutes les clauses présentes dans un seul des filtres d’étendue configurés sont considérées « true », l’utilisateur est approvisionné.This means that if all the clauses in any of the configured scoping filters evaluate to "true", the user is provisioned.

Chaque utilisateur ou groupe traité par le service d’approvisionnement Azure AD est toujours évalué individuellement par rapport à chaque filtre d’étendue.Each user or group processed by the Azure AD provisioning service is always evaluated individually against each scoping filter.

Par exemple, considérez le filtre d’étendue suivant :As an example, consider the following scoping filter:

Filtre d’étendue

D’après ce filtre d’étendue, les utilisateurs doivent satisfaire aux critères suivants pour être approvisionnés :According to this scoping filter, users must satisfy the following criteria to be provisioned:

  • Ils doivent être de New York.They must be in New York.
  • Ils doivent travailler dans le service Ingénierie.They must work in the Engineering department.
  • Leur ID d’employé de leur société doit être compris entre 1 000 000 et 2 000 000.Their company employee ID must be between 1,000,000 and 2,000,000.
  • Leur poste ne doit être null ou vide.Their job title must not be null or empty.

Créer des filtres d’étendueCreate scoping filters

Les filtres d’étendue sont configurés comme parties des mappages d’attributs pour chaque connecteur d’approvisionnement d’utilisateur Azure AD.Scoping filters are configured as part of the attribute mappings for each Azure AD user provisioning connector. La procédure suivante suppose que l’approvisionnement automatique soit déjà configuré pour l’une des applications prises en chargeet que vous lui ajoutez un filtre d’étendue.The following procedure assumes that you already set up automatic provisioning for one of the supported applications and are adding a scoping filter to it.

Créer un filtre d’étendueCreate a scoping filter

  1. Dans le Portail Azure, accédez à la section Azure Active Directory > Applications d’entreprise > Toutes les applications.In the Azure portal, go to the Azure Active Directory > Enterprise Applications > All applications section.

  2. Sélectionnez l’application pour laquelle vous avez configuré l’approvisionnement automatique. Par exemple, « ServiceNow ».Select the application for which you have configured automatic provisioning: for example, "ServiceNow".

  3. Sélectionnez l’onglet Approvisionnement.Select the Provisioning tab.

  4. Dans la section Mappages , sélectionnez le mappage pour lequel vous souhaitez configurer un filtre d’étendue : par exemple, « Synchroniser les utilisateurs Azure Active Directory avec ServiceNow ».In the Mappings section, select the mapping that you want to configure a scoping filter for: for example, "Synchronize Azure Active Directory Users to ServiceNow".

  5. Sélectionnez le menu Étendue de l’objet source.Select the Source object scope menu.

  6. Sélectionnez Ajouter un filtre d’étendue.Select Add scoping filter.

  7. Définissez une clause en sélectionnant un nom d’attribut source, un opérateur et une valeur d’attribut pour effectuer la comparaison.Define a clause by selecting a source Attribute Name, an Operator, and an Attribute Value to match against. Les opérateurs suivants sont pris en charge :The following operators are supported:

    a.a. EQUALS.EQUALS. La clause renvoie « true » si l’attribut évalué correspond exactement à la valeur de chaîne d’entrée (respecte la casse).Clause returns "true" if the evaluated attribute matches the input string value exactly (case sensitive).

    b.b. NOT EQUALS.NOT EQUALS. La clause renvoie « true » si l’attribut évalué ne correspond pas à la valeur de chaîne d’entrée (respecte la casse).Clause returns "true" if the evaluated attribute doesn't match the input string value (case sensitive).

    c.c. IS TRUE.IS TRUE. La clause renvoie « true » si l’attribut évalué contient une valeur booléenne True.Clause returns "true" if the evaluated attribute contains a Boolean value of true.

    d.d. IS FALSE.IS FALSE. La clause renvoie « true » si l’attribut évalué contient une valeur booléenne True.Clause returns "true" if the evaluated attribute contains a Boolean value of false.

    e.e. IS NULL.IS NULL. La clause renvoie « true » si l’attribut évalué est vide.Clause returns "true" if the evaluated attribute is empty.

    f.f. IS NOT NULL.IS NOT NULL. La clause renvoie « true » si l’attribut évalué n’est pas vide.Clause returns "true" if the evaluated attribute isn't empty.

    g.g. REGEX MATCH.REGEX MATCH. La clause renvoie « true » si l’attribut évalué correspond à un modèle d’expression régulière.Clause returns "true" if the evaluated attribute matches a regular expression pattern. Exemple : ([1-9][0-9]) comprend tout nombre compris entre 10 et 99.For example: ([1-9][0-9]) matches any number between 10 and 99.

    h.h. NOT REGEX MATCH.NOT REGEX MATCH. La clause renvoie « true » si l’attribut évalué ne correspond pas à un modèle d’expression régulière.Clause returns "true" if the evaluated attribute doesn't match a regular expression pattern.

    i.i. Greater_Than.Greater_Than. La clause renvoie « true » si l’attribut évalué est supérieur à la valeur.Clause returns "true" if the evaluated attribute is greater than the value. La valeur indiquée dans le filtre d’étendue doit être un nombre entier et l’attribut de l’utilisateur doit être un nombre entier [0, 1, 2,...].The value specified on the scoping filter must be an integer and the attribute on the user must be an integer [0,1,2,...].

    j.j. Greater_Than_OR_EQUALS.Greater_Than_OR_EQUALS. La clause renvoie « true » si l’attribut évalué est supérieur ou égal à la valeur.Clause returns "true" if the evaluated attribute is greater than or equal to the value. La valeur indiquée dans le filtre d’étendue doit être un nombre entier et l’attribut de l’utilisateur doit être un nombre entier [0, 1, 2,...].The value specified on the scoping filter must be an integer and the attribute on the user must be an integer [0,1,2,...].

    k.k. Includes.Includes. La clause renvoie « true » si l’attribut évalué contient la valeur de chaîne (respecte la casse) comme décrit ici.Clause returns "true" if the evaluated attribute contains the string value (case sensitive) as described here.

Important

  • Le filtre IsMemberOf n’est pas pris en charge actuellement.The IsMemberOf filter is not supported currently.
  • Les opérateurs EGALS et NOT EGALS ne sont pas pris en charge pour les attributs à valeurs multiplesEQUALS and NOT EQUALS are not supported for multi-valued attributes
  1. Si vous le souhaitez, répétez les étapes 7 et 8 pour ajouter d’autres clauses d’étendues.Optionally, repeat steps 7-8 to add more scoping clauses.

  2. Dans Titre du filtre d’étendue, saisissez un nom pour votre filtre d’étendue.In Scoping Filter Title, add a name for your scoping filter.

  3. Sélectionnez OK.Select OK.

  4. Sélectionnez OK à nouveau sur l’écran Filtres d’étendue.Select OK again on the Scoping Filters screen. Si vous le souhaitez, répétez les étapes 6 et 11 pour ajouter d’autres filtres d’étendue.Optionally, repeat steps 6-11 to add another scoping filter.

  5. Sélectionnez Enregistrer sur l’écran de mappage d’attributs.Select Save on the Attribute Mapping screen.

Important

L’enregistrement d’un nouveau filtre d’étendue déclenche une nouvelle synchronisation complète pour l’application, avec une comparaison de tous les utilisateurs dans le système source par rapport au nouveau filtre d’étendue.Saving a new scoping filter triggers a new full sync for the application, where all users in the source system are evaluated again against the new scoping filter. Si un utilisateur dans l’application répondait précédemment aux exigences d’un approvisionnement, mais que ce n’est plus le cas maintenant, son compte est désactivé ou déprovisionné dans l’application.If a user in the application was previously in scope for provisioning, but falls out of scope, their account is disabled or deprovisioned in the application. Pour remplacer ce comportement par défaut, consultez Ignorer la suppression des comptes d’utilisateurs qui sortent de l’étendue.To override this default behavior, refer to Skip deletion for user accounts that go out of scope.

Filtres d’étendue communsCommon scoping filters

Attribut cibleTarget Attribute OpérateurOperator ValeurValue DescriptionDescription
userPrincipalNameuserPrincipalName REGEX MATCHREGEX MATCH .*@domain.com.*@domain.com Tous les utilisateurs dont userPrincipal a le domaine @domain.com sont concernés par l’approvisionnementAll users with userPrincipal that has the domain @domain.com will be in scope for provisioning
userPrincipalNameuserPrincipalName NOT REGEX MATCHNOT REGEX MATCH .*@domain.com.*@domain.com Tous les utilisateurs dont userPrincipal a le domaine @domain.com ne sont pas concernés par l’approvisionnementAll users with userPrincipal that has the domain @domain.com will be out of scope for provisioning
departmentdepartment EQUALSEQUALS salessales Tous les utilisateurs du service commercial sont concernés par l’approvisionnementAll users from the sales department are in scope for provisioning
workerIDworkerID REGEX MATCHREGEX MATCH (1[0-9][0-9][0-9][0-9][0-9][0-9])(1[0-9][0-9][0-9][0-9][0-9][0-9]) Tous les employés dont les workerID sont compris entre 1 000 000 et 2 000 000 sont concernés par l’approvisionnement.All employees with workerIDs between 1000000 and 2000000 are in scope for provisioning.