Condividi tramite


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

Microsoft Entra ID supporta i protocolli di autenticazione moderni che consentono di proteggere le applicazioni. Molte applicazioni aziendali, tuttavia, funzionano in una rete aziendale protetta e alcune usano metodi di autenticazione legacy. Man mano che le aziende creano strategie Zero Trust e supportano ambienti ibridi e cloud, diventano disponibili soluzioni che connettono le app a Microsoft Entra ID e forniscono l'autenticazione per le applicazioni legacy.

Altre informazioni: Sicurezza Zero Trust

Microsoft Entra ID supporta in modo nativo i protocolli moderni:

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

Microsoft Entra Application Proxy supporta l'autenticazione Kerberos e quella basata su intestazione. Altri protocolli, come SSH (Secure Shell), NTLM (Microsoft Windows NT LAN Manager), LDAP (Lightweight Directory Access Protocol) e cookie, non sono supportati. I fornitori di software indipendenti (ISV) possono tuttavia creare soluzioni per connettere queste applicazioni con Microsoft Entra ID.

Gli ISV possono aiutare i clienti a individuare le applicazioni SaaS (Software as a Service) e a eseguirne la migrazione in Microsoft Entra ID, in modo da connettere le app che usano metodi di autenticazione legacy con Microsoft Entra ID. I clienti possono così attuare un consolidamento in Microsoft Entra ID per semplificare la gestione delle app e implementare principi Zero Trust.

Panoramica della soluzione

La soluzione da realizzare può includere le fasi seguenti:

  • Individuazione delle app: spesso i clienti non sono a conoscenza di tutte le applicazioni in uso
    • Questa fase consente di individuare le applicazioni, facilitandone così l'integrazione con Microsoft Entra ID
  • Migrazione delle app: viene creato un flusso di lavoro per integrare le app con Microsoft Entra ID senza usare l'interfaccia di amministrazione di Microsoft Entra
    • In questa fase vengono integrate le app attualmente in uso presso i clienti
  • Supporto per l'autenticazione legacy: le app vengono connesse con metodi di autenticazione legacy e accesso SSO (Single Sign-On)
  • Accesso condizionale: i clienti possono applicare i criteri di Microsoft Entra alle app nella soluzione senza usare l'interfaccia di amministrazione di Microsoft Entra

Altre informazioni: Informazioni sull'accesso condizionale

Per considerazioni tecniche e consigli, vedere le sezioni seguenti.

Pubblicazione delle 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 automatizzata delle app.

È possibile preintegrare l'applicazione con Microsoft Entra ID per supportare l'accesso SSO e il provisioning automatizzato. Vedere Inviare una richiesta per pubblicare l'applicazione nella raccolta di applicazioni Microsoft Entra.

È consigliabile diventare un autore verificato per garantire la propria attendibilità ai clienti. Vedere Verifica dell'autore.

Abilitare l'accesso SSO per gli amministratori IT

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

Microsoft Graph usa OIDC/OAuth. I clienti usano OIDC per accedere alla soluzione. I tal caso, usare i token JWT (JSON Web) emessi da Microsoft Entra ID per interagire con Microsoft Graph. Vedere OpenID Connect 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. Per l'accesso SSO dell'amministratore IT è possibile usare anche SAML, ma la soluzione dovrà supportare l'integrazione di OIDC con Microsoft Entra ID, in modo da 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, in base al quale la soluzione deve consentire ai clienti di immettere un ID client e un segreto. Queste informazioni devono anche essere archiviate. Ottenere un token JWT da Microsoft Entra ID e quindi usarlo per interagire con Microsoft Graph. Vedere Ottenere un token. È consigliabile preparare la documentazione per il cliente su come creare la registrazione dell'applicazione nel tenant di Microsoft Entra. Includere endpoint, URI e autorizzazioni.

Nota

Prima che le applicazioni siano utilizzabili per l'accesso SSO dell'amministratore IT o degli utenti, l'amministratore IT del cliente deve concedere il proprio consenso all'applicazione nel tenant. Vedere Concedere a un'applicazione il consenso amministratore a livello di tenant.

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 con Microsoft Graph le applicazioni con Microsoft Entra ID
  • Gli utenti accedono alle applicazioni legacy protette dalla soluzione e da Microsoft Entra ID

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

