Gestore ID azure HDInsight (HIB)

Questo articolo descrive come configurare e usare la funzionalità Broker ID Azure HDInsight. È possibile usare questa funzionalità per ottenere l'autenticazione OAuth moderna in Apache Ambari, pur avendo l'imposizione dell'autenticazione a più fattori senza bisogno di hash delle password legacy in Microsoft Entra Domain Services.

Panoramica

Gestore ID HDInsight semplifica le configurazioni di autenticazione complesse negli scenari seguenti:

  • L'organizzazione si basa sulla federazione per autenticare gli utenti per l'accesso alle risorse cloud. In precedenza, per usare i cluster HDInsight Enterprise Security Package, era necessario abilitare la sincronizzazione dell'hash delle password dall'ambiente locale all'ID Microsoft Entra. Questo requisito potrebbe essere difficile o indesiderato per alcune organizzazioni.
  • L'organizzazione vuole applicare l'autenticazione a più fattori per l'accesso basato sul Web o basato su HTTP ad Apache Ambari e ad altre risorse del cluster.

HDInsight ID Broker fornisce l'infrastruttura di autenticazione che consente la transizione del protocollo da OAuth (moderna) a Kerberos (legacy) senza dover sincronizzare gli hash delle password in Microsoft Entra Domain Services. Questa infrastruttura è costituita da componenti in esecuzione in una macchina virtuale Windows Server con il nodo Broker ID HDInsight abilitato, insieme ai nodi del gateway del cluster.

Usare la tabella seguente per determinare l'opzione di autenticazione migliore in base alle esigenze dell'organizzazione.

Opzioni di autenticazione Configurazione di HDInsight Fattori da considerare
Completamente OAuth Enterprise Security Package + HDInsight ID Broker Opzione più sicura. L'autenticazione a più fattori è supportata. La sincronizzazione hash pass non è obbligatoria. Nessun accesso ssh/kinit/keytab per gli account locali, che non dispongono dell'hash delle password in Microsoft Entra Domain Services. Gli account solo cloud possono comunque usare ssh/kinit/keytab. Accesso basato sul Web ad Ambari tramite OAuth. Richiede l'aggiornamento di app legacy (ad esempio JDBC/ODBC) per supportare OAuth.
OAuth + Autenticazione di base Enterprise Security Package + HDInsight ID Broker Accesso basato sul Web ad Ambari tramite OAuth. Le app legacy continuano a usare l'autenticazione di base. L'autenticazione a più fattori deve essere disabilitata per l'accesso di autenticazione di base. La sincronizzazione hash pass non è obbligatoria. Nessun accesso ssh/kinit/keytab per gli account locali, che non dispongono dell'hash delle password in Microsoft Entra Domain Services. Gli account solo cloud possono comunque usare ssh/kinit.
Autenticazione completamente di base Enterprise Security Package Più simile alle configurazioni locali. È necessaria la sincronizzazione dell'hash delle password con Microsoft Entra Domain Services. Gli account locali possono usare ssh/kinit o keytab. L'autenticazione a più fattori deve essere disabilitata se l'archiviazione di backup è Azure Data Lake Archiviazione Gen2.

Il diagramma seguente illustra il flusso di autenticazione moderno basato su OAuth per tutti gli utenti, inclusi gli utenti federati, dopo l'abilitazione di HDInsight ID Broker:

Diagram that shows authentication flow with HDInsight ID Broker.

In questo diagramma, il client ,ovvero un browser o un'app, deve prima acquisire il token OAuth. Presenta quindi il token al gateway in una richiesta HTTP. Se si è già eseguito l'accesso ad altri servizi di Azure, ad esempio il portale di Azure, è possibile accedere al cluster HDInsight con un'esperienza Single Sign-On.

Potrebbero essere ancora presenti molte applicazioni legacy che supportano solo l'autenticazione di base( ovvero nome utente e password). Per questi scenari, è comunque possibile usare l'autenticazione di base HTTP per connettersi ai gateway del cluster. In questa configurazione è necessario garantire la connettività di rete dai nodi del gateway all'endpoint di Active Directory Federation Services (AD FS) per garantire una linea diretta di visualizzazione dai nodi del gateway.

Il diagramma seguente illustra il flusso di autenticazione di base per gli utenti federati. Prima di tutto, il gateway tenta di completare l'autenticazione usando il flusso ROPC. Nel caso in cui non siano presenti hash delle password sincronizzati con Microsoft Entra ID, esegue il fallback all'individuazione dell'endpoint AD FS e completa l'autenticazione accedendo all'endpoint AD FS.

Diagram that shows architecture with basic authentication.

Abilitare Broker ID HDInsight

Per creare un cluster Enterprise Security Package con HDInsight ID Broker abilitato,

  1. Accedi al portale di Azure.
  2. Seguire la procedura di creazione di base per un cluster Enterprise Security Package. Per altre informazioni, vedere Creare un cluster HDInsight con Enterprise Security Package.
  3. Selezionare Enable HDInsight ID Broker (Abilita Gestore ID HDInsight).

La funzionalità Broker ID HDInsight aggiunge una macchina virtuale aggiuntiva al cluster. Questa macchina virtuale è il nodo Broker ID HDInsight e include i componenti server per supportare l'autenticazione. Il nodo Broker ID HDInsight è aggiunto al dominio di Microsoft Entra Domain Services.

Diagram that shows option to enable HDInsight ID Broker.

Usare i modelli di Azure Resource Manager

