다음을 통해 공유

为 Azure Cosmos DB for MongoDB vCore 群集配置Microsoft Entra ID 身份验证

本文介绍如何为 Azure Cosmos DB for MongoDB vCore 配置 Microsoft Entra ID 身份验证 。 本指南中的步骤配置现有 Azure Cosmos DB for MongoDB vCore 群集,以使用 Microsoft Entra ID 身份验证和人类标识(当前登录的帐户)或 Microsoft Entra ID 安全主体(例如托管标识)。 Microsoft Entra ID 身份验证允许使用组织的现有标识安全无缝地访问数据库。 本指南介绍设置身份验证、注册用户或服务主体以及验证配置的步骤。

创建 Azure Cosmos DB for MongoDB vCore 群集时,群集配置为默认使用本机身份验证。 若要使用 Entra ID 启用身份验证, 请启用 Entra ID 身份验证方法 ,并将 Entra ID 用户添加到 群集。

先决条件

获取标识元数据

获取 Entra ID 用户管理的唯一标识符

首先,获取用于管理群集上的 Entra ID 主体的唯一标识符。

  1. 使用 .. 获取az ad signed-in-user的详细信息。

    az ad signed-in-user show
    
  2. 使用 az ad user show 获取另一个帐户的详细信息。

    az ad user show --id kai@adventure-works.com
    
  3. 该命令将输出包含各种字段的 JSON 响应。

    {
      "@odata.context": "<https://microsoftgraph.chinacloudapi.cn/v1.0/$metadata#users/$entity>",
      "businessPhones": [],
      "displayName": "Kai Carter",
      "givenName": "Kai",
      "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
      "jobTitle": "Senior Sales Representative",
      "mail": "<kai@adventure-works.com>",
      "mobilePhone": null,
      "officeLocation": "Redmond",
      "preferredLanguage": null,
      "surname": "Carter",
      "userPrincipalName": "<kai@adventure-works.com>"
    }
    
  4. 记录 id 属性的值。 此属性是主体的唯一标识符,有时称为 主体 ID。 在接下来的步骤中将使用此值。

使用唯一标识符获取友好名称

如果需要使用唯一标识符获取友好名称,请执行以下步骤。

  1. 使用 az ad user show 获取另一个帐户的详细信息。

    az ad user show --id aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    
  2. 该命令将输出包含各种字段的 JSON 响应。

    {
      "@odata.context": "<https://microsoftgraph.chinacloudapi.cn/v1.0/$metadata#users/$entity>",
      "businessPhones": [],
      "displayName": "Kai Carter",
      "givenName": "Kai",
      "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
      "jobTitle": "Senior Sales Representative",
      "mail": "<kai@adventure-works.com>",
      "mobilePhone": null,
      "officeLocation": "Redmond",
      "preferredLanguage": null,
      "surname": "Carter",
      "userPrincipalName": "<kai@adventure-works.com>"
    }
    
  3. 请注意maildisplayName属性的值。

管理群集身份验证方法

使用以下步骤在现有群集上启用 Microsoft Entra ID 身份验证方法。 然后,将映射到已登录标识的 Entra ID 用户添加到群集。 只能在群集上启用 本机 DocumentDB 身份验证本机 DocumentDB 和 Microsoft Entra ID 身份验证 方法。

  1. 在群集边栏的 “设置”下,选择“ 身份验证”。

  2. “身份验证方法” 部分中,选择 “本机 DocumentDB 和 Microsoft Entra ID” 以启用 Microsoft Entra ID 身份验证。

    显示如何在现有群集上启用 Microsoft Entra ID 身份验证方法的屏幕截图。

  3. 选择 “保存” 以确认身份验证方法更改。

    显示用于确认现有群集上身份验证方法更改的“保存”按钮位置的屏幕截图。

查看群集上已启用的身份验证方法

按照以下步骤查看群集上当前已启用的身份验证方法。

  1. 在群集边栏的 “设置”下,选择“ 身份验证”。

  2. “身份验证方法 ”部分中,检查群集上当前已启用的身份验证方法。

    显示如何在群集上查看当前启用的身份验证方法的屏幕截图。

管理群集上的 Entra ID 用户

