Connecteur Microsoft Identity Manager pour Microsoft Graph
Résumé
Le connecteur Microsoft Identity Manager pour Microsoft Graph permet des scénarios d’intégration supplémentaires pour les clients Azure AD Premium. Il apparaît dans les objets supplémentaires de métaverse MIM Sync obtenus à partir des versions v1 et bêta de l’API Microsoft Graph.
Scénarios couverts
Gestion du cycle de vie des comptes B2B
Le premier scénario utilise le connecteur Microsoft Identity Manager pour Microsoft Graph dans le but d’automatiser la gestion du cycle de vie des comptes AD DS des utilisateurs externes. Dans ce scénario, une organisation synchronise ses employés avec Azure AD à partir d’AD DS à l’aide d’Azure AD Connect, et invite des utilisateurs à faire partie de son annuaire Azure AD. Quand vous invitez un utilisateur, un objet utilisateur externe est créé dans l’annuaire Azure AD de l’organisation, mais pas dans AD DS. L’organisation souhaite octroyer à ces utilisateurs invités l’accès à des applications locales utilisant l’authentification Kerberos ou l’authentification Windows intégrée, par le biais du proxy d’application Azure AD ou d’autres mécanismes de passerelle. Le proxy d’application Azure AD exige que chaque utilisateur dispose de son propre compte AD DS, à des fins d’identification et de délégation.
Pour savoir comment configurer la synchronisation MIM de façon à créer et gérer automatiquement les comptes AD DS invités, après avoir lu les instructions fournies dans cet article, poursuivez avec l’article Collaboration interentreprises (B2B) Azure AD avec Microsoft Identity Manager (MIM) 2016 SP1 et le Proxy d’application Azure. Cet article aborde les règles de synchronisation nécessaires au connecteur.
Autres scénarios de gestion des identités
Le connecteur peut être utilisé pour d’autres scénarios de gestion des identités impliquant la création la lecture, la mise à jour et la suppression d’utilisateurs, de groupes et d’objets de contact dans Azure AD, en plus de la synchronisation des utilisateurs et des groupes avec Azure AD. Lorsque vous évaluez les scénarios potentiels, gardez ceci à l’esprit : ce connecteur ne peut pas être utilisé dans un scénario impliquant le chevauchement de flux de données ou un conflit de synchronisation réel ou potentiel avec un déploiement Azure AD Connect. Azure AD Connect est recommandé pour intégrer des annuaires locaux à Azure AD, en synchronisant les utilisateurs et les groupes d’annuaires locaux vers Azure AD. Azure AD Connect comprend beaucoup plus de fonctionnalités de synchronisation, et permet des scénarios tels que la réécriture du mot de passe ou de l’appareil, qui ne sont pas possibles avec les objets créés par MIM. Si des données sont importées dans AD DS, par exemple, vérifiez qu’elles sont exclues par Azure AD Connect, pour ne pas que celui-ci tente de recopier ces objets dans l’annuaire Azure AD. Vérifiez également que le connecteur n’est pas utilisé pour apporter des modifications aux objets Azure AD qui ont été créés par Azure AD Connect.
Préparation à l’utilisation du connecteur pour Microsoft Graph
Autorisation du connecteur à récupérer ou gérer des objets dans votre annuaire Azure AD
Le connecteur nécessite la création d’une application web ou d’une application API dans Azure AD, afin de pouvoir bénéficier des autorisations nécessaires à l’utilisation des objets Azure AD via Microsoft Graph.


Image 1. Nouvelle inscription d’application
Dans le portail Azure, ouvrez l’application créée, puis enregistrez l’ID de l’application comme un ID client afin de l’utiliser plus tard dans la page de connectivité de l’agent de gestion :

Image 2. ID de l'application
Générez une nouvelle clé secrète client en ouvrant des certificats secrets. Définissez une description de la clé et sélectionnez la durée nécessaire. Enregistrez les changements. Aucune valeur secrète n’est disponible après avoir quitté la page.

