Configurare Azure MFA come provider di autenticazione con AD FS

Se l'organizzazione è federata con Azure AD, è possibile usare Azure Multi-Factor Authentication per proteggere le risorse AD FS, sia in locale che nel cloud. Azure MFA consente di eliminare le password e fornire un modo più sicuro per l'autenticazione. A partire da Windows Server 2016, è ora possibile configurare Azure MFA per l'autenticazione primaria o usarlo come provider di autenticazione aggiuntivo.

A differenza di AD FS in Windows Server 2012 R2, l'adapter MFA di Azure AD FS 2016 si integra direttamente con Azure AD e non richiede un server Azure MFA locale. L'adattatore Azure MFA è integrato per Windows Server 2016 e non è necessaria un'installazione aggiuntiva.

Registrazione degli utenti per Azure MFA con AD FS

AD FS non supporta la verifica "inline" o la registrazione delle informazioni di verifica della sicurezza dell'autenticazione a più fattori di Azure, ad esempio il numero di telefono o l'app per dispositivi mobili. Ciò significa che gli utenti devono ottenere la verifica visitando prima di usare Azure MFA per https://account.activedirectory.windowsazure.com/Proofup.aspx eseguire l'autenticazione AD FS applicazioni. Quando un utente che non ha ancora provato in Azure AD tenta di eseguire l'autenticazione con Azure MFA all'AD FS, riceverà un AD FS errore. Un amministratore AD FS, è possibile personalizzare questa esperienza di errore per guidare l'utente alla pagina di correzione. È possibile eseguire questa operazione usando la onload.js per rilevare la stringa del messaggio di errore all'interno della pagina AD FS e visualizzare un nuovo messaggio per guidare gli utenti a visitare , quindi riprovare a eseguire https://aka.ms/mfasetup l'autenticazione. Per indicazioni dettagliate, vedere la pagina Web "Personalizzare la AD FS web per guidare gli utenti a registrare i metodi di verifica MFA" di seguito in questo articolo.

Nota

In precedenza, agli utenti era richiesto di eseguire l'autenticazione con MFA per la registrazione (visitando https://account.activedirectory.windowsazure.com/Proofup.aspx , ad esempio tramite il collegamento https://aka.ms/mfasetup ). A questo punto, un utente AD FS che non ha ancora registrato le informazioni di verifica MFA può accedere alla pagina di verifica di Azure AD"tramite il collegamento usando solo l'autenticazione primaria ,ad esempio l'autenticazione integrata di Windows o il nome utente e la password tramite le pagine Web https://aka.ms/mfasetup AD FS. Se l'utente non dispone di metodi di verifica configurati, Azure AD eseguirà la registrazione inline in cui l'utente visualizza il messaggio "L'amministratore ha richiesto di configurare questo account per la verifica di sicurezza aggiuntiva" e l'utente può quindi scegliere di "Configura ora". Agli utenti che hanno già configurato almeno un metodo di verifica MFA verrà comunque richiesto di fornire l'autenticazione a più fattori quando visitano la pagina di verifica.

Autenticazione a più fattori di Azure come autenticazione primaria

Esistono due ottimi motivi per usare Azure MFA come autenticazione primaria con AD FS:

  • Per evitare password per l'accesso a Azure AD, Office 365 e altre AD FS app
  • Per proteggere l'accesso basato su password richiedendo un fattore aggiuntivo, ad esempio il codice di verifica prima della password

Se si vuole usare Azure MFA come metodo di autenticazione principale in AD FS per ottenere questi vantaggi, è probabile che si voglia anche mantenere la possibilità di usare l'accesso condizionale Azure AD "cluso un vero" MFA richiedendo fattori aggiuntivi in AD FS.

È ora possibile eseguire questa operazione configurando l'impostazione del dominio Azure AD per eseguire l'autenticazione a più fattori in locale (impostando "SupportsMfa" su $True). In questa configurazione, AD FS può essere richiesto da Azure AD di eseguire un'autenticazione aggiuntiva o "autenticazione" per gli scenari di accesso condizionale che lo richiedono.

