Share via


Intégrer les utilisateurs externes aux applications de métier à l’aide de Microsoft Entra B2B

Les développeurs d’applications peuvent utiliser Microsoft Entra B2B afin d’intégrer des utilisateurs externes et de collaborer avec ces derniers au sein d’applications métier (LOB). À l’instar du bouton Partager dans de nombreuses applications Office 365, les développeurs d’applications peuvent créer une expérience d’invitation en un clic dans n’importe quelle application métier intégrée à Microsoft Entra ID.

Voici les avantages :

  • Intégration simple des utilisateurs et accès aux applications métier à l’aide des utilisateurs autorisés à y accéder en quelques étapes.

  • Permet aux utilisateurs externes d’apporter leur propre identité et d’utiliser l’authentification unique (SSO).

  • Approvisionnement automatique d’identités externes dans Microsoft Entra ID.

  • Appliquez des stratégies d’accès interlocataire et d’accès conditionnel Microsoft Entra afin d’appliquer des stratégies d’autorisation telles qu’une authentification multifacteur.

Flux d’intégration

Afin d’intégrer des applications métier à Microsoft Entra B2B, suivez ce modèle :

Screenshot shows the integration of LOB applications.

Étape Description
1. L’utilisateur final déclenche l’invitation dans l’application métier et fournit l’adresse e-mail de l’utilisateur externe. L’application vérifie si l’utilisateur existe déjà et, si ce n’est pas le cas, passe à l’étape 2
2. L’application envoie un événement POST à l’API Graph Microsoft au nom de l’utilisateur. Il fournit l’URL de redirection et l’adresse e-mail de l’utilisateur externe qui est définie à l’étape 1.
3. L’API Microsoft Graph approvisionne l’utilisateur invité dans Microsoft Entra ID.
4. L’API Microsoft Graph renvoie l’état de réussite/d’échec de l’appel d’API. En cas de succès, la réponse comprend l’identifiant de l’objet utilisateur Microsoft Entra et le lien d’invitation envoyé à l’adresse électronique de l’utilisateur(-trice) invité(e). Vous pouvez éventuellement supprimer l’adresse e-mail Microsoft et envoyer votre propre adresse e-mail personnalisée.
5. (Facultatif) Si vous souhaitez écrire d’autres attributs pour l’utilisateur invité ou ajouter l’utilisateur invité à un groupe, l’application effectue un appel d’API supplémentaire vers l’API Microsoft Graph.
6. (Facultatif) L’API Microsoft Graph effectue les mises à jour souhaitées dans Microsoft Entra ID.
7. (Facultatif) L’API Microsoft Graph renvoie l’état de réussite/d’échec à l’application.
8. L’application approvisionne l’utilisateur dans son propre répertoire utilisateur back-end/sa propre base de données en utilisant l’attribut d’ID d’objet de l’utilisateur en tant qu’ID immuable.
9. L’application présente l’état de réussite/d’échec à l’utilisateur final.

Si l’attribution est nécessaire pour accéder à l’application métier, l’utilisateur invité doit également être attribué à l’application avec un rôle d’application approprié. Pour ce faire, un autre appel d’API peut ajouter l’invité à un groupe (étapes 5 à 7), ou l’appartenance à un groupe avec des groupes dynamiques Microsoft Entra peut être automatisée. L’utilisation de groupes dynamiques ne requiert pas d’autre appel d’API par l’application. Toutefois, la mise à jour de l’appartenance à un groupe n’est pas aussi rapide que l’ajout d’un utilisateur à un groupe immédiatement après l’invitation de l’utilisateur.

Étape 1 : vérifier si l’utilisateur externe existe déjà

Il est possible que l’utilisateur externe ait déjà été invité et intégré. L’application métier doit vérifier si l’utilisateur existe déjà dans le répertoire. Il existe de nombreuses approches. Toutefois, l’approche la plus simple consiste à effectuer un appel d’API à l’API Microsoft Graph et à présenter les correspondances possibles à l’utilisateur à l’origine de l’invitation afin que ce dernier en choisisse une.

Par exemple :

Application Permission: User.read.all

GET https://graph.microsoft.com/v1.0/users?$filter=othermails/any(id:id eq 'userEmail@contoso.com')  

Si la réponse contient les détails d’un(e) utilisateur(-trice), l’utilisateur(-trice) existe déjà. Vous devez présenter les utilisateurs renvoyés à l’utilisateur à l’origine de l’invitation afin qu’il choisisse l’utilisateur externe auquel il souhaite octroyer l’accès. Vous devez effectuer des appels d’API appropriés ou déclencher d’autres processus pour octroyer à cet utilisateur l’accès à l’application, plutôt que de passer par l’étape d’invitation.

