Azure AD SAML 设置#
本文档提供了配置 Azure AD 以通过 SAML 属性向 n8n 发送角色信息的说明。这使得可以基于 Azure AD 组成员身份自动分配角色。
前提条件#
您需要一个具有企业应用程序访问权限的 Azure AD 帐户,以及 n8n SAML 设置中的重定向 URL 和实体 ID。
请先阅读设置 SAML 指南。
n8n 的要求#
n8n 要求在 SAML 断言中包含一个自定义 SAML 属性:
| 属性名称 | 数据类型 | 用途 |
|---|---|---|
| n8n_instance_role | String | 控制用户在 n8n 中的全局角色 |
n8n_instance_role 的有效值:
| 值 | 描述 |
|---|---|
global:owner |
完整的实例所有者权限 |
global:admin |
管理员权限 |
global:member |
普通成员权限(未指定时的默认值) |
global:chatUser |
n8n 中受限的非技术角色,用于通过 Chat Hub 界面安全地与 AI Agent 交互 |
设置#
步骤 1:配置标准 SAML 属性
- 在 Azure AD 门户中,导航到您的 n8n 企业应用程序。
- 转到 Single sign-on 单点登录 > Attributes & Claims 属性和声明。
-
确保配置了以下标准属性:
Claim Name 声明名称 Source Attribute 源属性 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressuser.mail http://schemas.xmlsoap.org/ws/2005/05/identity/claims/firstnameuser.givenname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/lastnameuser.surname http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upnuser.userprincipalname
步骤 2:添加 n8n_instance_role 声明
此声明使用条件逻辑根据 Azure AD 组成员身份发出不同的角色值。
- 在 Attributes & Claims 属性和声明中,点击 Add new claim 添加新声明。
- 配置基本设置:
- Name 名称:
n8n_instance_role - Namespace 命名空间:留空
- Source 源:
Attribute
- Name 名称:
- 展开 Claim conditions 声明条件并点击 Add condition 添加条件。
-
按优先级顺序为每个 Azure AD 组添加条件:
User Type 用户类型 Scoped Groups 范围组 Source 源 Value 值 Members n8n-chatusers Attribute global:chatUserMembers n8n-users Attribute global:memberMembers n8n-admins Attribute global:adminMembers n8n-owners Attribute global:owner
条件顺序
条件按顺序求值。将最高权限的组(owners)放在最后。
- 点击 Save 保存。
测试配置#
- 在 n8n 中,转到 Settings 设置 > SSO。
- 将 User role provisioning 用户角色配置设置为
Instance role。 - 点击 Test settings 测试设置。
- 验证 SAML 响应是否显示正确的
n8n_instance_role值。
故障排除#
声明未出现在 SAML 响应中
- 验证用户是否为至少一个已配置组的成员。
- 检查组是否已分配给企业应用程序。
- 确保条件中已将
Attribute配置为源。 - 使用浏览器扩展插件(如"SAML Chrome Panel")查看应用程序的 SAML 响应。
用户获得了错误的角色
- 检查条件顺序(最高权限的组应在最后)。