Skip to content

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 属性

  1. 在 Azure AD 门户中,导航到您的 n8n 企业应用程序。
  2. 转到 Single sign-on 单点登录 > Attributes & Claims 属性和声明
  3. 确保配置了以下标准属性:

    Claim Name 声明名称 Source Attribute 源属性
    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress user.mail
    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/firstname user.givenname
    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/lastname user.surname
    http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn user.userprincipalname

步骤 2:添加 n8n_instance_role 声明

此声明使用条件逻辑根据 Azure AD 组成员身份发出不同的角色值。

  1. Attributes & Claims 属性和声明中,点击 Add new claim 添加新声明
  2. 配置基本设置:
    • Name 名称n8n_instance_role
    • Namespace 命名空间:留空
    • Source 源Attribute
  3. 展开 Claim conditions 声明条件并点击 Add condition 添加条件
  4. 按优先级顺序为每个 Azure AD 组添加条件:

    User Type 用户类型 Scoped Groups 范围组 Source 源 Value 值
    Members n8n-chatusers Attribute global:chatUser
    Members n8n-users Attribute global:member
    Members n8n-admins Attribute global:admin
    Members n8n-owners Attribute global:owner

条件顺序

条件按顺序求值。将最高权限的组(owners)放在最后。

  1. 点击 Save 保存

测试配置#

  1. 在 n8n 中,转到 Settings 设置 > SSO
  2. User role provisioning 用户角色配置设置为 Instance role
  3. 点击 Test settings 测试设置
  4. 验证 SAML 响应是否显示正确的 n8n_instance_role 值。

故障排除#

声明未出现在 SAML 响应中

  • 验证用户是否为至少一个已配置组的成员。
  • 检查组是否已分配给企业应用程序。
  • 确保条件中已将 Attribute 配置为源。
  • 使用浏览器扩展插件(如"SAML Chrome Panel")查看应用程序的 SAML 响应。

用户获得了错误的角色

  • 检查条件顺序(最高权限的组应在最后)。

参考资料#