Image 3. Nouvelle clé secrète client
accordez des autorisations « Microsoft Graph » appropriées à l’application en ouvrant « autorisations d’API ».
Image 4. Ajouter une nouvelle APIsélectionnez les autorisations de l’Application « Microsoft Graph ».

Révoquer toutes les autorisations inutiles.

L’autorisation suivante doit être ajoutée à l’application pour lui permettre d’utiliser l’API Microsoft Graph, en fonction du scénario :
Opération avec l’objet Autorisation requise Type d'autorisation Détection de schéma Application.Read.AllApplication Importer un groupe Group.Read.AllouGroup.ReadWrite.AllApplication Importer un utilisateur User.Read.All,User.ReadWrite.All,Directory.Read.AllouDirectory.ReadWrite.AllApplication Pour plus d’informations sur les autorisations requises, consultez la référence des autorisations.
Notes
L’autorisation application. Read. All est obligatoire pour la détection du schéma et doit être accordée, quel que soit le type d’objet utilisé par le connecteur.
- Accorder le consentement de l’administrateur pour les autorisations sélectionnées.

Installation du connecteur
- Avant d’installer le connecteur, vérifiez que vous disposez des éléments suivants sur le serveur de synchronisation :
- Microsoft .NET 4.5.2 Framework ou version ultérieure
- Microsoft Identity Manager 2016 SP1, avec le correctif logiciel 4.4.1642.0 KB4021562 ou version ultérieure.
Le connecteur pour Microsoft Graph (en plus des autres connecteurs pour Microsoft Identity Manager 2016 SP1) est disponible en téléchargement dans le Centre de téléchargement Microsoft.
Redémarrez le service de synchronisation MIM.
Configuration des connecteurs
- Dans l’interface utilisateur Synchronization Service Manager, sélectionnez Connecteurs et Créer. sélectionnez Graph (Microsoft), créez un connecteur et donnez-lui un nom descriptif.

- dans l’interface utilisateur du service de synchronisation MIM, spécifiez l’ID de l’Application et la clé secrète du Client générée. Chaque agent de gestion configuré dans MIM Sync doit avoir sa propre application dans Azure AD, afin d’éviter l’importation simultanée d’une même application.

Image 5. Page Connectivité
La page Connectivité (Image 5) contient la version de l’API Graph qui est utilisée, ainsi que le nom du locataire. L’ID du client et le secret du client représentent l’ID de l’application et la valeur de la clé de l’application WebAPI à créer dans Azure AD.
- Apportez les modifications nécessaires dans la page Paramètres globaux :

Image 6. Page Paramètres globaux
La page Paramètres globaux comprend les paramètres suivants :
Format date et heure : format utilisé pour tout attribut de type Edm.DateTimeOffset. Toutes les dates sont converties en chaîne à l’aide de ce format pendant l’importation. Le format défini est appliqué à tout attribut, qui enregistre une date.
Délai d’attente HTTP (secondes) : délai d’expiration en secondes utilisé lors de chaque appel HTTP à l’application WebAPI.
Forcer l’utilisateur créé à changer son mot de passe à la prochaine connexion : cette option est utilisée pour les nouveaux utilisateurs créés pendant l’exportation. Si elle est activée, alors la propriété forceChangePasswordNextSignIn a la valeur true, sinon, elle a la valeur false.
Configuration du schéma et des opérations du connecteur
- Configurez le schéma. Le connecteur prend en charge la liste suivante de types d’objets :
Utilisateur
Importation complète/différentielle
Exportation (ajout, mise à jour, suppression)
Group
Importation complète/différentielle
Exportation (ajout, mise à jour, suppression)
Liste des types d’attributs pris en charge :
Edm.BooleanEdm.StringEdm.DateTimeOffset(chaîne dans l’espace connecteur)microsoft.graph.directoryObject(référence dans l’espace connecteur à l’un des objets pris en charge)microsoft.graph.contact
Les attributs à valeurs multiples (collection) sont également pris en charge par tous les types de la liste ci-dessus.
Le connecteur Graph utilise l’attribut « id » pour l’ancre, et un nom unique pour tous les objets. Il n’est donc pas nécessaire de les renommer, puisque l’API Graph ne permet pas de modifier l’attribut ID d’un objet.
Durée de vie de jeton d’accès
Une application Graph nécessite un jeton d’accès pour accéder à l’API Graph. Un connecteur demande un nouveau jeton d’accès pour chaque itération d’importation (laquelle dépend de la taille de la page). Par exemple :
Azure AD contient 10 000 objets.
La taille de la page configurée dans le connecteur s’élève à 5 000.
Dans ce cas, il y aura deux itérations au cours de l’importation. chacune d’entre elles renverra 5000 objets à synchroniser. Par conséquent, un nouveau jeton d’accès est demandé à deux reprises.
Pendant l’exportation, un nouveau jeton d’accès est demandé pour chaque objet à ajouter, mettre à jour ou supprimer.
Filtres de requête
les points de terminaison API Graph offrent la possibilité de limiter la quantité d’objets retournés par les requêtes d’extraction en introduisant $filter paramètre.
Pour permettre l’utilisation de filtres de requête afin d’améliorer le cycle de performance de l’importation complète, sur la page schéma 1 de propriétés du connecteur, activez la case à cocher Activer le filtre ajouter des objets .