按照以下步骤向群集添加或删除 管理 Entra ID 用户

  1. 选择 启用了Microsoft Entra ID 身份验证方法的群集。

  2. 在群集边栏的 “设置”下,选择“ 身份验证”。

  3. 若要添加管理 Entra ID 用户,请按照以下步骤操作:

    1. “Microsoft Entra ID 身份验证 ”部分中,选择“ +添加Microsoft Entra ID” 以打开允许向群集添加 Entra ID 用户和安全主体的侧面板。

      显示如何打开允许向群集添加Microsoft Entra ID 用户和安全主体的侧面板的屏幕截图。

    2. “选择 Microsoft Entra ID 角色” 侧边面板中,选择一个或多个 Entra ID 用户,并通过点击 “选择” 确认您的选择。

      屏幕截图显示如何选择管理 Microsoft Entra ID 用户和安全主体并将其添加到群集。

    注释

    在将管理Microsoft Entra ID用户添加到群集时,其标识符将以aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb格式而非人工可读名称(例如kai@adventure-works.com)的形式添加到群集。

  4. 选择 “保存” 以确认身份验证方法更改。

  5. 若要从群集中删除管理 Entra ID 用户,请执行以下作:

    1. 获取要从群集中删除的用户的 Entra ID 标识符

    2. “Microsoft Entra ID 身份验证 ”部分中,选择用户标识符旁边的 “删除 ”,以从群集中删除该用户。

    显示用于从群集中删除Microsoft Entra ID 用户和安全主体的“删除”图标的位置的屏幕截图。

    重要

    选择 “删除” 后,用户将从群集中删除。

查看群集上的 Entra ID 用户

在群集上查看 管理用户 时,群集在预配过程中始终会创建一个本地内置的管理用户,并列出添加到群集的所有管理 Entra ID 用户。

请按以下步骤查看添加到群集的所有管理 Entra ID 用户

  1. 选择 启用了Microsoft Entra ID 身份验证方法的群集。

  2. 在群集边栏的 “设置”下,选择“ 身份验证”。

  3. “Microsoft Entra ID 身份验证 ”部分中,查找添加到群集的管理 Entra ID 用户的对象 ID(唯一标识符)列表。

    显示如何查看群集上管理Microsoft Entra ID 用户列表的屏幕截图。

  4. 若要使用唯一标识符获取友好名称, 请执行以下步骤

注释

使用一个内置本机 DocumentDB 用户创建 Azure Cosmos DB for MongoDB vCore 群集。 完成群集预配后,可以 添加更多本机 DocumentDB 用户 。 Microsoft Entra ID 用户添加到群集后,将成为同一群集上已定义的本机 DocumentDB 用户之外的附加用户。

连接至群集

可以使用首选语言的驱动程序中的连接 URI 或自定义设置对象连接到群集。 在任一选项中,必须将 方案 设置为 mongodb+srv 连接到群集。 主机位于*.global.mongocluster.cosmos.azure.com*.mongocluster.cosmos.azure.com域,具体取决于使用的是当前群集还是全局读写终结点+srv 方案和 *.global.* 主机可确保客户端在多群集配置中动态连接到适当的可写群集,即使发生区域交换操作,也是如此。 在单群集配置中,可以不分青红皂白地使用任一连接字符串。

还必须启用 tls 设置。 其余建议的设置是最佳实践配置。

选项 价值
方案 mongodb+srv
主机 <cluster-name>.global.mongocluster.cosmos.azure.com<cluster-name>.mongocluster.cosmos.azure.com
tls true
authMechanism MONGODB-OIDC
retrywrites false
maxIdleTimeMS 120000

在 Azure 门户的群集属性页上的 “设置”下,打开 连接字符串“连接字符串”页包含群集上启用的身份验证方法的连接字符串。 Microsoft Entra ID 连接字符串位于 “Microsoft Entra ID ”部分中。

  • 全球

    mongodb+srv://<cluster-name>.global.mongocluster.cosmos.azure.com/?tls=true&authMechanism=MONGODB-OIDC&retrywrites=false&maxIdleTimeMS=120000
    
  • 群集

    mongodb+srv://<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=MONGODB-OIDC&retrywrites=false&maxIdleTimeMS=120000