Dela via


Registrera externa användare till branschspecifika program med Microsoft Entra B2B

Programutvecklare kan använda Microsoft Entra B2B för att registrera och samarbeta med externa användare inom verksamhetsspecifika program (LOB). På samma sätt som knappen Dela i många Office 365-program kan programutvecklare skapa en inbjudan med ett klick i alla LOB-program som är integrerade med Microsoft Entra-ID.

Förmånerna omfattar:

  • Enkel och enkel användarregistrering och åtkomst till LOB-program med användare som kan få åtkomst med några få steg.

  • Gör det möjligt för externa användare att ta med sin egen identitet och utföra enkel inloggning (SSO).

  • Automatisk etablering av externa identiteter till Microsoft Entra-ID.

  • Tillämpa principer för villkorsstyrd åtkomst i Microsoft Entra och åtkomst mellan klientorganisationer för att framtvinga auktoriseringsprinciper som kräver multifaktorautentisering.

Integreringsflöde

Följ det här mönstret för att integrera LOB-program med Microsoft Entra B2B:

Screenshot shows the integration of LOB applications.

Steg beskrivning
1. Slutanvändaren utlöser inbjudan i LOB-programmet och tillhandahåller den externa användarens e-postadress. Programmet kontrollerar om användaren redan finns, och om de inte gör det fortsätter du till steg 2
2. Programmet skickar en POST till Microsoft Graph API för användarens räkning. Den innehåller den omdirigerings-URL och den externa användarens e-post som definieras i steg 1.
3. Microsoft Graph API etablerar gästanvändaren i Microsoft Entra-ID.
4. Microsoft Graph API returnerar statusen lyckad/misslyckad för API-anropet. Om svaret lyckas innehåller svaret användarobjekt-ID:t för Microsoft Entra och inbjudningslänken som skickas till den inbjudna användarens e-post. Du kan också ignorera Microsoft-e-postmeddelandet och skicka din egen anpassade e-post.
5. (Valfritt) Om du vill skriva fler attribut till den inbjudna användaren eller lägga till den inbjudna användaren i en grupp gör programmet ett extra API-anrop till Microsoft Graph-API:et.
6. (Valfritt) Microsoft Graph API gör önskade uppdateringar av Microsoft Entra-ID.
7. (Valfritt) Microsoft Graph API returnerar statusen lyckad/misslyckad till programmet.
8. Programmet etablerar användaren till en egen databas-/serverdelsanvändarkatalog med hjälp av användarens objekt-ID-attribut som det oföränderliga ID:t.
9. Programmet visar statusen lyckad/misslyckad för slutanvändaren.

Om tilldelning krävs för att få åtkomst till LOB-programmet måste den inbjudna gästanvändaren också tilldelas till programmet med en lämplig programroll. Detta kan göras när ett annat API-anrop lägger till den inbjudna gästen i en grupp (steg 5–7) eller genom att automatisera gruppmedlemskap med dynamiska Microsoft Entra-grupper. Att använda dynamiska grupper skulle inte kräva något annat API-anrop av programmet. Gruppmedlemskap skulle dock inte uppdateras lika snabbt jämfört med att lägga till en användare i en grupp direkt efter användarinbjudan.

Steg 1: Kontrollera om den externa användaren redan finns

Det är möjligt att den externa användaren tidigare har bjudits in och registrerats. LOB-programmet bör kontrollera om användaren redan finns i katalogen. Det finns många metoder, men det enklaste är att göra ett API-anrop till Microsoft Graph API och presentera möjliga matchningar för den inbjudande användaren som de kan välja mellan.

Till exempel:

Application Permission: User.read.all

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

Om du får en användares information i svaret finns användaren redan. Du bör presentera de användare som returneras till den inbjudande användaren och låta dem välja vilken extern användare de vill bevilja åtkomst. Du bör fortsätta att göra lämpliga API-anrop eller utlösa andra processer för att ge den här användaren åtkomst till programmet i stället för att fortsätta med inbjudan.

Steg 2: Skapa och skicka inbjudan

Om den externa användaren inte redan finns i katalogen kan du använda Microsoft Entra B2B för att bjuda in användaren och publicera dem i din Microsoft Entra-klientorganisation. Som programutvecklare måste du ta reda på vad som ska ingå i inbjudan till Microsoft Graph API.

Du måste minst:

  • Uppmana slutanvändaren att ange den externa användarens e-postadress.

  • Fastställa inbjudnings-URL:en. Den här URL:en är där den inbjudna användaren omdirigeras till när de har autentiserat och löst in B2B-inbjudan. URL:en kan vara en allmän landningssida för programmet eller dynamiskt bestäms av LOB-programmet baserat på var slutanvändaren utlöste inbjudan.

Fler flaggor och attribut att överväga för att inkluderas i inbjudningsbegäran:

  • Visningsnamn för den inbjudna användaren.
  • Ta reda på om du vill använda standardmeddelandet för Microsoft-inbjudan eller ignorera standardmeddelandet för att skapa din egen.

När programmet har samlat in nödvändig information och fastställt andra flaggor eller information som ska inkluderas, måste programmet SKICKA begäran till Microsoft Graph API-inbjudningshanteraren. Kontrollera att programregistreringen har rätt behörigheter i Microsoft Entra-ID.

Till exempel:

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"  
} 

Kommentar

Om du vill se en fullständig lista över tillgängliga alternativ för JSON-brödtexten i inbjudan kan du kolla in resurstypen inbjudan – Microsoft Graph v1.0.

