Připojení externích uživatelů k obchodním aplikacím pomocí Microsoft Entra B2B

Vývojáři aplikací můžou používat Microsoft Entra B2B k onboardingu a spolupráci s externími uživateli v obchodních aplikacích. Podobně jako tlačítko Sdílet v mnoha aplikacích Office 365 můžou vývojáři aplikací vytvořit prostředí pozvánky jedním kliknutím v libovolné obchodní aplikaci, která je integrovaná s Microsoft Entra ID.

Výhody zahrnují:

  • Jednoduché a snadné onboarding uživatelů a přístup k obchodním aplikacím s uživateli, kteří můžou získat přístup několika kroky.

  • Umožňuje externím uživatelům používat vlastní identitu a provádět jednotné přihlašování (SSO).

  • Automatické zřizování externích identit pro MICROSOFT Entra ID.

  • Použijte podmíněný přístup Microsoft Entra a zásady přístupu mezi tenanty k vynucení zásad autorizace, jako je vyžadování vícefaktorového ověřování.

Tok integrace

Pokud chcete integrovat obchodní aplikace s Microsoft Entra B2B, postupujte podle tohoto vzoru:

Screenshot shows the integration of LOB applications.

Krok Popis
1. Koncový uživatel aktivuje pozvánku v rámci obchodní aplikace a poskytne e-mailovou adresu externího uživatele. Aplikace zkontroluje, jestli uživatel již existuje a pokud ne, pokračuje krokem 2.
2. Aplikace odešle post do rozhraní Microsoft Graph API jménem uživatele. Poskytuje adresu URL pro přesměrování a e-mail externího uživatele, který je definovaný v kroku 1.
3. Rozhraní Microsoft Graph API zřídí uživatele typu host v Microsoft Entra ID.
4. Rozhraní Microsoft Graph API vrátí stav úspěšného nebo neúspěšného volání rozhraní API. V případě úspěchu odpověď obsahuje ID objektu uživatele Microsoft Entra a odkaz na pozvánku, který se odešle do e-mailu pozvaných uživatelů. Volitelně můžete potlačit e-mail Microsoftu a odeslat vlastní e-mail.
5. (Volitelné) Pokud chcete napsat další atributy pozvaným uživatelům nebo přidat pozvaný uživatel do skupiny, aplikace provede další volání rozhraní API do rozhraní Microsoft Graph API.
6. (Volitelné) Rozhraní Microsoft Graph API provede požadované aktualizace id Microsoft Entra.
7. (Volitelné) Rozhraní Microsoft Graph API vrátí do aplikace stav úspěchu nebo selhání.
8. Aplikace zřídí uživatele do vlastního adresáře uživatele databáze/back-endu pomocí atributu ID objektu uživatele jako neměnného ID.
9. Aplikace zobrazí koncovému uživateli stav úspěchu nebo selhání.

Pokud je přiřazení nutné pro přístup k obchodní aplikaci, musí být pozvaný uživatel typu host také přiřazen k aplikaci s příslušnou rolí aplikace. Můžete to udělat jako další volání rozhraní API, které přidá pozvaný host do skupiny (kroky č. 5–7), nebo automatizací členství ve skupinách pomocí dynamických skupin Microsoft Entra. Použitídynamických Členství ve skupinách by se ale neaktualizovalo tak rychle ve srovnání s přidáním uživatele do skupiny hned po pozvání uživatele.

Krok 1: Kontrola, jestli už externí uživatel existuje

Je možné, že externí uživatel byl dříve pozván a onboardován. Obchodní aplikace by měla zkontrolovat, jestli už uživatel v adresáři existuje. Existuje však mnoho přístupů, nejjednodušší je volat rozhraní API do rozhraní Microsoft Graph API a prezentovat možné shody pozvaným uživatelům, ze které si můžou vybírat.

Příklad:

Application Permission: User.read.all

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

