Proteggere l'accesso ibrido con l'integrazione di Microsoft Entra

Microsoft Entra ID supporta protocolli di autenticazione moderni che consentono di proteggere le applicazioni. Tuttavia, molte applicazioni aziendali funzionano in una rete aziendale protetta e alcuni usano metodi di autenticazione legacy. Man mano che le aziende creano strategie Zero Trust e supportano ambienti ibridi e cloud, esistono soluzioni che connettono le app all'ID Microsoft Entra e forniscono l'autenticazione per le applicazioni legacy.

Altre informazioni: Sicurezza Zero Trust

Microsoft Entra ID supporta in modo nativo protocolli moderni:

  • SAML (Security Assertion Markup Language)
  • Web Service Federation (WS-Fed)
  • OpenID Connessione (OIDC)

Microsoft Entra application proxy o Microsoft Entra application proxy supporta l'autenticazione kerberos e basata su intestazione. Altri protocolli, ad esempio Secure Shell (SSH), (Microsoft Windows NT LAN Manager) NTLM, Lightweight Directory Access Protocol (LDAP) e cookie, non sono supportati. Tuttavia, i fornitori di software indipendenti (ISV) possono creare soluzioni per connettere queste applicazioni con Microsoft Entra ID.

Gli ISV consentono ai clienti di individuare ed eseguire la migrazione di applicazioni Software as a Service (SaaS) in Microsoft Entra ID. Possono connettere app che usano metodi di autenticazione legacy con Microsoft Entra ID. I clienti possono consolidarsi in Microsoft Entra ID per semplificare la gestione delle app e implementare i principi Zero Trust.

Panoramica della soluzione

La soluzione compilata può includere le parti seguenti:

  • Individuazione delle app: spesso i clienti non sono a conoscenza di ogni applicazione in uso
    • L'individuazione delle applicazioni trova applicazioni, semplificando l'integrazione di app con Microsoft Entra ID
  • Migrazione delle app - Creare un flusso di lavoro per integrare le app con Microsoft Entra ID senza usare l'interfaccia di amministrazione di Microsoft Entra
    • Integrare le app che i clienti usano oggi
  • Supporto dell'autenticazione legacy: Connessione app con metodi di autenticazione legacy e Single Sign-On (SSO)
  • Accesso condizionale: consentire ai clienti di applicare i criteri di Microsoft Entra alle app nella soluzione senza usare l'interfaccia di amministrazione di Microsoft Entra

Altre informazioni: Che cos'è l'accesso condizionale?

Per considerazioni tecniche e consigli, vedere le sezioni seguenti.

Pubblicazione di applicazioni in Azure Marketplace

Azure Marketplace è un'origine attendibile di applicazioni per gli amministratori IT. Le applicazioni sono compatibili con Microsoft Entra ID e supportano l'accesso SSO, automatizzano il provisioning degli utenti e si integrano in tenant esterni con registrazione automatica delle app.

È possibile pre-integrare l'applicazione con Microsoft Entra ID per supportare l'accesso Single Sign-On e il provisioning automatizzato. Vedere Inviare una richiesta per pubblicare l'applicazione nella raccolta di applicazioni Microsoft Entra.

È consigliabile diventare un editore verificato, in modo che i clienti sappiano di essere l'editore attendibile. Vedere Verifica del server di pubblicazione.

Abilitare l'accesso Single Sign-On per gli amministratori IT

Esistono diversi modi per abilitare l'accesso SSO per gli amministratori IT alla soluzione. Vedere Pianificare una distribuzione dell'accesso Single Sign-On, opzioni di Single Sign-On.

Microsoft Graph usa OIDC/OAuth. I clienti usano OIDC per accedere alla soluzione. Usare i problemi relativi all'ID Microsoft Entra (JWT) JSON Web Token (JWT) per interagire con Microsoft Graph. Vedere OpenID Connessione in Microsoft Identity Platform.

Se la soluzione usa SAML per l'accesso SSO dell'amministratore IT, il token SAML non consentirà alla soluzione di interagire con Microsoft Graph. È possibile usare SAML per l'accesso SSO dell'amministratore IT, ma la soluzione deve supportare l'integrazione OIDC con Microsoft Entra ID, in modo che possa ottenere un token JWT da Microsoft Entra ID per interagire con Microsoft Graph. Vedere Come Microsoft Identity Platform usa il protocollo SAML.

È possibile usare uno degli approcci SAML seguenti:

