Send Email tramite autorizzazione Microsoft Graph
Abstract
Impara come registrare in Microsoft Azure per ottenere le chiavi permesso e autenticare un servizio Send Email tramite Microsoft Graph.
Creare un'applicazione Azure Active Directory con permessi Graph¶
Se vuoi permettere a eLegere to mandare email usando un'autorizzazione Microsoft Graph, devi configurare un'applicazione Azure Active Directory cone i permessi appropriati.
Segui questa guida per imparare tutti i passi necessari.
Note
Puoi eseguire questi passaggi usando Azure PowerShell, la Azure CLI o Azure Portal.
Questa guida assume l'uso di Azure Portal.
-
Creare una nuova App Registration.
-
Andare su Azure Active Directory (Azure Portal > Active Directory > App registrations > New Registration).
-
Creare un nuova App Registration con i seguenti parametri:
-
Name: Qualunque si preferisca.
- Type: Accounts in this organizational directory only (Single tenant)
- Redirect URI: Not Required.
Avrai creato l'applicazione che fornisce il servizio email per le Send Email in eLegere.
Configurare l'applicazione¶
L'applicazione Send Email per eLegere deve affidarsi a un metodo Client ID \ Certificate tradizionale. Leggere le istruzioni seguenti.
Devi creare un nuovo certificato (e.g. certificato self-signed usando OpenSSL o altro tipo) e conservare il suo valore assieme al Tenant ID e al Client ID dell'applicazione.
Nella pagina dell'applicazione (Application's page):
- Configurare Certificates & Secrets > Client Upload Certificate.
- Copiare l'Application ID (Client ID) e il Tenant ID per la tua applicazione. (Puoi trovare queste impostazioni sulla pagina Overview della tua applicazione.)
- Copiare l'Application ID e il Directory/Tenant ID per la tua applicazione Azure Active Directory Application.
Dopo i passaggi 1-3, dovresti conservare questi valori per un uso successivo:
- Directory ID (i.e. Tenant Id nei Domain Settings).
- Application ID (i.e. Client Id nei Domain Settings).
- Il valore del certificato che hai creato per quest'applicazione.
Configurare i permessi dell'applicazione¶
Configurare in Azure la sendEmail come descritto sotto:
Tipo Permesso | Permessi |
---|---|
Application | Mail.Send |
Dalla pagina applicazione in Azure Portal:
- API permissions > Add a permission
- Microsoft Graph > Application Permissions > Mail.Send > cliccare Add Permission
- A tua scelta, rimuovi i permessi di default per l'applicazione.
Assegnare i permessi appropriati per l'applicazione Azure Active Directory, autorizzandola a inviare le email usando le API Microsoft Graph.
La tua configurazione permessi dovrebbe assomigliare a questa:
Clicca su "Grant admin consent on behalf of
Warning
Dopo questo passaggio, devi restringere i permessi dell'applicazione a caselle di posta specifiche per ragioni di sicurezza.
Restringere accesso caselle di posta¶
Dopo aver creato l'applicazione di servizio per la Send Email, devi restringere l'applicazione Azure a caselle di posta specifiche.
Puoi configurare l'accesso alle caselle di posta tramite il pannello Application Access Policy.
Segui i passi seguenti:
-
Recupera l'Application ID dai passaggi precedenti.
-
In Exchange Online Portal > Mail-enabled security, crea un gruppo per l'applicazione.(E.g.
security.group@vesenda.com
) -
Aggiungi le caselle di posta desiderate al gruppo creato al passo 2. Queste caselle di posta saranno le uniche autorizzate a usare l'applicazione per la Send Email.
-
Create l'Application Key Policy usando il comando
connect-exchangeonline commandlet
e digitando il comando seguente nella CLI:1
New-ApplicationAccessPolicy -AppId [Inserire qui l'Application ID] -PolicyScopeGroupId [Inserire qui il riferimento al security group, e.g. security.group@vesenda.com] -AccessRight RestrictAccess -Description "Restrict this app to members of distribution group mailaccessgroup"
-
Testare un utente casuale per verificare che i permessi funzionano come desiderato. Usare il seguente comando nella CLI di Exchange Online:
Test-ApplicationAccessPolicy -Identity [insert User's Email here] -AppId [Inserire qui l'Application ID]
Se l'utente appartiene al gruppo, riceverai
AccessCheckResult: Granted
come risultato dalla CLI.Se l'utente non appartiene al gruppo, riceverai
AccessCheckResult: Denied
come dalla CLI.