Eseguire l'onboarding di utenti esterni in applicazioni line-of-business con Microsoft Entra B2B

Gli sviluppatori di applicazioni possono usare Microsoft Entra B2B per eseguire l'onboarding e collaborare con utenti esterni all'interno di applicazioni line-of-business (LOB). Analogamente al pulsante Condividi in molte applicazioni di Office 365, gli sviluppatori di applicazioni possono creare un'esperienza di invito con un clic all'interno di qualsiasi applicazione LINEB integrata con Microsoft Entra ID.

I vantaggi includono:

  • Onboarding utenti semplice e semplice e accesso alle applicazioni LINEB con gli utenti in grado di ottenere l'accesso con pochi passaggi.

  • Consente agli utenti esterni di portare la propria identità ed eseguire l'accesso Single Sign-On (SSO).

  • Provisioning automatico delle identità esterne in Microsoft Entra ID.

  • Applicare l'accesso condizionale Di Microsoft Entra e i criteri di accesso tra tenant per applicare criteri di autorizzazione, ad esempio la richiesta di autenticazione a più fattori.

Flusso di integrazione

Per integrare applicazioni LOB con Microsoft Entra B2B, seguire questo modello:

Screenshot shows the integration of LOB applications.

Procedi Descrizione
1. L'utente finale attiva l'invito all'interno dell'applicazione LINEB e fornisce l'indirizzo di posta elettronica dell'utente esterno. L'applicazione verifica se l'utente esiste già e, in caso contrario, procede con il passaggio 2
2. L'applicazione invia un POST all'API Microsoft Graph per conto dell'utente. Fornisce l'URL di reindirizzamento e il messaggio di posta elettronica dell'utente esterno definito nel passaggio 1.
3. L'API Microsoft Graph effettua il provisioning dell'utente guest in Microsoft Entra ID.
4. L'API Microsoft Graph restituisce lo stato di esito positivo/negativo della chiamata API. In caso di esito positivo, la risposta include l'ID oggetto utente di Microsoft Entra e il collegamento di invito inviato al messaggio di posta elettronica dell'utente invitato. Facoltativamente, è possibile eliminare il messaggio di posta elettronica Microsoft e inviare un messaggio di posta elettronica personalizzato.
5. (Facoltativo) Se si desidera scrivere altri attributi all'utente invitato o aggiungere l'utente invitato a un gruppo, l'applicazione effettua una chiamata API aggiuntiva all'API Microsoft Graph.
6. (Facoltativo) L'API Microsoft Graph apporta gli aggiornamenti desiderati all'ID Microsoft Entra.
7. (Facoltativo) L'API Microsoft Graph restituisce lo stato di esito positivo/negativo dell'applicazione.
8. L'applicazione effettua il provisioning dell'utente nella propria directory utente di database/back-end usando l'attributo ID oggetto dell'utente come ID non modificabile.
9. L'applicazione presenta lo stato di esito positivo/negativo all'utente finale.

Se l'assegnazione è necessaria per accedere all'applicazione LINEB, l'utente guest invitato deve anche essere assegnato all'applicazione con un ruolo applicazione appropriato. Questa operazione può essere eseguita come un'altra chiamata API che aggiunge il guest invitato a un gruppo (passaggi 5-7) o automatizzando l'appartenenza a gruppi con i gruppi dinamici di Microsoft Entra. L'uso di gruppi dinamici non richiederebbe un'altra chiamata API dall'applicazione. Tuttavia, l'appartenenza al gruppo non verrà aggiornata rapidamente rispetto all'aggiunta di un utente a un gruppo immediatamente dopo l'invito dell'utente.

Passaggio 1: Verificare se l'utente esterno esiste già

È possibile che l'utente esterno sia stato invitato e caricato in precedenza. L'applicazione LINEB deve verificare se l'utente esiste già nella directory. Esistono tuttavia molti approcci, ma il più semplice comporta l'esecuzione di una chiamata API all'API Microsoft Graph e la presentazione delle possibili corrispondenze all'utente che invita l'utente a scegliere.

Ad esempio:

Application Permission: User.read.all

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

Se si ricevono i dettagli di un utente nella risposta, l'utente esiste già. È necessario presentare gli utenti restituiti all'utente che invita e consentire loro di scegliere quale utente esterno desidera concedere l'accesso. È necessario procedere con le chiamate API appropriate o attivare altri processi per concedere all'utente l'accesso all'applicazione anziché procedere con il passaggio di invito.

Passaggio 2: Creare e inviare l'invito

Se l'utente esterno non esiste già nella directory, è possibile usare Microsoft Entra B2B per invitare l'utente ed eseguirne l'onboarding nel tenant di Microsoft Entra. Gli sviluppatori di applicazioni devono determinare cosa includere nella richiesta di invito all'API Microsoft Graph.

Almeno, è necessario:

  • Chiedere all'utente finale di specificare l'indirizzo di posta elettronica dell'utente esterno.

  • Determinare l'URL di invito. Questo URL è il percorso in cui l'utente invitato viene reindirizzato a dopo l'autenticazione e riscatta l'invito B2B. L'URL può essere una pagina di destinazione generica per l'applicazione o determinata dinamicamente dall'applicazione LINEB in base alla posizione in cui l'utente finale ha attivato l'invito.

Altri flag e attributi da considerare per l'inclusione nella richiesta di invito:

  • Nome visualizzato dell'utente invitato.
  • Determinare se si vuole usare il messaggio di posta elettronica di invito Microsoft predefinito o eliminare il messaggio di posta elettronica predefinito per crearne uno personalizzato.

Dopo che l'applicazione ha raccolto le informazioni necessarie e determinato eventuali altri flag o informazioni da includere, l'applicazione deve INVIARE la richiesta al gestore di inviti all'API Microsoft Graph. Verificare che la registrazione dell'applicazione disponga delle autorizzazioni appropriate in Microsoft Entra ID.

Ad esempio:

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

Nota

Per visualizzare l'elenco completo delle opzioni disponibili per il corpo JSON dell'invito, vedere tipo di risorsa di invito - Microsoft Graph v1.0.

Gli sviluppatori di applicazioni possono in alternativa eseguire l'onboarding di utenti esterni usando i pacchetti di accesso di gestione self-service o self-service di Microsoft Entra. È possibile creare il pulsante di invito nell'applicazione LINEB che attiva un messaggio di posta elettronica personalizzato contenente un URL di iscrizione self-service predefinito o un URL del pacchetto di accesso. L'utente invitato esegue quindi l'onboarding self-service e accede all'applicazione.

Passaggio 3: Scrivere altri attributi in Microsoft Entra ID (facoltativo)

Importante

La concessione di un'autorizzazione dell'applicazione per aggiornare gli utenti nella directory è un'azione con privilegi elevati. È consigliabile adottare misure per proteggere e monitorare l'app LINEB se si concedono all'applicazione queste autorizzazioni con privilegi elevati.

L'organizzazione o l'applicazione LINEB potrebbe richiedere di archiviare altre informazioni per un uso futuro, ad esempio l'emissione di attestazioni nei token o nei criteri di autorizzazione granulari. L'applicazione può effettuare un'altra chiamata API per aggiornare l'utente esterno dopo che sono stati invitati/creati in Microsoft Entra ID. In questo modo è necessario che l'applicazione disponga di autorizzazioni API aggiuntive e richieda una chiamata aggiuntiva all'API Microsoft Graph.

Per aggiornare l'utente, è necessario usare l'ID oggetto dell'utente guest appena creato ricevuto nella risposta dalla chiamata API di invito. Si tratta del valore ID nella risposta dell'API dal controllo di esistenza o dall'invito. È possibile scrivere in qualsiasi attributo standard o attributi di estensione personalizzati creati.

Ad esempio:

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

Per altre informazioni, vedere Aggiornare l'utente - Microsoft Graph v1.0.

Passaggio 4: Assegnare l'utente invitato a un gruppo

Nota

Se l'assegnazione dell'utente non è necessaria per accedere all'applicazione, è possibile ignorare questo passaggio.

