Azure HDInsight ID Broker (HIB)

In dit artikel wordt beschreven hoe u de Azure HDInsight ID Broker-functie instelt en gebruikt. U kunt deze functie gebruiken om moderne OAuth-verificatie op te halen bij Apache Ambari terwijl meervoudige verificatie wordt afgedwongen zonder verouderde wachtwoordhashes in Microsoft Entra Domain Services nodig te hebben.

Overzicht

HDInsight ID Broker vereenvoudigt complexe verificatie-instellingen in de volgende scenario's:

  • Uw organisatie is afhankelijk van federatie om gebruikers te verifiëren voor toegang tot cloudresources. Voorheen moest u voor het gebruik van HDInsight Enterprise Security Package-clusters wachtwoord-hashsynchronisatie inschakelen vanuit uw on-premises omgeving naar Microsoft Entra-id. Deze vereiste kan moeilijk of ongewenst zijn voor sommige organisaties.
  • Uw organisatie wil meervoudige verificatie afdwingen voor web- of HTTP-toegang tot Apache Ambari en andere clusterbronnen.

HDInsight ID Broker biedt de verificatie-infrastructuur waarmee protocolovergang van OAuth (modern) naar Kerberos (verouderd) mogelijk is zonder wachtwoordhashes te hoeven synchroniseren met Microsoft Entra Domain Services. Deze infrastructuur bestaat uit onderdelen die worden uitgevoerd op een virtuele Windows Server-machine (VM) waarvoor het HDInsight ID Broker-knooppunt is ingeschakeld, samen met clustergatewayknooppunten.

Gebruik de volgende tabel om de beste verificatieoptie te bepalen op basis van de behoeften van uw organisatie.

Verificatieopties HDInsight-configuratie Factoren die in acht moeten worden genomen
Volledig OAuth Enterprise Security Package + HDInsight ID Broker Meest veilige optie. (Meervoudige verificatie wordt ondersteund.) Wachtwoord-hashsynchronisatie is niet vereist. Geen ssh/kinit/keytab-toegang voor on-premises accounts, die geen wachtwoord-hash hebben in Microsoft Entra Domain Services. Cloudaccounts kunnen nog steeds ssh/kinit/keytab. Webtoegang tot Ambari via OAuth. Hiervoor moet verouderde apps (bijvoorbeeld JDBC/ODBC) worden bijgewerkt om OAuth te ondersteunen.
OAuth + Basic-verificatie Enterprise Security Package + HDInsight ID Broker Webtoegang tot Ambari via OAuth. Verouderde apps blijven basisverificatie gebruiken. Meervoudige verificatie moet worden uitgeschakeld voor basisverificatietoegang. Wachtwoord-hashsynchronisatie is niet vereist. Geen ssh/kinit/keytab-toegang voor on-premises accounts, die geen wachtwoord-hash hebben in Microsoft Entra Domain Services. Cloudaccounts kunnen nog steeds ssh/kinit.
Volledig eenvoudige verificatie Enterprise Security Package Het meest vergelijkbaar met on-premises setups. Wachtwoord-hashsynchronisatie met Microsoft Entra Domain Services is vereist. On-premises accounts kunnen ssh/kinit gebruiken of keytab gebruiken. Meervoudige verificatie moet worden uitgeschakeld als de back-upopslag Azure Data Lake Storage Gen2 is.

In het volgende diagram ziet u de moderne verificatiestroom op basis van OAuth voor alle gebruikers, inclusief federatieve gebruikers, nadat HDInsight ID Broker is ingeschakeld:

Diagram that shows authentication flow with HDInsight ID Broker.

In dit diagram moet de client (dat wil gezegd een browser of app) eerst het OAuth-token verkrijgen. Vervolgens wordt het token weergegeven aan de gateway in een HTTP-aanvraag. Als u zich al hebt aangemeld bij andere Azure-services, zoals Azure Portal, kunt u zich aanmelden bij uw HDInsight-cluster met eenmalige aanmelding.

Er zijn nog steeds veel verouderde toepassingen die alleen basisverificatie ondersteunen (dat wil gezegd, gebruikersnaam en wachtwoord). Voor deze scenario's kunt u nog steeds HTTP-basisverificatie gebruiken om verbinding te maken met de clustergateways. In deze configuratie moet u ervoor zorgen dat de netwerkverbinding van de gatewayknooppunten naar het AD FS-eindpunt (Active Directory Federation Services) zorgt voor een directe lijn van zicht vanaf gatewayknooppunten.

In het volgende diagram ziet u de basisverificatiestroom voor federatieve gebruikers. Eerst probeert de gateway de verificatie te voltooien met behulp van ROPC-stroom. Als er geen wachtwoordhashes zijn gesynchroniseerd met Microsoft Entra-id, valt het terug om het AD FS-eindpunt te detecteren en de verificatie te voltooien door toegang te krijgen tot het AD FS-eindpunt.

Diagram that shows architecture with basic authentication.

HDInsight ID Broker inschakelen

Een Enterprise Security Package-cluster maken waarvoor HDInsight ID Broker is ingeschakeld,

  1. Meld u aan bij de Azure-portal.
  2. Volg de basisstappen voor het maken van een Enterprise Security Package-cluster. Zie Een HDInsight-cluster maken met Enterprise Security Package voor meer informatie.
  3. Selecteer HDInsight ID Broker inschakelen.

