Sdílet prostřednictvím


Azure HDInsight ID Broker (HIB)

Tento článek popisuje, jak nastavit a používat funkci Azure HDInsight ID Broker. Pomocí této funkce můžete získat moderní ověřování OAuth pro Apache Ambari a vynucovat vícefaktorové ověřování bez nutnosti používat hodnoty hash starších hesel ve službě Microsoft Entra Domain Services.

Přehled

Zprostředkovatel ID SLUŽBY HDInsight zjednodušuje složité nastavení ověřování v následujících scénářích:

  • Vaše organizace spoléhá na federaci k ověřování uživatelů pro přístup ke cloudovým prostředkům. Dříve jste museli povolit synchronizaci hodnot hash hesel z místního prostředí do Microsoft Entra ID, aby používala clustery balíčků zabezpečení SLUŽBY HDInsight Enterprise Security Package. Tento požadavek může být pro některé organizace obtížné nebo nežádoucí.
  • Vaše organizace chce vynutit vícefaktorové ověřování pro webový nebo HTTP přístup k Apache Ambari a dalším prostředkům clusteru.

Služba HDInsight ID Broker poskytuje infrastrukturu ověřování, která umožňuje přechod protokolu z OAuth (moderní) na Kerberos (starší verze), aniž by bylo nutné synchronizovat hodnoty hash hesel se službou Microsoft Entra Domain Services. Tato infrastruktura se skládá z komponent spuštěných na virtuálním počítači s Windows Serverem s povoleným uzlem zprostředkovatele ID SLUŽBY HDInsight spolu s uzly brány clusteru.

Pomocí následující tabulky určete nejlepší možnost ověřování na základě potřeb vaší organizace.

Možnosti ověřování Konfigurace HDInsightu Faktory, které je třeba zvážit
Plně OAuth Enterprise Security Package + HDInsight ID Broker Nejbezpečnější možnost. (Podporuje se vícefaktorové ověřování.) Není vyžadována synchronizace hodnot hash. Pro místní účty, které nemají hodnotu hash hesel ve službě Microsoft Entra Domain Services, nemá přístup ssh/kinit/keytab. Účty jen pro cloud můžou stále ssh,kinit/keytab. Webový přístup k Ambari prostřednictvím OAuth. Vyžaduje aktualizaci starších aplikací (například JDBC/ODBC) pro podporu OAuth.
OAuth + Základní ověřování Enterprise Security Package + HDInsight ID Broker Webový přístup k Ambari prostřednictvím OAuth. Starší aplikace nadále používají základní ověřování. Pro základní přístup k ověřování musí být zakázané vícefaktorové ověřování. Není vyžadována synchronizace hodnot hash. Pro místní účty, které nemají hodnotu hash hesel ve službě Microsoft Entra Domain Services, nemá přístup ssh/kinit/keytab. Účty jen pro cloud můžou stále ssh/kinit.
Plně základní ověřování Balíček zabezpečení podniku Nejvíce se podobá místním nastavením. Vyžaduje se synchronizace hodnot hash hesel se službou Microsoft Entra Domain Services. Místní účty můžou ssh/kinit nebo použít klávesovou zkratku. Vícefaktorové ověřování musí být zakázané, pokud je backingovým úložištěm Azure Data Lake Storage Gen2.

Následující diagram znázorňuje moderní tok ověřování na základě OAuth pro všechny uživatele, včetně federovaných uživatelů, po povolení zprostředkovatele ID SLUŽBY HDInsight:

Diagram znázorňující tok ověřování pomocí zprostředkovatele ID SLUŽBY HDInsight

V tomto diagramu musí klient (tj. prohlížeč nebo aplikace) nejprve získat token OAuth. Poté zobrazí token bráně v požadavku HTTP. Pokud jste se už přihlásili k jiným službám Azure, jako je azure Portal, můžete se přihlásit ke svému clusteru HDInsight pomocí jednotného přihlašování.

Stále může existovat mnoho starších aplikací, které podporují pouze základní ověřování (to znamená uživatelské jméno a heslo). V těchto scénářích můžete dál používat základní ověřování HTTP pro připojení k branám clusteru. V tomto nastavení musíte zajistit síťové připojení z uzlů brány ke koncovému bodu Active Directory Federation Services (AD FS) (AD FS), abyste zajistili přímou čáru dohledu z uzlů brány.

Následující diagram znázorňuje základní tok ověřování pro federované uživatele. Nejprve se brána pokusí dokončit ověřování pomocí toku ROPC. V případě, že se žádné hodnoty hash hesel nesynchronizují s ID Microsoft Entra, vrátí se zpět ke zjištění koncového bodu služby AD FS a dokončení ověřování přístupem ke koncovému bodu služby AD FS.

Diagram znázorňující architekturu se základním ověřováním

Povolení zprostředkovatele ID SLUŽBY HDInsight

Vytvoření clusteru Enterprise Security Package s povoleným zprostředkovatelem ID SLUŽBY HDInsight

  1. Přihlaste se k portálu Azure.
  2. Postupujte podle základních kroků vytvoření clusteru Enterprise Security Package. Další informace najdete v tématu Vytvoření clusteru HDInsight s balíčkem zabezpečení podniku.
  3. Vyberte Povolit zprostředkovatele ID SLUŽBY HDInsight.