Come descritto in precedenza, qualsiasi utente di AD FS che non ha ancora eseguito la registrazione (informazioni di verifica MFA configurate) deve essere richiesto tramite una pagina di errore AD FS personalizzata da visitare per configurare le informazioni di verifica, quindi riprovare AD FS https://aka.ms/mfasetup login. Poiché l'autenticazione a più fattori di Azure come primaria è considerata un fattore singolo, dopo la configurazione iniziale gli utenti dovranno fornire un fattore aggiuntivo per gestire o aggiornare le informazioni di verifica in Azure AD o per accedere ad altre risorse che richiedono L'autenticazione a più fattori.

Nota

Con AD FS 2019, è necessario apportare una modifica al tipo di attestazione di ancoraggio per l'attendibilità del provider di attestazioni Active Directory e modificarlo da windowsaccountname a UPN. Eseguire il cmdlet di PowerShell fornito di seguito. Ciò non influisce sul funzionamento interno della AD FS farm. È possibile notare che alcuni utenti potrebbero richiedere nuovamente le credenziali dopo aver apportato questa modifica. Dopo l'accesso, gli utenti finali non visualizzano alcuna differenza.

Set-AdfsClaimsProviderTrust -AnchorClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" -TargetName "Active Directory"

Autenticazione a più fattori di Azure come autenticazione aggiuntiva Office 365

L'adapter MFA di Azure AD FS consente agli utenti di eseguire l'autenticazione a più fattori AD FS. Per proteggere la risorsa Azure AD, è consigliabile richiedere l'autenticazione apiù fattori tramite criteri di accesso condizionale, impostare l'impostazione di dominio SupportsMfa su $True e generare l'attestazione multipleauthn quando un utente esegue correttamente la verifica in due passaggi.

Come descritto in precedenza, qualsiasi utente di AD FS che non ha ancora eseguito la registrazione (informazioni di verifica MFA configurate) deve essere richiesto tramite una pagina di errore AD FS personalizzata da visitare per configurare le informazioni di verifica, quindi riprovare AD FS https://aka.ms/mfasetup login.

Prerequisiti

Quando si utilizza l'autenticazione a più Fattori di Azure per l'autenticazione con ADFS, sono necessari i seguenti prerequisiti:

Nota

Azure AD e autenticazione a più Fattori di Azure sono incluse in Azure AD Premium ed Enterprise Mobility Suite (EMS). Se si dispone di uno di questi elementi non è necessario sottoscrizioni individuali.

Configurare il server ADFS

Per completare configurazione per Azure MFA per ADFS, è necessario configurare ciascun server ADFS eseguendo la procedura descritta.

Nota

Assicurarsi che questi passaggi vengono eseguiti su tutti server ADFS nella farm. Se sono presenti più AD FS server nella farm, è possibile eseguire la configurazione necessaria in modalità remota usando Azure AD PowerShell.

Passaggio 1: Generare un certificato per Azure MFA in ogni server AD FS usando il New-AdfsAzureMfaTenantCertificate cmdlet

La prima cosa che è necessario eseguire è generare un certificato per autenticazione a più Fattori di Azure da utilizzare. Questa operazione può essere eseguita tramite PowerShell. Il certificato generato è reperibile nell'archivio certificati computer locali ed è contrassegnata con un nome di oggetto contenente il TenantID per la directory di Azure AD.

Screenshot dell'archivio certificati di un computer locale che mostra il certificato generato.

Si noti che TenantID è il nome della directory in Azure AD. Utilizzare il seguente cmdlet PowerShell per generare il nuovo certificato. $certbase64 = New-AdfsAzureMfaTenantCertificate -TenantID <tenantID>

Screenshot della finestra di PowerShell che mostra il cmdlet precedente.

Passaggio 2: Aggiungere le nuove credenziali all'entità servizio client di Azure Multi-FactorAuth

Per consentire ai server AD FS di comunicare con il client Azure Multi-FactorAuth, è necessario aggiungere le credenziali all'entità servizio per il client Azure Multi-FactorAuth. I certificati generati utilizzando il New-AdfsAzureMFaTenantCertificate cmdlet fungerà da queste credenziali. Eseguire le operazioni seguenti usando PowerShell per aggiungere le nuove credenziali all'entità servizio client Azure Multi-FactorAuth.

