Share via


Azure HDInsight ID Broker (HIB)

Este artigo descreve como configurar e usar o recurso Azure HDInsight ID Broker. Você pode usar esse recurso para obter autenticação OAuth moderna para o Apache Ambari enquanto tem imposição de autenticação multifator sem precisar de hashes de senha herdados nos Serviços de Domínio Microsoft Entra.

Descrição geral

O HDInsight ID Broker simplifica configurações de autenticação complexas nos seguintes cenários:

  • Sua organização depende da federação para autenticar usuários para acessar recursos de nuvem. Anteriormente, para usar clusters do Pacote de Segurança Empresarial do HDInsight, era necessário habilitar a sincronização de hash de senha do seu ambiente local para o Microsoft Entra ID. Este requisito pode ser difícil ou indesejável para algumas organizações.
  • Sua organização deseja impor a autenticação multifator para acesso baseado na Web ou HTTP ao Apache Ambari e outros recursos de cluster.

O HDInsight ID Broker fornece a infraestrutura de autenticação que permite a transição de protocolo de OAuth (moderno) para Kerberos (legado) sem a necessidade de sincronizar hashes de senha com os Serviços de Domínio Microsoft Entra. Essa infraestrutura consiste em componentes executados em uma máquina virtual (VM) do Windows Server com o nó Agente de ID HDInsight habilitado, juntamente com nós de gateway de cluster.

Use a tabela a seguir para determinar a melhor opção de autenticação com base nas necessidades da sua organização.

Opções de autenticação Configuração do HDInsight Fatores a considerar
Totalmente OAuth Pacote de Segurança Empresarial + Agente de ID HDInsight Opção mais segura. (A autenticação multifator é suportada.) Não é necessário passar a sincronização de hash. Nenhum acesso ssh/kinit/keytab para contas locais, que não têm hash de senha nos Serviços de Domínio Microsoft Entra. Contas somente na nuvem ainda podem ssh/kinit/keytab. Acesso baseado na Web ao Ambari através do OAuth. Requer a atualização de aplicativos herdados (por exemplo, JDBC/ODBC) para oferecer suporte ao OAuth.
OAuth + Autenticação Básica Pacote de Segurança Empresarial + Agente de ID HDInsight Acesso baseado na Web ao Ambari através do OAuth. Os aplicativos herdados continuam a usar autenticação básica. A autenticação multifator deve ser desabilitada para acesso de autenticação básica. Não é necessário passar a sincronização de hash. Nenhum acesso ssh/kinit/keytab para contas locais, que não têm hash de senha nos Serviços de Domínio Microsoft Entra. Contas somente na nuvem ainda podem ssh/kinit.
Autenticação totalmente básica Pacote de Segurança Enterprise A maioria é semelhante às configurações locais. É necessária a sincronização de hash de senha com os Serviços de Domínio Microsoft Entra. As contas locais podem ssh/kinit ou usar keytab. A autenticação multifator deve ser desabilitada se o armazenamento de backup for o Azure Data Lake Storage Gen2.

O diagrama a seguir mostra o fluxo de autenticação moderno baseado em OAuth para todos os usuários, incluindo usuários federados, após a habilitação do HDInsight ID Broker:

Diagram that shows authentication flow with HDInsight ID Broker.

Neste diagrama, o cliente (ou seja, um navegador ou aplicativo) precisa adquirir o token OAuth primeiro. Em seguida, ele apresenta o token para o gateway em uma solicitação HTTP. Se já tiver iniciado sessão noutros serviços do Azure, como o portal do Azure, pode iniciar sessão no cluster HDInsight com uma experiência de início de sessão único.

Ainda pode haver muitos aplicativos herdados que suportam apenas a autenticação básica (ou seja, nome de usuário e senha). Para esses cenários, você ainda pode usar a autenticação básica HTTP para se conectar aos gateways de cluster. Nessa configuração, você deve garantir a conectividade de rede dos nós de gateway para o ponto de extremidade dos Serviços de Federação do Ative Directory (AD FS) para garantir uma linha de visão direta dos nós de gateway.

O diagrama a seguir mostra o fluxo de autenticação básica para usuários federados. Primeiro, o gateway tenta concluir a autenticação usando o fluxo ROPC. Caso não haja hashes de senha sincronizados com a ID do Microsoft Entra, ele volta a descobrir o ponto de extremidade do AD FS e conclui a autenticação acessando o ponto de extremidade do AD FS.

Diagram that shows architecture with basic authentication.

Habilitar o agente de ID do HDInsight

Para criar um cluster do Pacote de Segurança Empresarial com o HDInsight ID Broker habilitado,

  1. Inicie sessão no portal do Azure.
  2. Siga as etapas básicas de criação para um cluster do Enterprise Security Package. Para obter mais informações, consulte Criar um cluster HDInsight com o Pacote de Segurança Empresarial.
  3. Selecione Ativar agente de ID do HDInsight.

