Skip to content

设置 SAML#

功能可用性

  • 适用于企业计划。
  • 您需要是实例所有者或管理员才能启用和配置 SAML。

启用 SAML#

  1. 在 n8n 中,转到 Settings 设置 > SSO
  2. 记下 n8n 的 Redirect URL 重定向 URLEntity ID 实体 ID
    • 可选:如果你的 IdP 允许你从导入的 metadata 设置 SAML,请导航到 Entity ID 实体 ID URL 并保存 XML。
    • 可选:如果你在负载均衡器后面运行 n8n,请确保已配置 N8N_EDITOR_BASE_URL
  3. 使用你的身份提供商 (IdP) 设置 SAML。你需要 Redirect URL 重定向 URLEntity ID 实体 ID。你可能还需要 IdP 用户的电子邮件地址和名称。
  4. 在 IdP 中完成设置后,将 metadata XML 加载到 n8n 中。你可以使用 metadata URL 或原始 XML:
    • Metadata URL:将 IdP 中的 metadata URL 复制到 n8n 中的 Identity Provider Settings 身份提供商设置字段。
    • Raw XML 原始 XML:从 IdP 下载 metadata XML,将 Identity Provider Settings 身份提供商设置切换到 XML,然后将原始 XML 复制到 Identity Provider Settings 身份提供商设置中。
  5. 选择 Save settings 保存设置
  6. 选择 Test settings 测试设置以检查你的 SAML 设置是否正常工作。
  7. 将 SAML 2.0 设置为 Activated 已激活

SAML Request Type SAML 请求类型

n8n 不支持 POST 绑定。请将你的 IdP 配置为使用 HTTP 请求绑定。

Generic IdP setup 通用 IdP 设置#

配置 IdP 的步骤因你选择的 IdP 而异。以下是一些常见的设置任务:

  • 在你的 IdP 中为 n8n 创建应用程序。
  • 将 n8n 属性映射到 IdP 属性:
Value (IdP side) 值(IdP 端) Name format 名称格式 Name 名称
User email 用户电子邮件 URI Reference http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
User First Name 用户名字 URI Reference http://schemas.xmlsoap.org/ws/2005/05/identity/claims/firstname
User Last Name 用户姓氏 URI Reference http://schemas.xmlsoap.org/ws/2005/05/identity/claims/lastname
User Email 用户电子邮件 URI Reference http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn

Instance and project access provisioning 实例和项目访问配置#

从版本 1.122.2 开始,n8n 支持从你的 IdP 配置实例角色和项目角色。

你需要在 IdP 的组或单个用户上配置这些属性:

Value (IdP side) 值(IdP 端) Data type 数据类型 Name 名称
n8n_instance_role string n8n_instance_role
n8n_projects array n8n_projects

Settings 设置 > SSO 页面的表单上,找到标记为 User role provisioning 用户角色配置的下拉菜单。n8n 将此下拉菜单的默认值设置为 Managed in n8n 在 n8n 中管理

你可以选择将其设置为以下值之一:

  • Instance role 实例角色
    • 仅从 SAML 响应的 n8n_instance_role 属性读取每个配置用户的实例角色。项目访问仍仅在 n8n 内部管理。
    • 如果你的 IdP 上没有配置 n8n_instance_role 的值,则使用 global:member 角色作为后备。
  • Instance and project roles 实例和项目角色
    • 从 SAML 响应的 n8n_instance_rolen8n_projects 属性读取每个配置用户的实例角色和项目访问。

Existing access will be overwritten 现有访问将被覆盖

一旦启用"User role provisioning 用户角色配置",下次任何用户通过 SAML 登录时,他们在 n8n 内部被授予的任何访问权限(如果未反映在 n8n_instance_role 和 n8n_projects 中)将从该用户中删除。

激活此功能时,你需要在保存此更改之前下载两个 CSV 文件。这些文件包含你所有当前的访问设置,以便你需要时参考。

Configuring n8n_instance_role attribute 配置 n8n_instance_role 属性#

n8n_instance_role 属性是在你的 IdP 上为组或用户配置的字符串。

支持的实例角色有:

  • global:member
  • global:admin

Configuring n8n_projects attribute 配置 n8n_projects 属性#

n8n_projects 属性是在你的 IdP 上为组或用户配置的字符串数组。

此数组中的每个元素都需要遵循以下格式: <project-id>:<role>

例如:

  • bHsykgeFirmIhezz:viewer
  • 4K3zrg3DvlMFFTB7:editor
  • dCjnYuEpYOUBVaNe:admin

对于通过 IdP 启用项目访问配置时的现有访问设置,你可以在下载的 CSV 文件中找到项目 ID。

从头开始创建项目时,在浏览器中查看项目时从 URL 获取项目 ID:

例如,在 URL <your-domain>/projects/VVRWZaq5DRxaf9O1/workflows 中,项目 ID 是 VVRWZaq5DRxaf9O1

常见 IdP 的设置资源#

常见 IdP 的文档链接。

IdP 文档
Auth0 Configure Auth0 as SAML Identity Provider: Manually configure SSO integrations
Authentik Applications and the SAML Provider
Azure AD SAML authentication with Azure Active Directory
JumpCloud How to setup SAML (SSO) applications with JumpCloud (using Zoom as an example)
Keycloak Choose a Getting Started guide depending on your hosting.
Okta n8n provides a Workforce Identity setup guide as well as a step-by-step PDF guide
PingIdentity PingOne SSO