Udostępnij za pośrednictwem


Dołączanie użytkowników zewnętrznych do aplikacji biznesowych przy użyciu usługi Microsoft Entra B2B

Deweloperzy aplikacji mogą używać firmy Microsoft Entra B2B do dołączania i współpracy z użytkownikami zewnętrznymi w aplikacjach biznesowych. Podobnie jak przycisk Udostępnij w wielu aplikacjach usługi Office 365, deweloperzy aplikacji mogą utworzyć środowisko zaproszenia jednym kliknięciem w dowolnej aplikacji LOB zintegrowanej z identyfikatorem Microsoft Entra ID.

Korzyści obejmują:

  • Proste i łatwe dołączanie użytkowników oraz dostęp do aplikacji biznesowych z użytkownikami, którzy mogą uzyskać dostęp, wykonując kilka kroków.

  • Umożliwia użytkownikom zewnętrznym korzystanie z własnej tożsamości i logowanie jednokrotne ( SSO).

  • Automatyczna aprowizacja tożsamości zewnętrznych w usłudze Microsoft Entra ID.

  • Zastosuj zasady dostępu warunkowego firmy Microsoft Entra i dostępu między dzierżawami, aby wymusić zasady autoryzacji, takie jak wymaganie uwierzytelniania wieloskładnikowego.

Przepływ integracji

Aby zintegrować aplikacje LOB z firmą Microsoft Entra B2B, postępuj zgodnie z następującym wzorcem:

Screenshot shows the integration of LOB applications.

Krok opis
1. Użytkownik końcowy wyzwala zaproszenie w aplikacji LOB i udostępnia adres e-mail użytkownika zewnętrznego. Aplikacja sprawdza, czy użytkownik już istnieje, a jeśli nie, przechodzi do kroku 2
2. Aplikacja wysyła post do interfejsu API programu Microsoft Graph w imieniu użytkownika. Udostępnia on adres URL przekierowania i adres e-mail użytkownika zewnętrznego zdefiniowany w kroku 1.
3. Interfejs API programu Microsoft Graph aprowizuje użytkownika-gościa w identyfikatorze Entra firmy Microsoft.
4. Interfejs API programu Microsoft Graph zwraca stan powodzenia/niepowodzenia wywołania interfejsu API. W przypadku powodzenia odpowiedź zawiera identyfikator obiektu użytkownika Entra firmy Microsoft i link zaproszenia, który jest wysyłany do wiadomości e-mail zaproszonego użytkownika. Opcjonalnie możesz pominąć wiadomość e-mail firmy Microsoft i wysłać własną niestandardową wiadomość e-mail.
5. (Opcjonalnie) Jeśli chcesz napisać więcej atrybutów do zaproszonego użytkownika lub dodać zaproszonego użytkownika do grupy, aplikacja wykonuje dodatkowe wywołanie interfejsu API do interfejsu API programu Microsoft Graph.
6. (Opcjonalnie) Interfejs API programu Microsoft Graph udostępnia żądane aktualizacje identyfikatora entra firmy Microsoft.
7. (Opcjonalnie) Interfejs API programu Microsoft Graph zwraca stan powodzenia/niepowodzenia aplikacji.
8. Aplikacja aprowizuje użytkownika do własnej bazy danych/katalogu użytkownika zaplecza przy użyciu atrybutu identyfikatora obiektu użytkownika jako niezmiennego identyfikatora.
9. Aplikacja przedstawia użytkownikowi końcowemu stan powodzenia/niepowodzenia.

Jeśli przypisanie jest wymagane do uzyskania dostępu do aplikacji LOB, zaproszony użytkownik-gość musi być również przypisany do aplikacji z odpowiednią rolą aplikacji. Można to zrobić jako inne wywołanie interfejsu API, dodając zaproszonego gościa do grupy (kroki nr 5–7) lub automatyzując członkostwo w grupach dynamicznych firmy Microsoft Entra. Użycie grup dynamicznych nie wymaga innego wywołania interfejsu API przez aplikację. Jednak członkostwo w grupie nie zostanie zaktualizowane tak szybko, jak w porównaniu z dodaniem użytkownika do grupy natychmiast po zaproszeniu użytkownika.

Krok 1. Sprawdzanie, czy użytkownik zewnętrzny już istnieje

Możliwe, że użytkownik zewnętrzny został wcześniej zaproszony i dołączony. Aplikacja LOB powinna sprawdzić, czy użytkownik już istnieje w katalogu. Istnieje jednak wiele metod, które najprostsze polega na tworzeniu wywołania interfejsu API do interfejsu API programu Microsoft Graph i prezentowaniu możliwych dopasowań do użytkownika zapraszającego do wyboru.

Na przykład:

Application Permission: User.read.all

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