O recurso HDInsight ID Broker adiciona uma VM extra ao cluster. Essa VM é o nó do Agente de ID do HDInsight e inclui componentes de servidor para dar suporte à autenticação. O nó HDInsight ID Broker é um domínio associado ao domínio dos Serviços de Domínio Microsoft Entra.

Diagram that shows option to enable HDInsight ID Broker.

Utilizar modelos do Azure Resource Manager

Se você adicionar uma nova função chamada idbrokernode com os seguintes atributos ao perfil de computação do modelo, o cluster será criado com o nó Agente de ID do HDInsight habilitado:

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

Para ver uma amostra completa de um modelo ARM, consulte o modelo publicado aqui.

Integração de ferramentas

As ferramentas do HDInsight são atualizadas para oferecer suporte nativo ao OAuth. Use essas ferramentas para acesso moderno baseado em OAuth aos clusters. O plug-in IntelliJ do HDInsight pode ser usado para aplicativos baseados em Java, como o Scala. Ferramentas Spark e Hive para Visual Studio Code podem ser usadas para trabalhos PySpark e Hive. As ferramentas suportam trabalhos em lote e interativos.

Acesso SSH sem hash de senha nos Serviços de Domínio do Microsoft Entra

Opções de SSH Fatores a considerar
Conta de VM local (por exemplo, sshuser) Você forneceu essa conta no momento da criação do cluster. Não há autenticação Kerberos para essa conta.
Conta somente na nuvem (por exemplo, alice@contoso.onmicrosoft.com) O hash de senha está disponível nos Serviços de Domínio do Microsoft Entra. A autenticação Kerberos é possível via SSH Kerberos.
Conta local (por exemplo, alice@contoso.com) A autenticação SSH Kerberos só é possível se um hash de senha estiver disponível nos Serviços de Domínio do Microsoft Entra. Caso contrário, esse usuário não poderá SSH para o cluster.

Para SSH para uma VM associada a um domínio ou para executar o kinit comando, você deve fornecer uma senha. A autenticação SSH Kerberos requer que o hash esteja disponível nos Serviços de Domínio Microsoft Entra. Se quiser usar SSH apenas para cenários administrativos, você pode criar uma conta somente na nuvem e usá-la para SSH para o cluster. Outros usuários locais ainda podem usar ferramentas Ambari ou HDInsight ou autenticação básica HTTP sem ter o hash de senha disponível nos Serviços de Domínio Microsoft Entra.

Se sua organização não estiver sincronizando hashes de senha com os Serviços de Domínio do Microsoft Entra, como prática recomendada, crie um usuário somente na nuvem no Microsoft Entra ID. Em seguida, atribua-o como administrador de cluster ao criar o cluster e use-o para fins de administração. Você pode usá-lo para obter acesso root às VMs via SSH.

Para solucionar problemas de autenticação, consulte este guia.

Clientes que usam o OAuth para se conectar a um gateway HDInsight com o HDInsight ID Broker

Na configuração do HDInsight ID Broker, os aplicativos e clientes personalizados que se conectam ao gateway podem ser atualizados para adquirir primeiro o token OAuth necessário. Para obter mais informações, consulte Como autenticar aplicativos .NET com serviços do Azure. Os principais valores necessários para autorizar o acesso a um gateway HDInsight são:

  • Uri de recurso OAuth: https://hib.azurehdinsight.net
  • Identificação: 7865c1d2-f040-46cc-875f-831a1ef6a28a
  • Permissão: (nome: Cluster.ReadWrite, id: 8f89faa0-ffef-4007-974d-4989b39ad77d)

Depois de adquirir o token OAuth, use-o no cabeçalho de autorização da solicitação HTTP para o gateway de cluster (por exemplo, https://< clustername-int.azurehdinsight.net>). Um exemplo de comando curl para Apache Livy API pode se parecer com este exemplo:

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

Para usar Beeline e Livy, você também pode seguir os códigos de exemplo fornecidos aqui para configurar seu cliente para usar OAuth e se conectar ao cluster.

FAQ

Qual aplicativo é criado pelo HDInsight no Microsoft Entra ID?

Para cada cluster, um aplicativo de terceiros é registrado no Microsoft Entra ID com o uri do cluster como identifierUri (como https://clustername.azurehdinsight.net).

No Microsoft Entra ID, o consentimento é necessário para todos os aplicativos de terceiros antes que ele possa autenticar usuários ou acessar dados.

A api do Microsoft Graph permite automatizar o consentimento, consulte a documentação da API A sequência para automatizar o consentimento é:

  • Registre um aplicativo e conceda permissões Application.ReadWrite.All ao aplicativo, para acessar o Microsoft Graph
  • Depois que um cluster é criado, consulta o aplicativo de cluster com base no uri do identificador
  • Registar o consentimento para a aplicação

Quando o cluster é excluído, o HDInsight exclui o aplicativo e não há necessidade de limpar qualquer consentimento.

Próximos passos