Usare il tipo di concessione delle credenziali client, che richiede la soluzione per consentire ai clienti di immettere un ID client e un segreto. La soluzione richiede anche di archiviare queste informazioni. Ottenere un token JWT da Microsoft Entra ID e quindi usarlo per interagire con Microsoft Graph. Vedere Ottenere un token. È consigliabile riprovare la documentazione del cliente su come creare la registrazione dell'applicazione nel tenant di Microsoft Entra. Includere endpoint, URI e autorizzazioni.

Nota

Prima che le applicazioni vengano usate per l'accesso SSO dell'amministratore IT o dell'utente, l'amministratore IT del cliente deve fornire il consenso all'applicazione nel tenant. Vedere Concedere il consenso amministratore a livello di tenant a un'applicazione.

Flussi di autenticazione

I flussi di autenticazione della soluzione supportano gli scenari seguenti:

  • L'amministratore IT del cliente accede con SSO per amministrare la soluzione
  • L'amministratore IT del cliente usa la soluzione per integrare le applicazioni con Microsoft Entra ID con Microsoft Graph
  • Gli utenti accedono alle applicazioni legacy protette dalla soluzione e dall'ID Entra Microsoft

L'amministratore IT del cliente esegue l'accesso Single Sign-On alla soluzione

La soluzione può usare SAML o OIDC per l'accesso SSO, quando l'amministratore IT del cliente accede. Si consiglia all'amministratore IT di accedere alla soluzione con le credenziali di Microsoft Entra, che consente l'uso dei controlli di sicurezza correnti. Integrare l'utente con Microsoft Entra ID per l'accesso SSO tramite SAML o OIDC.

Il diagramma seguente illustra il flusso di autenticazione utente:

Diagramma di un amministratore reindirizzato all'ID di Microsoft Entra per accedere, quindi reindirizzato alla soluzione.

  1. L'amministratore IT accede alla soluzione con le credenziali di Microsoft Entra
  2. La soluzione reindirizza l'amministratore IT a Microsoft Entra ID con un SAML o una richiesta di accesso OIDC
  3. Microsoft Entra autentica l'amministratore IT e li reindirizza alla soluzione, con un token SAML o JWT da autorizzare nella soluzione

Gli amministratori IT integrano le applicazioni con Microsoft Entra ID

Gli amministratori IT integrano le applicazioni con Microsoft Entra ID usando la soluzione, che usa Microsoft Graph per creare registrazioni di applicazioni e criteri di accesso condizionale di Microsoft Entra.

Il diagramma seguente illustra il flusso di autenticazione utente:

Diagramma delle interazioni tra l'amministratore IT, Microsoft Entra ID, la soluzione e Microsoft Graph.

  1. L'amministratore IT accede alla soluzione con le credenziali di Microsoft Entra
  2. La soluzione reindirizza l'amministratore IT a Microsoft Entra ID con un SAML o una richiesta di accesso OIDC
  3. Microsoft Entra autentica l'amministratore IT e li reindirizza alla soluzione con un token SAML o JWT per l'autorizzazione
  4. Quando l'amministratore IT integra un'applicazione con Microsoft Entra ID, la soluzione chiama Microsoft Graph con il token JWT per registrare le applicazioni o applicare i criteri di accesso condizionale di Microsoft Entra

Gli utenti accedono alle applicazioni

Quando gli utenti accedono alle applicazioni, usano OIDC o SAML. Se le applicazioni devono interagire con l'API protetta Microsoft Graph o Microsoft Entra, è consigliabile configurarle per l'uso di OICD. Questa configurazione garantisce che il token JWT venga applicato per interagire con Microsoft Graph. Se non è necessario che le applicazioni interagiscano con Microsoft Graph o le API protette di Microsoft Entra, usare SAML.

Il diagramma seguente illustra il flusso di autenticazione utente:

Diagramma delle interazioni tra l'utente, Microsoft Entra ID, la soluzione e l'app.

  1. L'utente accede a un'applicazione
  2. La soluzione reindirizza l'utente all'ID Microsoft Entra con una richiesta di accesso SAML o OIDC
  3. Microsoft Entra autentica l'utente e li reindirizza alla soluzione con un token SAML o JWT per l'autorizzazione
  4. La soluzione consente la richiesta usando il protocollo dell'applicazione

API di Microsoft Graph