Jeśli otrzymasz szczegóły użytkownika w odpowiedzi, użytkownik już istnieje. Należy przedstawić użytkownikom zwróconym użytkownikowi zapraszającemu i zezwolić im na wybranie użytkownika zewnętrznego, któremu chcesz udzielić dostępu. Należy kontynuować wykonywanie odpowiednich wywołań interfejsu API lub wyzwalanie innych procesów w celu udzielenia temu użytkownikowi dostępu do aplikacji, zamiast przechodzić do kroku zaproszenia.

Krok 2. Tworzenie i wysyłanie zaproszenia

Jeśli użytkownik zewnętrzny jeszcze nie istnieje w katalogu, możesz użyć usługi Microsoft Entra B2B, aby zaprosić użytkownika i dołączyć go do dzierżawy firmy Microsoft Entra. Jako deweloper aplikacji musisz określić, co należy uwzględnić w żądaniu zaproszenia do interfejsu API programu Microsoft Graph.

Co najmniej należy wykonać następujące kroki:

  • Monituj użytkownika końcowego o podanie adresu e-mail użytkownika zewnętrznego.

  • Określ adres URL zaproszenia. Ten adres URL polega na tym, że zaproszony użytkownik zostanie przekierowany do użytkownika po uwierzytelnieniu i zrealizowaniu zaproszenia B2B. Adres URL może być ogólną stroną docelową aplikacji lub dynamicznie określaną przez aplikację LOB w zależności od tego, gdzie użytkownik końcowy wyzwolił zaproszenie.

Więcej flag i atrybutów, które należy wziąć pod uwagę podczas dołączania do żądania zaproszenia:

  • Nazwa wyświetlana zaproszonego użytkownika.
  • Określ, czy chcesz użyć domyślnej wiadomości e-mail z zaproszeniem firmy Microsoft, czy pomiń domyślną wiadomość e-mail, aby utworzyć własną.

Po zebraniu wymaganych informacji przez aplikację i określeniu innych flag lub informacji do uwzględnienia aplikacja musi wysłać żądanie POST do menedżera zaproszeń interfejsu API programu Microsoft Graph. Upewnij się, że rejestracja aplikacji ma odpowiednie uprawnienia w identyfikatorze Entra firmy Microsoft.

Na przykład:

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

Uwaga

Aby wyświetlić pełną listę dostępnych opcji treści zaproszenia w formacie JSON, zapoznaj się z tematem Typ zasobu zaproszenia — Microsoft Graph w wersji 1.0.

Deweloperzy aplikacji mogą alternatywnie dołączać użytkowników zewnętrznych przy użyciu pakietów dostępu do samoobsługowego tworzenia konta firmy Microsoft lub zarządzania upoważnieniami. Możesz utworzyć przycisk zaproszenia w aplikacji LOB, który wyzwala niestandardową wiadomość e-mail zawierającą wstępnie zdefiniowany adres URL rejestracji samoobsługowej lub adres URL pakietu dostępu. Zaproszony użytkownik następnie dołącza do aplikacji samoobsługowej i uzyskuje do tej aplikacji dostęp.

Krok 3. Zapisywanie innych atrybutów w identyfikatorze Entra firmy Microsoft (opcjonalnie)

Ważne

Przyznanie aplikacji uprawnienia do aktualizowania użytkowników w katalogu jest akcją o wysokim poziomie uprawnień. Jeśli przyznasz aplikacji o wysokim poziomie uprawnień, należy wykonać kroki, aby zabezpieczyć i monitorować aplikację loB.

Organizacja lub aplikacja LOB może wymagać przechowywania większej ilości informacji do użycia w przyszłości, takich jak emitowane oświadczenia w tokenach lub szczegółowe zasady autoryzacji. Aplikacja może wykonać inne wywołanie interfejsu API, aby zaktualizować użytkownika zewnętrznego po zaproszeniu/utworzeniu w identyfikatorze Entra firmy Microsoft. Wymaga to, aby aplikacja miała dodatkowe uprawnienia interfejsu API i wymaga dodatkowego wywołania interfejsu API programu Microsoft Graph.

Aby zaktualizować użytkownika, musisz użyć identyfikatora obiektu nowo utworzonego użytkownika-gościa odebranego w odpowiedzi z wywołania interfejsu API zaproszenia. Jest to wartość identyfikatora w odpowiedzi interfejsu API z sprawdzenia istnienia lub zaproszenia. Możesz zapisać dowolny atrybut standardowy lub niestandardowe atrybuty rozszerzenia, które mogły zostać utworzone.

Na przykład:

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

Aby uzyskać więcej informacji, zobacz Aktualizowanie użytkownika — Microsoft Graph w wersji 1.0.

Krok 4. Przypisywanie zaproszonego użytkownika do grupy