Met de HDInsight ID Broker-functie wordt één extra VIRTUELE machine aan het cluster toegevoegd. Deze VM is het HDInsight ID Broker-knooppunt en bevat serveronderdelen ter ondersteuning van verificatie. Het HDInsight ID Broker-knooppunt is lid van het domein Microsoft Entra Domain Services.

Diagram that shows option to enable HDInsight ID Broker.

Azure Resource Manager-sjablonen gebruiken

Als u een nieuwe rol idbrokernode met de volgende kenmerken toevoegt aan het rekenprofiel van uw sjabloon, wordt het cluster gemaakt met het HDInsight ID Broker-knooppunt ingeschakeld:

.
.
.
"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
        }
    ]
}
.
.
.

Als u een volledig voorbeeld van een ARM-sjabloon wilt zien, raadpleegt u de sjabloon die hier wordt gepubliceerd.

Hulpprogramma-integratie

HDInsight-hulpprogramma's worden bijgewerkt om systeemeigen ondersteuning te bieden voor OAuth. Gebruik deze hulpprogramma's voor moderne OAuth-toegang tot de clusters. De HDInsight IntelliJ-invoegtoepassing kan worden gebruikt voor Java-toepassingen, zoals Scala. Spark- en Hive Tools voor Visual Studio Code kunnen worden gebruikt voor PySpark- en Hive-taken. De hulpprogramma's ondersteunen zowel batch- als interactieve taken.

SSH-toegang zonder wachtwoord-hash in Microsoft Entra Domain Services

SSH-opties Factoren die in acht moeten worden genomen
Lokaal VM-account (bijvoorbeeld sshuser) U hebt dit account opgegeven tijdens het maken van het cluster. Er is geen Kerberos-verificatie voor dit account.
Alleen cloudaccount (bijvoorbeeld alice@contoso.onmicrosoft.com) De wachtwoord-hash is beschikbaar in Microsoft Entra Domain Services. Kerberos-verificatie is mogelijk via SSH Kerberos.
On-premises account (bijvoorbeeld alice@contoso.com) SSH Kerberos-verificatie is alleen mogelijk als er een wachtwoord-hash beschikbaar is in Microsoft Entra Domain Services. Anders kan deze gebruiker geen SSH naar het cluster maken.

Als u SSH wilt uitvoeren op een vm die lid is van een domein of als u de kinit opdracht wilt uitvoeren, moet u een wachtwoord opgeven. Voor SSH Kerberos-verificatie moet de hash beschikbaar zijn in Microsoft Entra Domain Services. Als u alleen SSH wilt gebruiken voor beheerscenario's, kunt u één cloudaccount maken en dit gebruiken voor SSH voor het cluster. Andere on-premises gebruikers kunnen nog steeds Ambari- of HDInsight-hulpprogramma's of HTTP-basisverificatie gebruiken zonder dat de wachtwoord-hash beschikbaar is in Microsoft Entra Domain Services.

Als uw organisatie geen wachtwoordhashes synchroniseert met Microsoft Entra Domain Services, maakt u als best practice één cloudgebruiker in Microsoft Entra ID. Wijs deze vervolgens toe als clusterbeheerder wanneer u het cluster maakt en gebruik dit voor beheerdoeleinden. U kunt deze gebruiken om toegang te krijgen tot de virtuele machines via SSH.

Raadpleeg deze handleiding voor het oplossen van verificatieproblemen.

Clients die OAuth gebruiken om verbinding te maken met een HDInsight-gateway met HDInsight ID Broker

In het instellen van HDInsight ID Broker kunnen aangepaste apps en clients die verbinding maken met de gateway worden bijgewerkt om eerst het vereiste OAuth-token te verkrijgen. Zie .NET-toepassingen verifiëren met Azure-services voor meer informatie. De sleutelwaarden die vereist zijn voor het autoriseren van toegang tot een HDInsight-gateway zijn:

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

Nadat u het OAuth-token hebt verkregen, gebruikt u het in de autorisatieheader van de HTTP-aanvraag naar de clustergateway (bijvoorbeeld https://< clusternaam-int.azurehdinsight.net>). Een voorbeeld van een curl-opdracht voor de Apache Livy-API kan er als volgt uitzien:

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>"

Voor het gebruik van Beeline en Livy kunt u ook de voorbeeldencodes volgen die hier worden gegeven om uw client in te stellen om OAuth te gebruiken en verbinding te maken met het cluster.

Veelgestelde vragen

Welke app wordt gemaakt door HDInsight in Microsoft Entra ID?

Voor elk cluster wordt een toepassing van derden geregistreerd in Microsoft Entra-id met de cluster-URI als idUri (zoals https://clustername.azurehdinsight.net).

In Microsoft Entra-id is toestemming vereist voor alle toepassingen van derden voordat gebruikers kunnen worden geverifieerd of toegang kunnen krijgen tot gegevens.

Met Microsoft Graph API kunt u de toestemming automatiseren. Zie de API-documentatie De reeks voor het automatiseren van de toestemming is:

  • Een app registreren en Application.ReadWrite.All-machtigingen verlenen aan de app voor toegang tot Microsoft Graph
  • Nadat een cluster is gemaakt, voert u een query uit voor de cluster-app op basis van de id-URI
  • Toestemming registreren voor de app

Wanneer het cluster wordt verwijderd, verwijdert HDInsight de app en hoeft u geen toestemming op te schonen.

Volgende stappen