Nota

Per completare questo passaggio è necessario connettersi all'istanza di Azure AD con PowerShell usando Connect-MsolService . Questi passaggi presuppongono che si sia già connessi tramite PowerShell. Per informazioni, vedere Connect-MsolService .

Impostare il certificato come le nuove credenziali con il Client di Azure multi-Factor Authentication

New-MsolServicePrincipalCredential -AppPrincipalId 981f26a1-7f43-403b-a875-f8b09b8cd720 -Type asymmetric -Usage verify -Value $certBase64

Importante

Questo comando deve essere eseguito in tutti i server AD FS server nella farm. Azure AD'autenticazione a più fattori avrà esito negativo nei server in cui il certificato non è impostato come nuova credenziale per il client Azure Multi-FactorAuth.

Nota

981f26a1-7f43-403b-a875-f8b09b8cd720 è il GUID per il client Azure Multi-FactorAuth.

Configurare la Farm ADFS

Dopo aver completato la sezione precedente in ogni server AD FS, impostare le informazioni del tenant di Azure usando il cmdlet Set-AdfsAzureMfaTenant. Questo cmdlet deve essere eseguito solo una volta per una farm ADFS.

Aprire un prompt di PowerShell e immettere il proprio tenantId con il cmdlet Set-AdfsAzureMfaTenant. Per i clienti che usano Microsoft Azure cloud per enti pubblici, aggiungere il -Environment USGov parametro :

Nota

È necessario riavviare il AD FS in ogni server della farm prima che queste modifiche influiscano. Per ottenere un impatto minimo, AD FS server dalla rotazione di Bilanciamento carico di rete uno alla volta e attendere lo svuotamento di tutte le connessioni.

Set-AdfsAzureMfaTenant -TenantId <tenant ID> -ClientId 981f26a1-7f43-403b-a875-f8b09b8cd720

Screenshot della finestra di PowerShell che mostra il messaggio di avviso ricevuto dopo l'esecuzione Set-AdfsAzureMfaTenant cmdlet.

Windows Il server senza il Service Pack più recente non supporta il parametro -Environment per il cmdlet Set-AdfsAzureMfaTenant. Se si usa Azure per enti pubblici cloud e i passaggi precedenti non sono riusciti a configurare il tenant di Azure a causa del parametro mancante, completare la procedura seguente per creare manualmente le -Environment voci del Registro di sistema. Ignorare questi passaggi se il cmdlet precedente ha registrato correttamente le informazioni del tenant o non si è nel cloud Azure per enti pubblici:

  1. Aprire l'editor del Registro di sistema AD FS server.

  2. Accedere a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ADFS. Creare i valori delle chiavi del Registro di sistema seguenti:

    Chiave del Registro di sistema valore
    SasUrl https://adnotifications.windowsazure.us/StrongAuthenticationService.svc/Connector
    StsUrl https://login.microsoftonline.us
    ResourceUri https://adnotifications.windowsazure.us/StrongAuthenticationService.svc/Connector
  3. Riavviare il AD FS in ogni server della farm prima che queste modifiche influiscano. Per ottenere un impatto minimo, AD FS server dalla rotazione di Bilanciamento carico di rete uno alla volta e attendere lo svuotamento di tutte le connessioni.

Successivamente, si noterà che è disponibile come un metodo di autenticazione principale per intranet ed extranet utilizzare autenticazione a più Fattori di Azure.

Screenshot della finestra di dialogo Modifica metodi di autenticazione che mostra l'opzione Azure M F A evidenziata nelle sezioni Extranet e Intranet.

Rinnovare e gestire i certificati AD FS Azure MFA

Le indicazioni seguenti illustrano come gestire i certificati di Azure MFA nei AD FS server. Per impostazione predefinita, quando si configura AD FS con Azure MFA, i certificati generati tramite il cmdlet di PowerShell sono validi New-AdfsAzureMfaTenantCertificate per 2 anni. Per determinare la scadenza dei certificati e quindi rinnovare e installare nuovi certificati, usare la procedura seguente.

Valutare la AD FS di scadenza del certificato MFA di Azure