Après cela, sur la page du schéma 2 , tapez une expression à utiliser pour filtrer les utilisateurs, les groupes, les contacts ou les principaux du service.

Dans la capture d’écran ci-dessus, le filtre StartsWith (DisplayName, 'J') est défini pour lire uniquement les utilisateurs dont la valeur d’attribut DisplayName commence par « J ».
Assurez-vous que l’attribut utilisé dans expression de filtre est sélectionné dans les propriétés du connecteur.

Pour plus d’informations sur $Filter utilisation des paramètres de requête, consultez cet article : utiliser des paramètres de requête pour personnaliser les réponses.
Notes
Le point de terminaison de requête Delta n’offre actuellement pas de fonctionnalités de filtrage. par conséquent, l’utilisation de filtres est limitée à l’importation complète uniquement. Vous obtiendrez une erreur lors de la tentative de démarrage de l’exécution de l’importation Delta avec les filtres de requête activés.
Dépannage
Activer les journaux d’activité
En cas de problèmes dans Graph, des journaux servent à les localiser. Ainsi, il est possible d’activer des traces de la même manière que pour les connecteurs génériques. Sinon, vous pouvez ajouter ce qui suit à miiserver.exe.config (dans la section system.diagnostics/sources) :
<source name="ConnectorsLog" switchValue="Verbose">
<listeners>
<add initializeData="ConnectorsLog"
type="System.Diagnostics.EventLogTraceListener, System, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ConnectorsLogListener" traceOutputOptions="LogicalOperationStack,
DateTime, Timestamp, Call stack" />
<remove name="Default" />
</listeners>
</source>
Notes
Si l’option « Run this management agent in a separate process » (Exécuter cet agent de gestion dans un processus séparé) est activée, dllhost.exe.config doit être utilisé au lieu de miiserver.exe.config.
Erreur liée à l’expiration du jeton d’accès
Le connecteur peut retourner une erreur HTTP 401 non autorisée dont le message indique que le jeton d’accès a expiré :

Image 7. « Le jeton d’accès a expiré. » Error
La cause de ce problème peut être liée à la configuration de la durée de vie du jeton d’accès côté Azure. Par défaut, le jeton d’accès expire au bout d’une heure. Pour augmenter le délai d’expiration, consultez cet article.
Exemple avec la préversion publique du module PowerShell Azure AD

New-AzureADPolicy-Definition @ (' {"TokenLifetimePolicy" : {"version" : 1, "AccessTokenLifetime" : "5:00:00"}} ')-DisplayName "OrganizationDefaultPolicyScenario"-IsOrganizationDefault $true-type "TokenLifetimePolicy"