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 in 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 solo clic nelle applicazioni line-of-business integrate con Microsoft Entra ID.
I vantaggi includono:
- Onboarding degli utenti e accesso alle applicazioni line-of-business. Gli utenti accedono con pochi passaggi
- Gli utenti esterni portano la propria identità ed eseguono l'accesso Single Sign-On (SSO)
- Provisioning delle identità esterne in Microsoft Entra ID
- Accesso condizionale di Microsoft Entra e criteri di accesso tra tenant per applicare criteri di autorizzazione, ad esempio l'autenticazione a più fattori
Flusso di integrazione
Per integrare applicazioni LOB con Microsoft Entra B2B, seguire questo modello:
- L'utente finale attiva l'invito all'interno dell'applicazione LOB 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 Creazione e invio dell'invito|
- 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 in Verificare che l'utente esterno si trova nella directory.
- L'API Microsoft Graph effettua il provisioning dell'utente guest in Microsoft Entra ID.
- L'API Microsoft Graph restituisce lo stato di esito positivo o negativo della chiamata API. In caso di esito positivo, la risposta include l'ID oggetto utente di Microsoft Entra e il link di invito inviato all’indirizzo di posta elettronica dell'utente invitato. È possibile disabilitare il messaggio di posta elettronica Microsoft e inviare un’e-mail personalizzata.
- (Facoltativo) Per 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.
- (Facoltativo) L'API Microsoft Graph apporta gli aggiornamenti desiderati a Microsoft Entra ID.
- (Facoltativo) L'API Microsoft Graph restituisce lo stato di esito positivo o negativo all'applicazione.
- L'applicazione effettua il provisioning dell'utente nella propria directory utente di database o back-end usando l'attributo ID oggetto dell'utente come ID non modificabile.
- L'applicazione presenta lo stato di esito positivo o negativo all'utente finale.
Se l'assegnazione è necessaria per accedere all'applicazione line-of-business, l'utente guest invitato viene assegnato all'applicazione con un ruolo applicazione. Abiitare questa azione come un'altra chiamata API aggiungendo il guest invitato a un gruppo o automatizzando l'appartenenza con i gruppi di appartenenza dinamica di Microsoft Entra. I gruppi di appartenenza dinamica non richiedono un'altra chiamata API dall'applicazione; tuttavia, vengono aggiornati con rapidità analogamente all'aggiunta di un utente a un gruppo tramite il relativo invito.
Verificare che l'utente esterno si trova nella directory
È possibile che l'utente esterno sia stato invitato e ne sia eseguito l'onboarding. L'applicazione line-of-business controlla se l'utente si trova nella directory. Effettuare una chiamata API all'API Microsoft Graph e presentare le corrispondenze per consentirne la selezione all'utente che effettua l'invito.
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 si trova nella directory. Presentare gli utenti restituiti all'utente che ha effettuato l'invito. Consentire agli utenti di selezionare l'utente esterno che ottiene l'accesso. Per concedere all'utente l'accesso all'applicazione, effettuare chiamate API o attivare altri processi.
Creazione e invio dell'invito
Se l'utente esterno non si trova nella directory, usare Microsoft Entra B2B per invitare l'utente ed eseguirne l'onboarding nel tenant di Microsoft Entra. Determinare cosa includere nella richiesta di invito inviata all'API Microsoft Graph.
Usare gli elementi seguenti:
- Chiedere all'utente finale di specificare l'indirizzo di posta elettronica dell'utente esterno
- Determinare l'URL di invito che reindirizza gli utenti invitati, dopo l'autenticazione e il riscatto dell'invito B2B
- L'URL può essere una pagina di destinazione generica o determinata dinamicamente dall'applicazione line-of-business in base alla posizione in cui l'utente finale ha attivato l'invito.
Altri flag e attributi per la richiesta di invito:
- Nome visualizzato dell'utente invitato
- Usare il messaggio di posta elettronica di invito predefinito di Microsoft o eliminarlo per crearne uno personalizzato
Dopo aver raccolto le informazioni necessarie, l'applicazione deve PUBBLICARE la richiesta nella gestione degli inviti dell'API Microsoft Graph. Verificare che la registrazione dell'applicazione disponga delle autorizzazioni 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 le opzioni per il corpo JSON dell'invito, vedere il tipo di risorsa dell’invito in Microsoft Graph v1.0.
Gli sviluppatori di applicazioni possono eseguire l'onboarding di utenti esterni usando i pacchetti di accesso di gestione entitlement o self-service di Microsoft Entra. Creare un pulsante Invito nell'applicazione line-of-business che attiva un messaggio di posta elettronica personalizzato con un URL di iscrizione self-service o un URL del pacchetto di accesso. L'utente invitato esegue l'onboarding e accede all'applicazione.
(Facoltativo) Scrivere altri attributi in Microsoft Entra ID
Importante
La concessione di un'autorizzazione dell'applicazione per aggiornare gli utenti nella directory è un'azione con privilegi elevati. Se si concedono all'applicazione queste autorizzazioni con privilegi elevati, proteggere e monitorare l'app line-of-business.
L'organizzazione o l'applicazione line-of-business potrebbe richiedere l'archiviazione di altre informazioni riservate a un uso futuro, come emissione di attestazioni in token o criteri di autorizzazione granulari. Un'applicazione può effettuare un'altra chiamata API per aggiornare gli utenti esterni quando vengono creati o invitati in Microsoft Entra ID. L'applicazione deve disporre di autorizzazioni API aggiuntive e una chiamata aggiuntiva all'API Microsoft Graph.
Per aggiornare l'utente, usare l'ID oggetto dell'utente guest creato dalla chiamata dell'API di invito, il valore ID della risposta dell'API dall'invito o dal controllo dell'esistenza. È possibile scrivere in qualsiasi attributo standard o negli attributi di estensione personalizzati.
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 in Microsoft Graph v1.0.
(Facoltativo) Assegnare l'utente invitato a un gruppo
Nota
Se non è necessario assegnare l'utente per accedere all'applicazione, è possibile ignorare questo passaggio.
Se è necessario assegnare un utente in Microsoft Entra ID per l'accesso all'applicazione o per l'assegnazione di ruolo, all'applicazione viene assegnato l'utente. In caso contrario, l'utente non può accedere indipendentemente dall'autenticazione. Per aggiungere l'utente esterno invitato a un gruppo, effettuare un'altra chiamata API. Il gruppo viene assegnato all'applicazione e mappato a un ruolo applicazione.
Esempio di autorizzazioni: assegnare il ruolo di aggiornamento del gruppo o un ruolo personalizzato all'applicazione aziendale. Definire l'ambito dell'assegnazione di ruolo ai gruppi aggiornati dall'applicazione. In alternativa, assegnare l'autorizzazione group.readwrite.all
nell'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>"
}
Per altre informazioni, vedere Aggiungere membri in Microsoft Graph v1.0.
In alternativa, è possibile usare i gruppi di appartenenza dinamica di Microsoft Entra che assegnano automaticamente gli utenti in base ad attributi specifici, come userType o e-mail, o a un attributo personalizzato. Tuttavia, se l'accesso dell'utente è sensibile al fattore temporale, questo approccio non è consigliato perché il popolamento dei gruppi di appartenenza dinamica può richiedere fino a 24 ore.
Se si usano gruppi di appartenenza dinamica, non aggiungere gli utenti a un gruppo con un'altra chiamata API. Creare invece un gruppo che aggiunge l'utente come membro del gruppo, in base ad attributi come userType o e-mail o a un attributo personalizzato. Per altre informazioni, vedere Creare o modificare un gruppo dinamico e ottenere lo stato.
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, come ID oggetto ed e-mail. L'applicazione line-of-business può effettuare il provisioning dell'utente nella directory o nel database relativo. Il provisioning varia in base al tipo di applicazione e di directory interna usato dall'applicazione.
Con il provisioning dell'utente esterno in Microsoft Entra ID e nell'applicazione, l'applicazione line-of-business notifica l'esito positivo del processo all'utente che ha avviato l'operazione. L'utente invitato ottiene l'accesso SSO con l’identità, senza che l'organizzazione che ha effettuato l’invito effettui l'onboarding e rilasci credenziali aggiuntive. Microsoft Entra ID applica criteri di autorizzazione con l'accesso condizionale, l'autenticazione a più fattori di Microsoft Entra e Microsoft Entra ID Protection.
Altre considerazioni
Assicurarsi che la gestione degli errori venga eseguita all'interno dell'applicazione line-of-business. L'applicazione convalida ogni chiamata API. In caso di esito negativo, sono utili altri tentativi o messaggi di errore.
Per consentire alle applicazioni line-of-business di aggiornare gli utenti esterni invitati, concedere un ruolo personalizzato che consenta l'aggiornamento degli utenti e assegni l'ambito a un'unità amministrativa dinamica. Ad esempio, creare un'unità amministrativa dinamica con utenti in cui usertype = guest. Quando si esegue l'onboarding degli utenti esterni in Microsoft Entra ID, tali utenti vengono aggiunti all'unità amministrativa. L'applicazione line-of-business deve tentare di aggiornare l'utente e l'operazione potrebbe richiedere più tentativi in caso di ritardi. Nonostante i ritardi, l'approccio consente all'applicazione line-of-business di aggiornare gli utenti esterni senza concedere l'autorizzazione ad aggiornare gli utenti della directory.