Funkce Zprostředkovatele ID SLUŽBY HDInsight přidá do clusteru jeden další virtuální počítač. Tento virtuální počítač je uzel zprostředkovatele ID SLUŽBY HDInsight a obsahuje součásti serveru pro podporu ověřování. Uzel zprostředkovatele ID SLUŽBY HDInsight je připojený k doméně služby Microsoft Entra Domain Services.

Diagram znázorňující možnost povolení zprostředkovatele ID SLUŽBY HDInsight

Použití šablon Azure Resource Manageru

Pokud do výpočetního profilu šablony přidáte novou roli s idbrokernode následujícími atributy, cluster se vytvoří s povoleným uzlem zprostředkovatele ID SLUŽBY HDInsight:

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

Pokud chcete zobrazit úplnou ukázku šablony ARM, podívejte se na šablonu publikovanou tady.

Integrace nástrojů

Nástroje HDInsight se aktualizují tak, aby nativně podporovaly OAuth. Tyto nástroje použijte k modernímu přístupu na základě OAuth ke clusterům. Modul plug-in HDInsight IntelliJ se dá použít pro aplikace založené na Javě, jako je Scala. Nástroje Spark a Hive pro Visual Studio Code je možné použít pro úlohy PySpark a Hive. Nástroje podporují dávkové i interaktivní úlohy.

Přístup SSH bez hodnoty hash hesel ve službě Microsoft Entra Domain Services

Možnosti SSH Faktory, které je třeba zvážit
Místní účet virtuálního počítače (například sshuser) Tento účet jste zadali při vytváření clusteru. Pro tento účet neexistuje žádné ověřování protokolem Kerberos.
Účet jen pro cloud (například alice@contoso.onmicrosoft.com) Hodnota hash hesla je k dispozici ve službě Microsoft Entra Domain Services. Ověřování protokolem Kerberos je možné prostřednictvím protokolu Kerberos SSH.
Místní účet (například alice@contoso.com) Ověřování protokolem Kerberos SSH je možné pouze v případě, že je ve službě Microsoft Entra Domain Services k dispozici hodnota hash hesla. Jinak tento uživatel nemůže připojit ke clusteru protokol SSH.

Pokud chcete připojit SSH k virtuálnímu počítači připojenému k doméně nebo spustit kinit příkaz, musíte zadat heslo. Ověřování protokolem Kerberos SSH vyžaduje, aby byla hodnota hash dostupná ve službě Microsoft Entra Domain Services. Pokud chcete používat SSH jenom pro scénáře pro správu, můžete vytvořit jeden cloudový účet a použít ho k SSH do clusteru. Ostatní místní uživatelé můžou dál používat nástroje Ambari nebo HDInsight nebo základní ověřování HTTP, aniž by měli k dispozici hodnotu hash hesel ve službě Microsoft Entra Domain Services.

Pokud vaše organizace nesynchronizuje hodnoty hash hesel se službou Microsoft Entra Domain Services, osvědčeným postupem je vytvořit v Microsoft Entra ID jenom jednoho cloudového uživatele. Pak ho při vytváření clusteru přiřaďte jako správce clusteru a použijte ho pro účely správy. Můžete ho použít k získání kořenového přístupu k virtuálním počítačům přes SSH.

Informace o řešení potíží s ověřováním najdete v tomto průvodci.

Klienti používající OAuth pro připojení k bráně HDInsight pomocí zprostředkovatele ID SLUŽBY HDInsight

V nastavení zprostředkovatele ID SLUŽBY HDInsight je možné aktualizovat vlastní aplikace a klienty, kteří se připojují k bráně, a nejprve získat požadovaný token OAuth. Další informace najdete v tématu Ověřování aplikací .NET pomocí služeb Azure. Hodnoty klíčů vyžadované pro autorizaci přístupu k bráně HDInsight jsou:

  • Identifikátor URI prostředku OAuth: https://hib.azurehdinsight.net
  • AppId: 00001111-aaaa-2222-bbbb-3333cccc4444
  • Oprávnění: (název: Cluster.ReadWrite, ID: 8f89faa0-ffef-4007-974d-4989b39ad77d)

Po získání tokenu OAuth ho použijte v autorizační hlavičce požadavku HTTP na bránu clusteru (například https://< clustername-int.azurehdinsight.net>). Ukázkový příkaz curl pro rozhraní Apache Livy API může vypadat jako v tomto příkladu:

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

Pro použití Beeline a Livy můžete také postupovat podle vzorových kódů uvedených tady a nastavit klienta tak, aby používal OAuth a připojili se ke clusteru.

Často kladené dotazy

Jaká aplikace je vytvořená službou HDInsight v Microsoft Entra ID?

Pro každý cluster je aplikace třetí strany zaregistrovaná v Microsoft Entra ID s identifikátorem URI clusteru (například https://clustername.azurehdinsight.net).

V Microsoft Entra ID je souhlas vyžadován pro všechny aplikace třetích stran, aby mohl ověřovat uživatele nebo přistupovat k datům.

Rozhraní Microsoft Graph API umožňuje automatizovat souhlas, viz dokumentace k rozhraní API:

  • Registrace aplikace a udělení oprávnění Application.ReadWrite.All aplikaci pro přístup k Microsoft Graphu
  • Po vytvoření clusteru zadejte dotaz na aplikaci clusteru na základě identifikátoru URI.
  • Registrace souhlasu pro aplikaci

Když se cluster odstraní, HDInsight aplikaci odstraní a není potřeba vyčistit žádný souhlas.

Další kroky