Étape 2 : créer et envoyer une invitation

Si l’utilisateur externe n’existe pas encore dans le répertoire, vous pouvez utiliser Microsoft Entra B2B pour inviter l’utilisateur et l’intégrer à votre locataire Microsoft Entra. En tant que développeur d’applications, vous devez déterminer les éléments à inclure dans la requête d’invitation à l’API Microsoft Graph.

Au minimum, vous devez :

  • Inviter l’utilisateur(-trice) final(e) à fournir l’adresse e-mail de l’utilisateur(-trice) externe.

  • déterminer l’URL de l’invitation. Cette URL est l’emplacement vers lequel l’utilisateur invité est redirigé après qu’il s’est authentifié et a accepté l’invitation B2B. L’URL peut constituer une page de destination générique pour l’application ou être déterminée dynamiquement par l’application métier selon l’emplacement dans lequel l’utilisateur final a déclenché l’invitation.

Les autres indicateurs et attributs à inclure dans la requête d’invitation sont les suivants :

  • le nom d’affichage de l’utilisateur invité ;
  • la détermination selon laquelle vous souhaitez utiliser l’adresse e-mail d’invitation Microsoft par défaut ou supprimer l’adresse e-mail par défaut afin de créer la vôtre.

Une fois que l’application a collecté les informations requises et déterminé d’autres indicateurs ou informations à inclure, l’application doit transmettre, par le biais d’un événement POST, la requête au gestionnaire d’invitation de l’API Microsoft Graph. Vérifiez que l’inscription d’application dispose des autorisations appropriées dans Microsoft Entra ID.

Par exemple :

Delegated Permission: User.Invite.All

POST https://graph.microsoft.com/v1.0/invitations  
Content-type: application/json

{ 
"invitedUserDisplayName": "John Doe",  
"invitedUserEmailAddress": "john.doe@contoso.com",  
"sendInvitationMessage": true,  
"inviteRedirectUrl": "https://customapp.contoso.com"  
} 

Notes

Afin d’afficher la liste complète des options disponibles pour le corps JSON de l’invitation, consultez Type de ressource d’invitation – Microsoft Graph v1.0.

Les développeurs d’applications peuvent également intégrer des utilisateurs externes à l’aide d’une inscription en libre-service ou de packages d’accès de gestion des droits d’utilisation Microsoft Entra. Vous pouvez créer votre bouton d’invitation dans votre application métier qui déclenche une adresse e-mail personnalisée contenant une URL d’inscription en libre-service prédéfinie ou une URL de package d’accès. L’utilisateur invité est alors intégré en libre-service et accède à l’application.

Étape 3 : écrire d’autres attributs dans Microsoft Entra ID (facultatif)

Important

L’octroi d’une autorisation d’application pour mettre à jour les utilisateurs de votre répertoire est une action hautement privilégiée. Vous devez prendre des mesures pour sécuriser et analyser votre application métier si vous octroyez à l’application ces autorisations hautement privilégiées.

Il peut être nécessaire pour votre organisation ou l’application métier de stocker davantage d’informations aux fins d’une utilisation future, comme l’émission de revendications dans des jetons ou des stratégies d’autorisation granulaires. Votre application peut effectuer un autre appel d’API pour mettre à jour l’utilisateur(-trice) externe après que ce dernier a été invité/créé dans Microsoft Entra ID. Pour ce faire, votre application doit disposer d’autorisations d’API supplémentaires, et un appel supplémentaire à l’API Microsoft Graph est requis.

Pour mettre à jour l’utilisateur(-trice), vous devez utiliser l’ID d’objet de l’utilisateur(-trice) invité(e) nouvellement créé reçu dans la réponse de l’appel d’API d’invitation. Il s’agit de la valeur ID dans la réponse d’API à la suite de l’invitation ou de la vérification de l’existence. Vous pouvez écrire dans n’importe quel attribut standard ou attribut d’extension personnalisé que vous avez créé.

Par exemple :

Application Permission: User.ReadWrite.All

PATCH https://graph.microsoft.com/v1.0/users/<user's object ID> 
Content-type: application/json

{ 
"businessPhones": [ 
        "+1 234 567 8900" 
    ], 
"givenName": "John" 
"surname": "Doe", 
"extension_cf4ff515cbf947218d468c96f9dc9021_appRole": "external" 
} 

Pour plus d’informations, consultez Mettre à jour l’utilisateur – Microsoft Graph v1.0.

Étape 4 : attribuer l’utilisateur invité à un groupe