In ogni server AD FS, nel computer locale Archivio locale, sarà presente un certificato autofirmato con "OU=Microsoft AD FS Azure MFA" nell'autorità di certificazione e nell'oggetto. Questo è il certificato di Azure MFA. Verificare il periodo di validità del certificato in ogni server AD FS per determinare la data di scadenza.

Creare un nuovo AD FS Azure MFA Certificate in ogni server AD FS

Se il periodo di validità dei certificati sta per terminare, avviare il processo di rinnovo generando un nuovo certificato azure MFA in ogni AD FS server. In una finestra di comando di PowerShell generare un nuovo certificato in ogni server AD FS usando il cmdlet seguente:

Attenzione

Se il certificato è già scaduto, non aggiungere il -Renew $true parametro al comando seguente. In questo scenario, il certificato scaduto esistente viene sostituito con uno nuovo anziché essere lasciato sul posto e viene creato un certificato aggiuntivo.

PS C:\> $newcert = New-AdfsAzureMfaTenantCertificate -TenantId <tenant id such as contoso.onmicrosoft.com> -Renew $true

Se il certificato non è già scaduto, viene generato un nuovo certificato valido da 2 giorni in futuro a 2 giorni + 2 anni. AD FS le operazioni MFA di Azure non sono interessate da questo cmdlet o dal nuovo certificato. Nota: il ritardo di 2 giorni è intenzionale e fornisce il tempo necessario per eseguire la procedura seguente per configurare il nuovo certificato nel tenant prima che AD FS inizi a usarlo per Azure MFA.

Configurare ogni nuovo certificato AD FS Azure MFA nel tenant Azure AD azure

Usando il modulo powershell Azure AD, per ogni nuovo certificato (in ogni server AD FS), aggiornare le impostazioni del tenant Azure AD come indicato di seguito (Nota: è prima necessario connettersi al tenant usando per eseguire i Connect-MsolService comandi seguenti).

PS C:/> New-MsolServicePrincipalCredential -AppPrincipalId 981f26a1-7f43-403b-a875-f8b09b8cd720 -Type Asymmetric -Usage Verify -Value $newcert

Se il certificato precedente era già scaduto, riavviare il AD FS per prelevare il nuovo certificato. Non è necessario riavviare il servizio AD FS se è stato rinnovato un certificato prima della scadenza.

Verificare che i nuovi certificati verranno usati per Azure MFA

Quando i nuovi certificati diventano validi, AD FS prelevarli e iniziare a usare ogni rispettivo certificato per Azure MFA entro poche ore al giorno. Al termine, in ogni server verrà visualizzato un evento registrato nel registro eventi di AD FS Admin con le informazioni seguenti:

Log Name:      AD FS/Admin
Source:        AD FS
Date:          2/27/2018 7:33:31 PM
Event ID:      547
Task Category: None
Level:         Information
Keywords:      AD FS
User:          DOMAIN\adfssvc
Computer:      ADFS.domain.contoso.com
Description:
The tenant certificate for Azure MFA has been renewed.

TenantId: contoso.onmicrosoft.com.
Old thumbprint: 7CC103D60967318A11D8C51C289EF85214D9FC63.
Old expiration date: 9/15/2019 9:43:17 PM.
New thumbprint: 8110D7415744C9D4D5A4A6309499F7B48B5F3CCF.
New expiration date: 2/27/2020 2:16:07 AM.

Personalizzare la pagina AD FS Web per guidare gli utenti a registrare i metodi di verifica MFA

Usare gli esempi seguenti per personalizzare le AD FS Web per gli utenti che non hanno ancora creato la prova (informazioni di verifica MFA configurate).

Trovare l'errore

In primo luogo, sono presenti due messaggi di errore AD FS verranno restituiti nel caso in cui l'utente non dispone di informazioni di verifica. Se si usa Azure MFA come autenticazione primaria, l'utente senza prova visualizza una pagina di errore AD FS contenente i messaggi seguenti:

    <div id="errorArea">
        <div id="openingMessage" class="groupMargin bigText">
            An error occurred
        </div>
        <div id="errorMessage" class="groupMargin">
            Authentication attempt failed. Select a different sign in option or close the web browser and sign in again. Contact your administrator for more information.
        </div>