Se si aggiunge un nuovo ruolo denominato idbrokernode con gli attributi seguenti al profilo di calcolo del modello, il cluster viene creato con il nodo Broker ID HDInsight abilitato:

.
.
.
"computeProfile": {
    "roles": [
        {
            "autoscale": null,
            "name": "headnode",
           ....
        },
        {
            "autoscale": null,
            "name": "workernode",
            ....
        },
        {
            "autoscale": null,
            "name": "idbrokernode",
            "targetInstanceCount": 2,
            "hardwareProfile": {
                "vmSize": "Standard_A2_V2"
            },
            "virtualNetworkProfile": {
                "id": "string",
                "subnet": "string"
            },
            "scriptActions": [],
            "dataDisksGroups": null
        }
    ]
}
.
.
.

Per visualizzare un esempio completo di un modello di Resource Manager, vedere il modello pubblicato qui.

Integrazione degli strumenti

Gli strumenti HDInsight vengono aggiornati per supportare in modo nativo OAuth. Usare questi strumenti per l'accesso moderno basato su OAuth ai cluster. Il plug-in HDInsight IntelliJ può essere usato per applicazioni basate su Java, ad esempio Scala. Spark e Hive Tools per Visual Studio Code possono essere usati per i processi PySpark e Hive. Gli strumenti supportano processi batch e interattivi.

Accesso SSH senza hash delle password in Microsoft Entra Domain Services

Opzioni SSH Fattori da considerare
Account della macchina virtuale locale (ad esempio, sshuser) Questo account è stato fornito al momento della creazione del cluster. Non esiste alcuna autenticazione Kerberos per questo account.
Account solo cloud (ad esempio, alice@contoso.onmicrosoft.com) L'hash delle password è disponibile in Microsoft Entra Domain Services. L'autenticazione Kerberos è possibile tramite SSH Kerberos.
Account locale (ad esempio, alice@contoso.com) L'autenticazione Kerberos SSH è possibile solo se è disponibile un hash delle password in Microsoft Entra Domain Services. In caso contrario, questo utente non può connettersi tramite SSH al cluster.

Per connettersi tramite SSH a una macchina virtuale aggiunta a un dominio o per eseguire il kinit comando, è necessario specificare una password. L'autenticazione Kerberos SSH richiede che l'hash sia disponibile in Servizi di dominio Microsoft Entra. Se si vuole usare SSH solo per scenari amministrativi, è possibile creare un solo account cloud e usarlo per SSH per il cluster. Altri utenti locali possono comunque usare gli strumenti di Ambari o HDInsight o l'autenticazione di base HTTP senza disporre dell'hash delle password disponibile in Servizi di dominio Microsoft Entra.

Se l'organizzazione non sincronizza gli hash delle password con Microsoft Entra Domain Services, come procedura consigliata, creare un utente solo cloud in Microsoft Entra ID. Assegnarlo quindi come amministratore del cluster quando si crea il cluster e usarlo per scopi di amministrazione. È possibile usarlo per ottenere l'accesso radice alle macchine virtuali tramite SSH.

Per risolvere i problemi di autenticazione, vedere questa guida.

Client che usano OAuth per connettersi a un gateway HDInsight con HDInsight ID Broker

Nel Broker ID HDInsight configurato, le app e i client personalizzati che si connettono al gateway possono essere aggiornati per acquisire prima il token OAuth necessario. Per altre informazioni, vedere Come autenticare le applicazioni .NET con i servizi di Azure. I valori chiave necessari per autorizzare l'accesso a un gateway HDInsight sono:

  • URI della risorsa OAuth: https://hib.azurehdinsight.net
  • AppId: 7865c1d2-f040-46cc-875f-831a1ef6a28a
  • Autorizzazione: (nome: Cluster.ReadWrite, id: 8f89faa0-ffef-4007-974d-4989b39ad77d)

Dopo aver acquisito il token OAuth, usarlo nell'intestazione di autorizzazione della richiesta HTTP al gateway cluster, ad esempio https://< clustername-int.azurehdinsight.net>. Un comando curl di esempio per l'API Apache Livy potrebbe essere simile all'esempio seguente:

curl -k -v -H "Authorization: Bearer Access_TOKEN" -H "Content-Type: application/json" -X POST -d '{ "file":"wasbs://mycontainer@mystorageaccount.blob.core.windows.net/data/SparkSimpleTest.jar", "className":"com.microsoft.spark.test.SimpleFile" }' "https://<clustername>-int.azurehdinsight.net/livy/batches" -H "X-Requested-By:<username@domain.com>"

Per usare Beeline e Livy, è anche possibile seguire i codici di esempio forniti qui per configurare il client per usare OAuth e connettersi al cluster.

Domande frequenti

Quale app viene creata da HDInsight in Microsoft Entra ID?

Per ogni cluster, un'applicazione di terze parti viene registrata in Microsoft Entra ID con l'URI del cluster come identificatoreUri (ad esempio https://clustername.azurehdinsight.net).

In Microsoft Entra ID è necessario il consenso per tutte le applicazioni di terze parti prima di poter autenticare gli utenti o accedere ai dati.

L'API Microsoft Graph consente di automatizzare il consenso, vedere la documentazione dell'API La sequenza per automatizzare il consenso è:

  • Registrare un'app e concedere all'app le autorizzazioni Application.ReadWrite.All per accedere a Microsoft Graph
  • Dopo aver creato un cluster, eseguire una query per l'app cluster in base all'URI dell'identificatore
  • Registrare il consenso per l'app

Quando il cluster viene eliminato, HDInsight elimina l'app e non è necessario pulire il consenso.

Passaggi successivi