Uwaga

Jeśli przypisanie użytkownika nie jest wymagane do uzyskania dostępu do aplikacji, możesz pominąć ten krok.

Jeśli przypisanie użytkownika jest wymagane w identyfikatorze Entra firmy Microsoft na potrzeby dostępu do aplikacji lub przypisania roli, użytkownik musi zostać przypisany do aplikacji lub użytkownik nie może uzyskać dostępu niezależnie od pomyślnego uwierzytelnienia. Aby to osiągnąć, należy wykonać kolejne wywołanie interfejsu API, aby dodać zaproszonego użytkownika zewnętrznego do określonej grupy. Grupę można przypisać do aplikacji i zamapować na określoną rolę aplikacji.

Na przykład:

Uprawnienia: Przypisz rolę aktualizatora grupy lub rolę niestandardową do aplikacji dla przedsiębiorstw i określ zakres przypisania roli tylko do grup, które ta aplikacja powinna być aktualizowana. Możesz też przypisać uprawnienie w interfejsie group.readwrite.all 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>" 
} 

Aby uzyskać więcej informacji, zobacz Dodawanie członków — Microsoft Graph w wersji 1.0.

Alternatywnie można użyć grup dynamicznych Firmy Microsoft Entra, które mogą automatycznie przypisywać użytkowników do grupy na podstawie atrybutów użytkownika. Jeśli jednak dostęp użytkowników końcowych jest wrażliwy na czas, nie byłoby to zalecane podejście, ponieważ wypełnianie grup dynamicznych może potrwać do 24 godzin.

Jeśli wolisz używać grup dynamicznych, nie musisz jawnie dodawać użytkowników do grupy przy użyciu innego wywołania interfejsu API. Utwórz grupę dynamiczną, która automatycznie dodaje użytkownika jako członka grupy na podstawie dostępnych atrybutów, takich jak userType, email lub atrybut niestandardowy. Aby uzyskać więcej informacji, zobacz Tworzenie lub edytowanie grupy dynamicznej i uzyskiwanie stanu.

Krok 5. Aprowizuj zaproszonego użytkownika do aplikacji

Po aprowizacji zaproszonego użytkownika zewnętrznego w usłudze Microsoft Entra ID interfejs API programu Microsoft Graph zwraca odpowiedź z niezbędnymi informacjami o użytkowniku, takimi jak identyfikator obiektu i wiadomość e-mail. Aplikacja LOB może następnie aprowizować użytkownika do własnego katalogu/bazy danych. W zależności od typu aplikacji i typu katalogu wewnętrznego używanego przez aplikację rzeczywista implementacja tej aprowizacji różni się.

Po aprowizacji użytkownika zewnętrznego zarówno w identyfikatorze Entra firmy Microsoft, jak i aplikacji, aplikacja LOB może teraz powiadomić użytkownika końcowego, który zainicjował zaproszenie, że proces zakończył się pomyślnie. Zaproszony użytkownik może uzyskać logowanie jednokrotne z własną tożsamością bez konieczności dołączania i wystawiania dodatkowych poświadczeń przez organizację zapraszającą. Microsoft Entra ID może wymuszać zasady autoryzacji, takie jak dostęp warunkowy, uwierzytelnianie wieloskładnikowe firmy Microsoft i ochrona tożsamości oparta na ryzyku.

Inne uwagi

  • Upewnij się, że w aplikacji LOB odbywa się właściwa obsługa błędów. Aplikacja powinna sprawdzić, czy każde wywołanie interfejsu API zakończy się pomyślnie. W przypadku niepowodzenia dodatkowe próby lub przedstawienie komunikatów o błędach użytkownikowi końcowemu byłoby odpowiednie.

  • Jeśli aplikacja LOB jest potrzebna do aktualizowania użytkowników zewnętrznych po zaproszeniu, rozważ przyznanie roli niestandardowej, która umożliwia aplikacji aktualizowanie tylko użytkowników i przypisywanie zakresu do dynamicznej jednostki administracyjnej. Można na przykład utworzyć dynamiczną jednostkę administracyjną, aby zawierała wszystkich użytkowników, którzy mają typ użytkownika = gość. Po dołączeniu użytkownika zewnętrznego do identyfikatora Entra firmy Microsoft dodanie ich do jednostki administracyjnej zajmuje trochę czasu. Dlatego aplikacja LOB musi spróbować zaktualizować użytkownika po pewnym czasie i może zająć więcej niż jedną próbę, jeśli występują opóźnienia. Pomimo tych opóźnień najlepszym rozwiązaniem jest umożliwienie aplikacji LOB aktualizowania użytkowników zewnętrznych bez udzielania mu uprawnień do aktualizowania dowolnego użytkownika w katalogu.