Microsoft Entra ID 群组名称同步
本教程由社区贡献,不受 Open WebUI 团队官方维护或审核。它仅作为演示,说明如何根据你的具体场景自定义 Open WebUI。想参与贡献?请查看贡献教程。
默认情况下,当您为 Open WebUI 配置 Microsoft Entra ID OAuth 和自动群组创建时,安全组会使用其**群组 ID(GUID)**而非人类可读的群组名称进行同步。这是 Microsoft 的一个限制——ID 令牌默认不包含群组显示名称。
本教程说明如何配置 Microsoft Entra ID 以返回群组名称而非 ID,从而在 Open WebUI 中使用群组时获得更好的用户体验。
前提条件
- 已配置 Microsoft OAuth 的 Open WebUI 实例
- 具 有修改应用注册权限的 Azure 账户
- 可访问 Microsoft Entra 管理中心
- 对 Microsoft Entra ID 应用程序配置有基本了解
概述
要在 Open WebUI 中获取人类可读的群组名称,需要:
- 配置应用注册以在令牌中包含群组
- 修改应用程序清单以使用
cloud_displayname - 将
groupMembershipClaims设置为仅ApplicationGroup - 将安全组分配给企业应用程序
- 为 OAuth 群组管理 配置 Open WebUI 环境变量
清单中的 cloud_displayname 属性仅在 groupMembershipClaims 设置为 ApplicationGroup 时有效。如果包含其他选项(如 SecurityGroup 或 All),令牌将恢复使用群组 ID 而非名称。
步骤 1:在应用注册中配置令牌声明
- 导航至 Microsoft Entra 管理中心 > App registrations(应用注册)
- 选择您的 Open WebUI 应用程序
- 在左侧菜单中转到 Token configuration(令牌配置)
- 点击 Add groups claim(添加群组声明)
- 选择 Security groups(安全组)(或适合您需求的群组类型)
- 在 Customize token properties by type(按类型自定义令牌属性) 下,确保为以下令牌类型添加群组:
- ID 令牌
- 访问令牌
- 点击 Add(添加)
步骤 2:修改应用程序清单
这是启用群组名称而非 ID 的关键步骤。
- 在应用注册中,在左侧菜单中转到 Manifest(清单)
- 找到
optionalClaims部分 - 为每种令牌类型在
additionalProperties数组中添加cloud_displayname
清单应如下所示:
"optionalClaims": {
"idToken": [
{
"name": "groups",
"source": null,
"essential": false,
"additionalProperties": [
"cloud_displayname"
]
}
],
"accessToken": [
{
"name": "groups",
"source": null,
"essential": false,
"additionalProperties": [
"cloud_displayname"
]
}
],
"saml2Token": [
{
"name": "groups",
"source": null,
"essential": false,
"additionalProperties": [
"cloud_displayname"
]
}
]
}- 关键:将
groupMembershipClaims设置为仅ApplicationGroup:
"groupMembershipClaims": "ApplicationGroup"如果 groupMembershipClaims 包含其他值(如 SecurityGroup 或 All),cloud_displayname 属性将被忽略,令牌将包含群组 ID 而非名称。有关更多详情,请参阅 Microsoft 的可选声明文档。
- 点击 Save(保存)
步骤 3:将群组分配给企业应用程序
使用 ApplicationGroup 时,只有明确分配给企业应用程序的群组才会包含在令牌中。
- 导航至 Microsoft Entra 管理中心 > Enterprise applications(企业应用程序)
- 找到并选择您的 Open WebUI 应用程序
- 在左侧菜单中转到 Users and groups(用户和群组)
- 点击 Add user/group(添加用户/群组)
- 选择要与 Open WebUI 同步的安全组
- 点击 Assign(分配)
当用户属于多个群组时,确保所有相关群组都已分配给企业应用程序。请注意,只有在此处明确分配的群组才会出现在用户的令牌中,并随后同步到 Open WebUI。
步骤 4:配置 API 权限
确保您的应用注册具有所需的 Microsoft Graph 权限:
- 在应用注册中,转到 API permissions(API 权限)
- 点击 Add a permission(添加权限) > Microsoft Graph > Delegated permissions(委托权限)
- 如果尚未添加,请从 OpenID 部分添加以下权限:
openidemailprofile
- 点击 Grant admin consent for [your organization](为 [您的组织] 授予管理员同意)