Pokud v odpovědi obdržíte podrobnosti o uživateli, uživatel už existuje. Měli byste prezentovat uživatele, kteří se vrátili pozvanému uživateli, a umožnit jim zvolit, který externí uživatel chce udělit přístup. Měli byste pokračovat v provádění odpovídajících volání rozhraní API nebo aktivovat jiné procesy, které tomuto uživateli udělí přístup k aplikaci, a ne pokračovat v kroku pozvánky.

Krok 2: Vytvoření a odeslání pozvánky

Pokud externí uživatel v adresáři ještě neexistuje, můžete ho pozvat a připojit ho k tenantovi Microsoft Entra B2B. Jako vývojář aplikací musíte určit, co se má zahrnout do žádosti o pozvání do rozhraní Microsoft Graph API.

Minimálně potřebujete:

  • Vyzvat koncového uživatele, aby zadal e-mailovou adresu externího uživatele.

  • Určete adresu URL pozvánky. Na tuto adresu URL se pozvaný uživatel přesměruje po ověření a uplatnění pozvánky B2B. Adresa URL může být obecnou cílovou stránkou aplikace nebo dynamicky určená obchodní aplikací na základě toho, kde koncový uživatel pozvánku aktivoval.

Další příznaky a atributy, které je potřeba zvážit pro zahrnutí do žádosti o pozvánku:

  • Zobrazované jméno pozvaného uživatele
  • Určete, jestli chcete použít výchozí e-mail s pozvánkou od Microsoftu, nebo potlačit výchozí e-mail a vytvořit si vlastní e-mail.

Jakmile aplikace shromáždila požadované informace a určila všechny další příznaky nebo informace, které se mají zahrnout, musí aplikace odeslat požadavek správci pozvánek rozhraní Microsoft Graph API. Ujistěte se, že registrace aplikace má příslušná oprávnění v ID Microsoft Entra.

Příklad:

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

Poznámka:

Pokud chcete zobrazit úplný seznam dostupných možností pro text pozvánky JSON, podívejte se na typ prostředku pozvánky – Microsoft Graph v1.0.

Vývojáři aplikací můžou alternativně připojit externí uživatele pomocí samoobslužné registrace Microsoft Entra nebo přístupových balíčků pro správu nároků. V obchodní aplikaci můžete vytvořit tlačítko pozvánky , které aktivuje vlastní e-mail obsahující předdefinovanou adresu URL samoobslužné registrace nebo adresu URL přístupového balíčku. Pozvaný uživatel pak samoobslužně onboarduje a přistupuje k aplikaci.

Krok 3: Zápis dalších atributů do Microsoft Entra ID (volitelné)

Důležité

Udělení oprávnění aplikace k aktualizaci uživatelů ve vašem adresáři je vysoce privilegovaná akce. Pokud aplikaci udělíte těmto vysoce privilegovaným oprávněním, měli byste podniknout kroky k zabezpečení a monitorování obchodní aplikace.

Vaše organizace nebo obchodní aplikace může vyžadovat uložení dalších informací pro budoucí použití, jako jsou generování deklarací identity v tokenech nebo podrobné zásady autorizace. Vaše aplikace může provést další volání rozhraní API pro aktualizaci externího uživatele po jejich pozvání nebo vytvoření v MICROSOFT Entra ID. To vyžaduje, aby vaše aplikace měla další oprávnění k rozhraní API a vyžadovala by další volání rozhraní Microsoft Graph API.

Pokud chcete aktualizovat uživatele, musíte použít ID objektu nově vytvořeného uživatele typu host přijatého v odpovědi z volání rozhraní API pozvánky. Toto je hodnota ID v odpovědi rozhraní API z kontroly existence nebo pozvánky. Můžete psát do libovolného standardního atributu nebo vlastních atributů rozšíření, které jste vytvořili.

Příklad:

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

Další informace naleznete v tématu Aktualizace uživatele – Microsoft Graph v1.0.

Krok 4: Přiřazení pozvaných uživatelů ke skupině

Poznámka:

Pokud přiřazení uživatele není pro přístup k aplikaci nutné, můžete tento krok přeskočit.

Pokud je přiřazení uživatele požadováno v Microsoft Entra ID pro přístup k aplikaci nebo přiřazení role, musí být uživatel přiřazen k aplikaci nebo jinak uživatel nemůže získat přístup bez ohledu na úspěšné ověření. Abyste toho dosáhli, měli byste provést další volání rozhraní API pro přidání pozvaných externích uživatelů do konkrétní skupiny. Skupinu je možné přiřadit aplikaci a namapovat ji na konkrétní roli aplikace.

Příklad:

Oprávnění: Přiřaďte roli aktualizátoru skupiny nebo vlastní roli k podnikové aplikaci a přiřaďte přiřazení role pouze skupinám, které by tato aplikace měla aktualizovat. Nebo přiřaďte group.readwrite.all oprávnění v rozhraní 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>" 
} 

Další informace najdete v tématu Přidání členů – Microsoft Graph v1.0.

Alternativně můžete použít dynamické skupiny Microsoft Entra, které můžou automaticky přiřazovat uživatele ke skupině na základě atributů uživatele. Pokud je ale přístup koncových uživatelů časově citlivý, nebude to doporučený přístup, protože dynamické skupiny můžou trvat až 24 hodin, než se naplní.

Pokud raději používáte dynamické skupiny, nemusíte přidávat uživatele do skupiny explicitně pomocí jiného volání rozhraní API. Vytvořte dynamickou skupinu, která automaticky přidá uživatele jako člena skupiny na základě dostupných atributů, jako je userType, e-mail nebo vlastní atribut. Další informace najdete v tématu Vytvoření nebo úprava dynamické skupiny a získání stavu.

Krok 5: Zřízení pozvaných uživatelů do aplikace

Jakmile se pozvaný externí uživatel zřídí pro MICROSOFT Entra ID, rozhraní Microsoft Graph API vrátí odpověď s potřebnými informacemi o uživateli, jako je ID objektu a e-mail. Obchodní aplikace pak může zřídit uživatele do vlastního adresáře nebo databáze. V závislosti na typu aplikace a interním typu adresáře, který aplikace používá, se skutečná implementace tohoto zřizování liší.

Když je externí uživatel zřízený v Microsoft Entra ID i aplikaci, může teď obchodní aplikace upozornit koncového uživatele, který inicioval pozvání, že proces byl úspěšný. Pozvaný uživatel může získat jednotné přihlašování s vlastní identitou, aniž by zvaná organizace potřebovala připojit a vydat další přihlašovací údaje. Id Microsoft Entra může vynucovat zásady autorizace, jako je podmíněný přístup, vícefaktorové ověřování Microsoft Entra a služba Identity Protection založená na riziku.

Ostatní úvahy

  • Ujistěte se, že se v rámci obchodní aplikace provádí správné zpracování chyb. Aplikace by měla ověřit, že každé volání rozhraní API bylo úspěšné. V případě neúspěchu by byly vhodné další pokusy nebo prezentace chybových zpráv koncovému uživateli.

  • Pokud potřebujete, aby obchodní aplikace po pozvání aktualizovala externí uživatele, zvažte udělení vlastní role, která aplikaci umožní aktualizovat pouze uživatele a přiřadit obor dynamické jednotce pro správu. Můžete například vytvořit dynamickou jednotku pro správu, která bude obsahovat všechny uživatele, kteří mají typ usertype = host. Jakmile se externí uživatel připojí k ID Microsoft Entra, bude chvíli trvat, než se přidá do jednotky pro správu. Proto se obchodní aplikace musí po nějaké době pokusit aktualizovat uživatele a v případě zpoždění může trvat více než jeden pokus. Navzdory těmto zpožděním je to nejlepší přístup, který aplikaci LOB umožní aktualizovat externí uživatele bez udělení oprávnění k aktualizaci libovolného uživatele v adresáři.