将 Microsoft Entra 用户同步到 HDInsight 群集

具有企业安全性套餐 (ESP) 的 HDInsight 群集可对 Microsoft Entra 用户使用强身份验证,还可使用Azure 基于角色的访问控制 (Azure RBAC) 策略。 将用户和组添加到 Microsoft Entra ID 时,可以同步需要访问群集的用户。

先决条件

如果你尚未执行此操作,请使用企业安全性套餐创建 HDInsight 群集

新增 Microsoft Entra 用户

若要查看主机,请打开 Ambari Web UI。 每个节点都会使用新的无人参与升级设置进行更新。

  1. Azure 门户中,导航到与 ESP 群集相关联的 Microsoft Entra 目录。

  2. 从左侧菜单选择“所有用户”,然后选择“新建用户”。

    Azure 门户 - 用户和组 - 所有用户。

  3. 完成新用户表单。 选择所创建的组,以便分配基于群集的权限。 在此示例中,请创建名为“HiveUsers”的组,以便向其分配新用户。 示例说明介绍如何创建 ESP 群集,其中包括如何添加 HiveUsersAAD DC Administrators 这两个组。

    Azure 门户 - 用户窗格 - 选择组。

  4. 选择创建

使用 Apache Ambari REST API 来同步用户

在群集创建过程中指定的用户组是在创建时同步的。 用户同步每小时自动进行一次。 若要立即同步用户,或者要同步的组不是群集创建过程中指定的组,请使用 Ambari REST API。

以下方法通过 Ambari REST API 使用 POST。 有关详细信息,请参阅使用 Apache Ambari REST API 管理 HDInsight 群集

  1. 使用 ssh 命令连接到群集。 编辑命令,将 CLUSTERNAME 替换为你的群集的名称,然后输入该命令:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.cn
    
  2. 进行身份验证后,输入以下命令:

    curl -u admin:PASSWORD -sS -H "X-Requested-By: ambari" \
    -X POST -d '{"Event": {"specs": [{"principal_type": "groups", "sync_type": "existing"}]}}' \
    "https://CLUSTERNAME.azurehdinsight.cn/api/v1/ldap_sync_events"
    

    响应应如下所示:

    {
      "resources" : [
        {
          "href" : "http://<ACTIVE-HEADNODE-NAME>.<YOUR DOMAIN>.com:8080/api/v1/ldap_sync_events/1",
          "Event" : {
            "id" : 1
          }
        }
      ]
    }
    
  3. 若要查看同步状态,执行一个新的 curl 命令:

    curl -u admin:PASSWORD https://CLUSTERNAME.azurehdinsight.cn/api/v1/ldap_sync_events/1
    

    响应应如下所示:

    {
      "href" : "http://<ACTIVE-HEADNODE-NAME>.YOURDOMAIN.com:8080/api/v1/ldap_sync_events/1",
      "Event" : {
        "id" : 1,
        "specs" : [
          {
            "sync_type" : "existing",
            "principal_type" : "groups"
          }
        ],
        "status" : "COMPLETE",
        "status_detail" : "Completed LDAP sync.",
        "summary" : {
          "groups" : {
            "created" : 0,
            "removed" : 0,
            "updated" : 0
          },
          "memberships" : {
            "created" : 1,
            "removed" : 0
          },
          "users" : {
            "created" : 1,
            "removed" : 0,
            "skipped" : 0,
            "updated" : 0
          }
        },
        "sync_time" : {
          "end" : 1497994072182,
          "start" : 1497994071100
        }
      }
    }
    
  4. 此结果显示,状态为“完成”,创建了一个新用户且为该用户指定了成员身份。 在此示例中,用户分配到“HiveUsers”同步的 LDAP 组,因为用户已在 Microsoft Entra ID 中添加到该组。

    注意

    前一方法仅同步创建群集时在域设置的访问用户组属性中指定的 Microsoft Entra 组。 有关详细信息,请参阅创建 HDInsight 群集

验证新增的 Microsoft Entra 用户

打开Apache Ambari Web UI,验证是否已新增 Microsoft Entra 用户。 浏览到 https://CLUSTERNAME.azurehdinsight.cn ,对 Ambari Web UI 进行访问。 输入群集管理员用户名和密码。

  1. 在 Ambari 仪表板中,选择“管理”菜单下的“管理 Ambari”。

    Apache Ambari 仪表板 - 管理 Ambari。

  2. 在页面左侧的“用户 + 组管理”菜单组下选择“用户”。

    HDInsight 的“用户和组”菜单。

  3. 新用户应在“用户”表中列出。 “类型”设置为 LDAP 而非 Local

    HDInsight Microsoft Entra 用户页面概述。

作为新用户登录到 Ambari

新用户(或任何其他域用户)在登录到 Ambari 时,使用完整的 Microsoft Entra 用户名和域凭据。 Ambari 显示用户别名,该别名是用户在 Microsoft Entra ID 中的显示名称。 新示例用户的用户名为 hiveuser3@contoso.com。 在 Ambari 中,这个新用户显示为 hiveuser3,但该用户是作为 hiveuser3@contoso.com 登录到 Ambari 的。

另请参阅