La soluzione può usare SAML o OIDC per SSO, quando l'amministratore IT del cliente esegue l'accesso. Si consiglia all'amministratore IT di accedere alla soluzione con le credenziali Microsoft Entra, in modo da consentire l'uso dei controlli di sicurezza attuali. Integrare l'applicazione 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 a Microsoft Entra ID per l'accesso e quindi reindirizzato alla soluzione.

  1. L'amministratore IT accede alla soluzione con le credenziali Microsoft Entra
  2. La soluzione reindirizza l'amministratore IT a Microsoft Entra ID con una richiesta di accesso SAML o OIDC
  3. Microsoft Entra autentica l'amministratore IT e lo reindirizza alla soluzione, con un token SAML o JWT per l'autorizzazione di accesso alla 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 delle 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 Microsoft Entra
  2. La soluzione reindirizza l'amministratore IT a Microsoft Entra ID con una richiesta di accesso SAML o OIDC
  3. Microsoft Entra autentica l'amministratore IT e lo 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 Microsoft Graph o con l'API protetta di Microsoft Entra, è consigliabile configurarle per l'uso di OICD. Questa configurazione garantisce l'applicazione del token JWT per l'interazione con Microsoft Graph. Se non è necessario che le applicazioni interagiscano con Microsoft Graph, o con le API protette di Microsoft Entra, usare SAML.

Il diagramma seguente mostra 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 a Microsoft Entra ID con una richiesta di accesso SAML o OIDC
  3. Microsoft Entra autentica l'utente e lo reindirizza alla soluzione, con un token SAML o JWT per l'autorizzazione
  4. La soluzione autorizza la richiesta usando il protocollo dell'applicazione

API di Microsoft Graph

È consigliabile usare le API seguenti. Microsoft Entra ID può essere usato per configurare autorizzazioni delegate o autorizzazioni di applicazione. Per questa soluzione, usare le autorizzazioni delegate.

  • API dei modelli di applicazione: 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 delle 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: Usare l'API Microsoft Graph

Scenari dell'API Microsoft Graph

Nelle sezioni seguenti viene illustrato come implementare le registrazioni delle applicazioni, connettere le applicazioni legacy e abilitare i criteri di accesso condizionale. Viene inoltre spiegato come automatizzare il consenso amministratore, ottenere il certificato per la firma di 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 dei 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/aaaaaaaa-bbbb-cccc-1111-222222222222
{
    "preferredSingleSignOnMode":"saml",
    "loginURL": "https://www.salesforce.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/00001111-aaaa-2222-bbbb-3333cccc4444
{
    "web": {
    "redirectUris":["https://www.salesforce.com"]},
    "identifierUris":["https://www.salesforce.com"]
}

Aggiungere app non presenti in Azure Marketplace

Se non esiste alcuna corrispondenza in Azure Marketplace o se si vuole integrare un'applicazione personalizzata, registrare un'applicazione personalizzata in Microsoft Entra ID con l'ID modello seguente: 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/aaaaaaaa-bbbb-cccc-1111-222222222222
{
    "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/00001111-aaaa-2222-bbbb-3333cccc4444
{
    "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):

Connettere le app a Microsoft Entra ID con l'autenticazione legacy

La soluzione può consentire al cliente di usare le funzionalità SSO e Microsoft Entra anche per le 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 dell'applicazione SAML o OIDC tra la soluzione e Microsoft Entra ID.

Creare una registrazione dell'applicazione SAML

Usare l'ID modello seguente per un'applicazione personalizzata: 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/aaaaaaaa-bbbb-cccc-1111-222222222222
{
    "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/00001111-aaaa-2222-bbbb-3333cccc4444
{
    "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 nodo resourceAccess 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 i 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. Per applicare i criteri di accesso condizionale di Microsoft Entra sono disponibili due opzioni:

Usare i criteri 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 nuovi criteri 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 amministratore con Microsoft Graph. Sono necessari l'ID oggetto dell'entità servizio dell'applicazione creato nelle chiamate API e l'ID oggetto dell'entità servizio Microsoft Graph proveniente 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 per la firma di token

Per ottenere la parte pubblica del certificato per la firma di 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 App personali. Questa assegnazione si trova nell'oggetto entità servizio generato al momento della creazione dell'applicazione. Vedere Panoramica del portale App personali.

Ottenere le istanze di AppRole che potrebbero essere associate all'applicazione. Normalmente alle applicazioni SaaS sono associate varie istanze di AppRole. Per le applicazioni personalizzate esiste in genere una sola istanza predefinita di AppRole. Ottenere l'ID dell'istanza di AppRole da assegnare:

Authorization: Required with a valid Bearer token
Method:GET

https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222

Da Microsoft Entra ID ottenere l'ID oggetto utente o gruppo da assegnare all'applicazione. Prendere l'ID del 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/aaaaaaaa-bbbb-cccc-1111-222222222222
{
    "principalId":"{Principal Object ID of User -or- Group}",
    "resourceId":"{Service Principal Object ID}",
    "appRoleId":"{App Role ID}"
}

Collaborazioni

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

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

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