Programutvecklare kan också registrera externa användare med hjälp av Microsoft Entra-självbetjäningsregistrering eller åtkomstpaket för berättigandehantering. Du kan skapa din inbjudningsknapp i ditt LOB-program som utlöser ett anpassat e-postmeddelande som innehåller en fördefinierad url för självbetjäningsregistrering eller url för åtkomstpaket. Den inbjudna användaren registrerar sig sedan via självbetjäning och får åtkomst till programmet.

Steg 3: Skriv andra attribut till Microsoft Entra-ID (valfritt)

Viktigt!

Att ge ett program behörighet att uppdatera användare i din katalog är en mycket privilegierad åtgärd. Du bör vidta åtgärder för att skydda och övervaka din LOB-app om du ger programmet dessa privilegierade behörigheter.

Din organisation eller LOB-programmet kan behöva lagra mer information för framtida användning, till exempel anspråksemittatör i token eller detaljerade auktoriseringsprinciper. Ditt program kan göra ytterligare ett API-anrop för att uppdatera den externa användaren efter att de har bjudits in/skapats i Microsoft Entra-ID. Detta kräver att ditt program har extra API-behörigheter och kräver ett extra anrop till Microsoft Graph API.

Om du vill uppdatera användaren måste du använda objekt-ID:t för den nyligen skapade gästanvändaren som togs emot i svaret från inbjudans-API-anropet. Det här är ID-värdet i API-svaret från antingen existenskontrollen eller inbjudan. Du kan skriva till alla standardattribut eller anpassade tilläggsattribut som du kanske har skapat.

Till exempel:

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" 
} 

Mer information finns i Uppdatera användare – Microsoft Graph v1.0.

Steg 4: Tilldela den inbjudna användaren till en grupp

Kommentar

Om användartilldelning inte krävs för att komma åt programmet kan du hoppa över det här steget.

Om användartilldelning krävs i Microsoft Entra-ID för programåtkomst eller rolltilldelning måste användaren tilldelas till programmet, annars kan användaren inte få åtkomst oavsett lyckad autentisering. För att uppnå detta bör du göra ett annat API-anrop för att lägga till den inbjudna externa användaren i en specifik grupp. Gruppen kan tilldelas till programmet och mappas till en specifik programroll.

Till exempel:

Behörigheter: Tilldela rollen Gruppuppdatering eller en anpassad roll till företagsprogrammet och omfånget för rolltilldelningen till endast de grupper som programmet ska uppdatera. Eller tilldela behörigheten group.readwrite.all i Microsoft Graph API.

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>" 
} 

Mer information finns i Lägga till medlemmar – Microsoft Graph v1.0.

Du kan också använda dynamiska Microsoft Entra-grupper, som automatiskt kan tilldela användare till grupper baserat på användarens attribut. Men om slutanvändaråtkomsten är tidskänslig är detta inte den rekommenderade metoden eftersom dynamiska grupper kan ta upp till 24 timmar att fylla i.

Om du föredrar att använda dynamiska grupper behöver du inte uttryckligen lägga till användarna i en grupp med ett annat API-anrop. Skapa en dynamisk grupp som automatiskt lägger till användaren som medlem i gruppen baserat på tillgängliga attribut som userType, e-post eller ett anpassat attribut. Mer information finns i Skapa eller redigera en dynamisk grupp och hämta status.

Steg 5: Etablera den inbjudna användaren till programmet

När den inbjudna externa användaren har etablerats till Microsoft Entra-ID returnerar Microsoft Graph API ett svar med nödvändig användarinformation, till exempel objekt-ID och e-post. LOB-programmet kan sedan etablera användaren till sin egen katalog/databas. Beroende på vilken typ av program och intern katalogtyp programmet använder varierar den faktiska implementeringen av den här etableringen.

Med den externa användaren etablerad i både Microsoft Entra-ID och programmet kan LOB-programmet nu meddela slutanvändaren som initierade inbjudan att processen har slutförts. Den inbjudna användaren kan få enkel inloggning med sin egen identitet utan att den inbjudande organisationen behöver registrera sig och utfärda extra autentiseringsuppgifter. Microsoft Entra-ID kan framtvinga auktoriseringsprinciper som villkorlig åtkomst, Microsoft Entra multifaktorautentisering och riskbaserat identitetsskydd.

Övriga beaktanden

  • Se till att korrekt felhantering utförs i LOB-programmet. Programmet bör verifiera att varje API-anrop lyckas. Om det inte lyckas är det lämpligt med extra försök eller att presentera felmeddelanden för slutanvändaren.

  • Om du behöver LOB-programmet för att uppdatera externa användare när de har bjudits in kan du överväga att bevilja en anpassad roll som gör att programmet endast kan uppdatera användare och tilldela omfånget till en dynamisk administrativ enhet. Du kan till exempel skapa en dynamisk administrativ enhet som innehåller alla användare där usertype = gäst. När den externa användaren har registrerats för Microsoft Entra-ID tar det lite tid innan de läggs till i den administrativa enheten. Därför måste LOB-programmet försöka uppdatera användaren efter en viss tid och det kan ta mer än ett försök om det uppstår fördröjningar. Trots dessa fördröjningar är detta den bästa metoden som är tillgänglig för att göra det möjligt för LOB-programmet att uppdatera externa användare utan att ge det behörighet att uppdatera någon användare i katalogen.