Quando Azure AD viene tentata un'autenticazione aggiuntiva, l'utente non verificato visualizza una pagina di errore AD FS contenente i messaggi seguenti:

<div id='mfaGreetingDescription' class='groupMargin'>For security reasons, we require additional information to verify your account (mahesh@jenfield.net)</div>
    <div id="errorArea">
        <div id="openingMessage" class="groupMargin bigText">
            An error occurred
        </div>
        <div id="errorMessage" class="groupMargin">
            The selected authentication method is not available for &#39;username@contoso.com&#39;. Choose another authentication method or contact your system administrator for details.
        </div>

Rilevare l'errore e aggiornare il testo della pagina

Per rilevare l'errore e visualizzare le indicazioni personalizzate dell'utente, è sufficiente aggiungere javascript alla fine del file onload.js che fa parte del tema AD FS Web. In questo modo è possibile eseguire le operazioni seguenti:

  • cercare le stringhe di errore di identificazione
  • fornire contenuto Web personalizzato.

Nota

Per indicazioni generali su come personalizzare il file onload.js, vedere l'articolo Personalizzazione avanzata delle AD FS di accesso.

Di seguito è riportato un esempio semplice che può essere necessario estendere:

  1. Aprire Windows PowerShell nel server AD FS primario e creare un nuovo tema AD FS Web eseguendo il comando seguente:

        New-AdfsWebTheme –Name ProofUp –SourceName default
    
  2. Creare quindi la cartella ed esportare il tema AD FS Web predefinito:

       New-Item -Path 'c:\Theme' -ItemType Directory;Export-AdfsWebTheme –Name default –DirectoryPath c:\Theme
    
  3. Aprire il C:\Theme\script\onload.js file in un editor di testo

  4. Aggiungere il codice seguente alla fine del file onload.js

    //Custom Code
    //Customize MFA exception
    //Begin
    
    var domain_hint = "<YOUR_DOMAIN_NAME_HERE>";
    var mfaSecondFactorErr = "The selected authentication method is not available for";
    var mfaProofupMessage = "You will be automatically redirected in 5 seconds to set up your account for additional security verification. Once you have completed the setup, please return to the application you are attempting to access.<br><br>If you are not redirected automatically, please click <a href='{0}'>here</a>."
    var authArea = document.getElementById("authArea");
    if (authArea) {
        var errorMessage = document.getElementById("errorMessage");
        if (errorMessage) {
            if (errorMessage.innerHTML.indexOf(mfaSecondFactorErr) >= 0) {
    
                //Hide the error message
                var openingMessage = document.getElementById("openingMessage");
                if (openingMessage) {
                    openingMessage.style.display = 'none'
                }
                var errorDetailsLink = document.getElementById("errorDetailsLink");
                if (errorDetailsLink) {
                    errorDetailsLink.style.display = 'none'
                }
    
                //Provide a message and redirect to Azure AD MFA Registration Url
                var mfaRegisterUrl = "https://account.activedirectory.windowsazure.com/proofup.aspx?proofup=1&whr=" + domain_hint;
                errorMessage.innerHTML = "<br>" + mfaProofupMessage.replace("{0}", mfaRegisterUrl);
                window.setTimeout(function () { window.location.href = mfaRegisterUrl; }, 5000);
            }
        }
    }
    
    //End Customize MFA Exception
    //End Custom Code
    

    Importante

    È necessario modificare "<YOUR_DOMAIN_NAME_HERE>"; per usare il nome di dominio. ad esempio var domain_hint = "contoso.com";

  5. Salvare il file onload.js file

  6. Importare onload.js file nel tema personalizzato digitando il comando Windows PowerShell seguente:

    Set-AdfsWebTheme -TargetName ProofUp -AdditionalFileResource @{Uri='/adfs/portal/script/onload.js';path="c:\theme\script\onload.js"}
    
  7. Infine, applicare il tema AD FS Web digitando il comando Windows PowerShell seguente:

    Set-AdfsWebConfig -ActiveThemeName "ProofUp"
    

Passaggi successivi

Gestire i protocolli TLS/SSL e i pacchetti di crittografia usati da AD FS e Azure MFA