Remarque

Si l’attribution d’un(e) utilisateur(-trice) n’est pas requise pour accéder à l’application, vous pouvez ignorer cette étape.

Si l’attribution d’un(e) utilisateur(-trice) est requise dans Microsoft Entra ID pour accéder à l’application et/ou attribuer un rôle, l’utilisateur(-trice) doit être attribué(e) à l’application. Sinon, l’utilisateur(-trice) ne peut pas obtenir l’accès, quelle que soit l’authentification réussie. Pour ce faire, vous devez effectuer un autre appel d’API pour ajouter l’utilisateur externe invité à un groupe spécifique. Le groupe peut être attribué à l’application et mappé à un rôle d’application spécifique.

Par exemple :

Autorisations : attribuez le rôle de mise à jour de groupe ou un rôle personnalisé à l’application d’entreprise et définissez l’attribution de rôle uniquement au ou aux groupes que cette application doit mettre à jour. Vous pouvez également attribuer l’autorisation group.readwrite.all dans l’API Microsoft Graph.

POST https://graph.microsoft.com/v1.0/groups/<insert group id>/members/$ref 
Content-type: application/json

{ 
"@odata.id": "https://graph.microsoft.com/v1.0/directoryObjects/<insert user id>" 
} 

Pour plus d’informations, consultez Ajouter des membres – Microsoft Graph v1.0.

Vous pouvez également utiliser des groupes dynamiques Microsoft Entra, qui peuvent automatiquement attribuer des utilisateurs à un groupe selon les attributs de l’utilisateur(-trice). Toutefois, si l’accès de l’utilisateur final est sensible au temps, cette approche n’est pas recommandée, car le remplissage des groupes dynamiques peut prendre jusqu’à 24 heures.

Si vous préférez utiliser des groupes dynamiques, vous n’avez pas besoin d’ajouter explicitement les utilisateurs à un groupe à l’aide d’un autre appel d’API. Créez un groupe dynamique qui ajoute automatiquement l’utilisateur en tant que membre du groupe selon les attributs disponibles, tels que l’attribut userType, l’adresse e-mail ou un attribut personnalisé. Pour plus d’informations, consultez Créer ou modifier un groupe dynamique et obtenir l’état.

Étape 5 : approvisionner l’utilisateur invité à l’application

Une fois que l’utilisateur externe invité a été approvisionné dans Microsoft Entra ID, l’API Microsoft Graph renvoie une réponse contenant les informations nécessaires de l’utilisateur, telles que l’ID d’objet et l’adresse e-mail. L’application métier peut ensuite approvisionner l’utilisateur dans son propre répertoire/sa propre base de données. Selon le type d’application et le type de répertoire interne utilisés par l’application, l’implémentation réelle de cet approvisionnement varie.

L’utilisateur externe étant approvisionné à la fois dans Microsoft Entra ID et dans l’application, l’application métier peut désormais informer l’utilisateur final qui a lancé l’invitation que le processus a réussi. L’utilisateur invité peut obtenir la SSO avec sa propre identité sans que l’organisation à l’origine de l’invitation doive intégrer et émettre des informations d’identification supplémentaires. Microsoft Entra ID peut appliquer des stratégies d’autorisation telles que l’accès conditionnel, l’authentification multifacteur Microsoft Entra et la protection d’identité basée sur les risques.

Autres éléments à prendre en compte

  • Assurez-vous de l’existence d’une gestion appropriée des erreurs au sein de l’application métier. L’application doit valider la réussite de chaque appel d’API. En cas d’échec, des tentatives supplémentaires ou la présentation de messages d’erreur à l’utilisateur(-trice) final(e) sont appropriées.

  • Si vous souhaitez que l’application métier mette à jour les utilisateurs externes lorsqu’ils ont été invités, envisagez d’octroyer un rôle personnalisé qui permet à l’application de mettre à jour uniquement les utilisateurs et d’attribuer l’étendue à une unité administrative dynamique. Par exemple, vous pouvez créer une unité administrative dynamique pour qu’elle contienne tous les utilisateurs pour lesquels usertype = invité. Une fois que l’utilisateur externe est intégré à Microsoft Entra ID, son ajout à l’unité administrative prend un certain temps. Par conséquent, l’application métier doit tenter de mettre à jour l’utilisateur(-trice) après un certain laps de temps; plusieurs tentatives peuvent être nécessaires en cas de retards. Malgré ces retards, il s’agit de la meilleure approche disponible pour permettre à l’application métier de mettre à jour des utilisateurs externes sans lui octroyer l’autorisation de mettre à jour des utilisateurs dans le répertoire.