Se l'assegnazione utente è necessaria in Microsoft Entra ID per l'accesso all'applicazione o l'assegnazione di ruolo, l'utente deve essere assegnato all'applicazione oppure l'utente non è in grado di ottenere l'accesso indipendentemente dall'autenticazione riuscita. A tale scopo, è necessario effettuare un'altra chiamata API per aggiungere l'utente esterno invitato a un gruppo specifico. Il gruppo può essere assegnato all'applicazione e mappato a un ruolo applicazione specifico.

Ad esempio:

Autorizzazioni: assegnare il ruolo Di aggiornamento del gruppo o un ruolo personalizzato all'applicazione aziendale e definire l'ambito dell'assegnazione di ruolo solo ai gruppi che l'applicazione deve aggiornare. In alternativa, assegnare l'autorizzazione nell'API group.readwrite.all 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>" 
} 

Per altre informazioni, vedere Aggiungere membri - Microsoft Graph v1.0.

In alternativa, è possibile usare i gruppi dinamici di Microsoft Entra, che possono assegnare automaticamente gli utenti al gruppo in base agli attributi dell'utente. Tuttavia, se l'accesso dell'utente finale è sensibile al tempo, questo non sarebbe l'approccio consigliato perché i gruppi dinamici possono richiedere fino a 24 ore per popolare.

Se si preferisce usare gruppi dinamici, non è necessario aggiungere gli utenti a un gruppo in modo esplicito con un'altra chiamata API. Creare un gruppo dinamico che aggiunge automaticamente l'utente come membro del gruppo in base agli attributi disponibili, ad esempio userType, email o un attributo personalizzato. Per altre informazioni, vedere Creare o modificare un gruppo dinamico e ottenere lo stato.

Passaggio 5: Effettuare il provisioning dell'utente invitato nell'applicazione

Dopo il provisioning dell'utente esterno invitato in Microsoft Entra ID, l'API Microsoft Graph restituisce una risposta con le informazioni utente necessarie, ad esempio ID oggetto e posta elettronica. L'applicazione LINEB può quindi effettuare il provisioning dell'utente nella propria directory/database. A seconda del tipo di applicazione e del tipo di directory interno usato dall'applicazione, l'implementazione effettiva di questo provisioning varia.

Con il provisioning dell'utente esterno sia in Microsoft Entra ID che nell'applicazione, l'applicazione LOB può ora notificare all'utente finale che ha avviato l'invito che il processo ha avuto esito positivo. L'utente invitato può ottenere l'accesso SSO con la propria identità senza che l'organizzazione che invita a eseguire l'onboarding e rilasciare credenziali aggiuntive. Microsoft Entra ID può applicare criteri di autorizzazione come l'accesso condizionale, l'autenticazione a più fattori Di Microsoft Entra e Identity Protection basata sul rischio.

Altre considerazioni

  • Assicurarsi che la gestione corretta degli errori venga eseguita all'interno dell'applicazione LINEB. L'applicazione deve verificare che ogni chiamata API sia riuscita. In caso di esito negativo, potrebbero essere appropriati altri tentativi o la presentazione di messaggi di errore all'utente finale.

  • Se è necessario che l'applicazione LINEB aggiorni gli utenti esterni dopo che sono stati invitati, valutare la possibilità di concedere un ruolo personalizzato che consenta all'applicazione di aggiornare solo gli utenti e assegnare l'ambito a un'unità amministrativa dinamica. Ad esempio, è possibile creare un'unità amministrativa dinamica per contenere tutti gli utenti in cui usertype = guest. Una volta eseguito l'onboarding dell'utente esterno nell'ID Microsoft Entra, è necessario del tempo per aggiungerli all'unità amministrativa. L'applicazione LINEB deve quindi tentare di aggiornare l'utente dopo un certo periodo di tempo e potrebbe richiedere più tentativi in caso di ritardi. Nonostante questi ritardi, questo è l'approccio migliore disponibile per consentire all'applicazione LOB di aggiornare gli utenti esterni senza concedergli l'autorizzazione per aggiornare qualsiasi utente nella directory.