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:
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.
HDInsight ID Broker inschakelen
Een Enterprise Security Package-cluster maken waarvoor HDInsight ID Broker is ingeschakeld,
- Meld u aan bij het Azure-portaal.
- Volg de basisstappen voor het maken van een Enterprise Security Package-cluster. Zie Een HDInsight-cluster maken met Enterprise Security Package voor meer informatie.
- 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.
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: 00001111-aaaa-2222-bbbb-3333cccc44444
- 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
).
Waarom wordt gebruikers om toestemming gevraagd voordat ze clusters met HIB gebruiken?
In Microsoft Entra-id is toestemming vereist voor alle toepassingen van derden voordat gebruikers kunnen worden geverifieerd of toegang kunnen krijgen tot gegevens.
Kan de toestemming programmatisch worden goedgekeurd?
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.