È consigliabile usare le API seguenti. Usare Microsoft Entra ID per configurare autorizzazioni delegate o autorizzazioni dell'applicazione. Per questa soluzione, usare le autorizzazioni delegate.

  • API modelli di applicazioni - In Azure Marketplace usare questa API per trovare un modello di applicazione corrispondente
    • Autorizzazioni necessarie: Application.Read.All
  • API di registrazione dell'applicazione: creare registrazioni di applicazioni OIDC o SAML per consentire agli utenti di accedere alle applicazioni protette con la soluzione
    • Autorizzazioni necessarie: Application.Read.All, Application.ReadWrite.All
  • API dell'entità servizio: dopo aver registrato l'app, aggiornare l'oggetto entità servizio per impostare le proprietà SSO
    • Autorizzazioni necessarie: Application.ReadWrite.All, Directory.AccessAsUser.All, AppRoleAssignment.ReadWrite.All (per l'assegnazione)
  • API di accesso condizionale - Applicare i criteri di accesso condizionale di Microsoft Entra alle applicazioni utente
    • Autorizzazioni necessarie: Policy.Read.All, Policy.ReadWrite.ConditionalAccess e Application.Read.All

Altre informazioni sull'uso dell'API Microsoft Graph

Scenari dell'API Microsoft Graph

Usare le informazioni seguenti per implementare le registrazioni delle applicazioni, connettere le applicazioni legacy e abilitare i criteri di accesso condizionale. Informazioni su come automatizzare il consenso amministratore, ottenere il certificato di firma del token e assegnare utenti e gruppi.

Usare l'API Microsoft Graph per registrare le app con Microsoft Entra ID

Aggiungere app in Azure Marketplace

Alcune applicazioni usate dai clienti si trovano in Azure Marketplace. È possibile creare una soluzione che aggiunge applicazioni al tenant esterno. Usare l'esempio seguente con l'API Microsoft Graph per cercare un modello in Azure Marketplace.

Nota

Nell'API Modelli di applicazione il nome visualizzato fa distinzione tra maiuscole e minuscole.

Authorization: Required with a valid Bearer token
Method: Get

https://graph.microsoft.com/v1.0/applicationTemplates?$filter=displayname eq "Salesforce.com"

Se viene trovata una corrispondenza dalla chiamata API, acquisire l'ID. Effettuare la chiamata API seguente e specificare un nome visualizzato per l'applicazione nel corpo JSON:

Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json

https://graph.microsoft.com/v1.0/applicationTemplates/cd3ed3de-93ee-400b-8b19-b61ef44a0f29/instantiate
{
    "displayname": "Salesforce.com"
}

Dopo aver effettuato la chiamata API, si genera un oggetto entità servizio. Acquisire l'ID applicazione e l'ID entità servizio da usare nelle chiamate API successive.

Applicare patch all'oggetto entità servizio con il protocollo SAML e un URL di accesso:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json

https://graph.microsoft.com/v1.0/servicePrincipals/3161ab85-8f57-4ae0-82d3-7a1f71680b27
{
    "preferredSingleSignOnMode":"saml",
    "loginURL": "https://www.salesforce.com"
}

Applicare patch all'oggetto applicazione con URI di reindirizzamento e URI dell'identificatore:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json

https://graph.microsoft.com/v1.0/applications/54c4806b-b260-4a12-873c-967116983792
{
    "web": {
    "redirectUris":["https://www.salesforce.com"]},
    "identifierUris":["https://www.salesforce.com"]
}

Aggiungere app non in Azure Marketplace

Se non esiste alcuna corrispondenza in Azure Marketplace o per integrare un'applicazione personalizzata, registrare un'applicazione personalizzata in Microsoft Entra ID con l'ID modello: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Eseguire quindi la chiamata API seguente e specificare un nome visualizzato dell'applicazione nel corpo JSON:

Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json

https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate
{
    "displayname": "Custom SAML App"
}

Dopo aver effettuato la chiamata API, si genera un oggetto entità servizio. Acquisire l'ID applicazione e l'ID entità servizio da usare nelle chiamate API successive.

Applicare patch all'oggetto entità servizio con il protocollo SAML e un URL di accesso:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json

https://graph.microsoft.com/v1.0/servicePrincipals/3161ab85-8f57-4ae0-82d3-7a1f71680b27
{
    "preferredSingleSignOnMode":"saml",
    "loginURL": "https://www.samlapp.com"
}

Applicare patch all'oggetto applicazione con URI di reindirizzamento e URI di identificatore:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json

https://graph.microsoft.com/v1.0/applications/54c4806b-b260-4a12-873c-967116983792
{
    "web": {
    "redirectUris":["https://www.samlapp.com"]},
    "identifierUris":["https://www.samlapp.com"]
}

Usare l'accesso Single Sign-On di Microsoft Entra

Dopo aver registrato le applicazioni SaaS in Microsoft Entra ID, le applicazioni devono iniziare a usare Microsoft Entra ID come provider di identità (IdP):

Connessione app a Microsoft Entra ID con autenticazione legacy

La soluzione può consentire al cliente di usare le funzionalità SSO e Microsoft Entra, anche applicazioni non supportate. Per consentire l'accesso con protocolli legacy, l'applicazione chiama Microsoft Entra ID per autenticare l'utente e applicare i criteri di accesso condizionale di Microsoft Entra. Abilitare questa integrazione dalla console. Creare una registrazione di un'applicazione SAML o OIDC tra la soluzione e l'ID Microsoft Entra.

Creare una registrazione dell'applicazione SAML

Usare l'ID modello di applicazione personalizzato seguente: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Eseguire quindi la chiamata API seguente e specificare un nome visualizzato nel corpo JSON:

Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json

https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate
{
    "displayname": "Custom SAML App"
}

Dopo aver effettuato la chiamata API, si genera un oggetto entità servizio. Acquisire l'ID applicazione e l'ID entità servizio da usare nelle chiamate API successive.

Applicare patch all'oggetto entità servizio con il protocollo SAML e un URL di accesso:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json

https://graph.microsoft.com/v1.0/servicePrincipals/3161ab85-8f57-4ae0-82d3-7a1f71680b27
{
    "preferredSingleSignOnMode":"saml",
    "loginURL": "https://www.samlapp.com"
}

Applicare patch all'oggetto applicazione con URI di reindirizzamento e URI di identificatore:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json

https://graph.microsoft.com/v1.0/applications/54c4806b-b260-4a12-873c-967116983792
{
    "web": {
    "redirectUris":["https://www.samlapp.com"]},
    "identifierUris":["https://www.samlapp.com"]
}

Creare una registrazione dell'applicazione OIDC

Usare l'ID modello seguente per un'applicazione personalizzata: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Effettuare la chiamata API seguente e specificare un nome visualizzato nel corpo JSON:

Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json

https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate
{
    "displayname": "Custom OIDC App"
}

Dalla chiamata API acquisire l'ID applicazione e l'ID entità servizio da usare nelle chiamate API successive.

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json

https://graph.microsoft.com/v1.0/applications/{Application Object ID}
{
    "web": {
    "redirectUris":["https://www.samlapp.com"]},
    "identifierUris":["[https://www.samlapp.com"],
    "requiredResourceAccess": [
    {
        "resourceAppId": "00000003-0000-0000-c000-000000000000",
        "resourceAccess": [
        {
            "id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182",
            "type": "Scope"
        },
        {
            "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
            "type": "Scope"
        },
        {
            "id": "37f7f235-527c-4136-accd-4a02d197296e",
            "type": "Scope"
        }]
    }]
}

Nota

Le autorizzazioni API nel resourceAccess nodo concedono all'applicazione le autorizzazioni openid, User.Read e offline_access, che abilitano l'accesso. Vedere Panoramica delle autorizzazioni di Microsoft Graph.

Applicare i criteri di accesso condizionale

I clienti e i partner possono usare l'API Microsoft Graph per creare o applicare criteri di accesso condizionale per ogni applicazione. Per i partner, i clienti possono applicare questi criteri dalla soluzione senza usare l'interfaccia di amministrazione di Microsoft Entra. Esistono due opzioni per applicare i criteri di accesso condizionale di Microsoft Entra:

Usare un criterio di accesso condizionale

Per un elenco dei criteri di accesso condizionale, eseguire la query seguente. Ottenere l'ID oggetto criteri da modificare.

Authorization: Required with a valid Bearer token
Method:GET

https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies

Per applicare patch ai criteri, includere l'ID oggetto applicazione nell'ambito di includeApplications, nel corpo JSON:

Authorization: Required with a valid Bearer token
Method: PATCH

https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies/{policyid}
{
    "displayName":"Existing Conditional Access Policy",
    "state":"enabled",
    "conditions": 
    {
        "applications": 
        {
            "includeApplications":[
                "00000003-0000-0ff1-ce00-000000000000", 
                "{Application Object ID}"
            ]
        },
        "users": {
            "includeUsers":[
                "All"
            ] 
        }
    },
    "grantControls": 
    {
        "operator":"OR",
        "builtInControls":[
            "mfa"
        ]
    }
}

Creare un nuovo criterio di accesso condizionale

Aggiungere l'ID oggetto applicazione da inserire nell'ambito di includeApplications, nel corpo JSON:

Authorization: Required with a valid Bearer token
Method: POST

https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies/
{
    "displayName":"New Conditional Access Policy",
    "state":"enabled",
    "conditions": 
    {
        "applications": {
            "includeApplications":[
                "{Application Object ID}"
            ]
        },
        "users": {
            "includeUsers":[
                "All"
            ]
        }
    },
    "grantControls": {
        "operator":"OR",
        "builtInControls":[
            "mfa"
        ]
    }
}
#Policy Template for Requiring Compliant Device

{
    "displayName":"Enforce Compliant Device",
    "state":"enabled",
    "conditions": {
        "applications": {
            "includeApplications":[
                "{Application Object ID}"
            ]
        },
        "users": {
            "includeUsers":[
                "All"
            ]
        }
    },
    "grantControls": {
        "operator":"OR",
        "builtInControls":[
            "compliantDevice",
            "domainJoinedDevice"
        ]
    }
}

#Policy Template for Block

{
    "displayName":"Block",
    "state":"enabled",
    "conditions": {
        "applications": {
            "includeApplications":[
                "{Application Object ID}"
            ]
        },
        "users": {
            "includeUsers":[
                "All"
            ] 
        }
    },
    "grantControls": {
        "operator":"OR",
        "builtInControls":[
            "block"
        ]
    }
}

Se il cliente aggiunge applicazioni dalla soluzione a Microsoft Entra ID, è possibile automatizzare il consenso dell'amministratore con Microsoft Graph. È necessario l'ID oggetto dell'entità servizio dell'applicazione creato nelle chiamate API e l'ID oggetto dell'entità servizio Microsoft Graph dal tenant esterno.

Ottenere l'ID oggetto dell'entità servizio Microsoft Graph effettuando la chiamata API seguente:

Authorization: Required with a valid Bearer token
Method:GET

https://graph.microsoft.com/v1.0/serviceprincipals/?$filter=appid eq '00000003-0000-0000-c000-000000000000'&$select=id,appDisplayName

Per automatizzare il consenso amministratore, effettuare la chiamata API seguente:

Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json

https://graph.microsoft.com/v1.0/oauth2PermissionGrants
{
    "clientId":"{Service Principal Object ID of Application}",
    "consentType":"AllPrincipals",
    "principalId":null,
    "resourceId":"{Service Principal Object ID Of Microsoft Graph}",
    "scope":"openid user.read offline_access}"
}

Ottenere il certificato di firma del token

Per ottenere la parte pubblica del certificato di firma del token, usare GET dall'endpoint dei metadati di Microsoft Entra per l'applicazione:

Method:GET

https://login.microsoftonline.com/{Tenant_ID}/federationmetadata/2007-06/federationmetadata.xml?appid={Application_ID}

Assegnare utenti e gruppi

Dopo aver pubblicato l'applicazione in Microsoft Entra ID, è possibile assegnare l'app a utenti e gruppi per assicurarsi che venga visualizzata nel portale di App personali. Questa assegnazione si trova nell'oggetto entità servizio generato al momento della creazione dell'applicazione. Vedere Panoramica del portale App personali.

Ottenere AppRole le istanze a cui potrebbe essere associata l'applicazione. È comune che alle applicazioni SaaS siano associate diverse AppRole istanze. In genere, per le applicazioni personalizzate è presente un'istanza predefinita AppRole . Ottenere l'ID AppRole istanza da assegnare:

Authorization: Required with a valid Bearer token
Method:GET

https://graph.microsoft.com/v1.0/servicePrincipals/3161ab85-8f57-4ae0-82d3-7a1f71680b27

Dall'ID Microsoft Entra ottenere l'ID oggetto utente o gruppo da assegnare all'applicazione. Prendere l'ID ruolo dell'app dalla chiamata API precedente e inviarlo con il corpo della patch nell'entità servizio:

Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json

https://graph.microsoft.com/v1.0/servicePrincipals/3161ab85-8f57-4ae0-82d3-7a1f71680b27
{
    "principalId":"{Principal Object ID of User -or- Group}",
    "resourceId":"{Service Principal Object ID}",
    "appRoleId":"{App Role ID}"
}

Collaborazioni

Per proteggere le applicazioni legacy, durante l'uso di controller di rete e recapito, Microsoft ha partnership con i provider di controller di recapito delle applicazioni seguenti.

I provider di soluzioni VPN seguenti si connettono con Microsoft Entra ID per abilitare metodi di autenticazione e autorizzazione moderni, ad esempio SSO e autenticazione a più fattori (MFA).

I provider di soluzioni SDP (Software Defined Perimeter) seguenti si connettono con Microsoft Entra ID per metodi di autenticazione e autorizzazione come SSO e MFA.