设置 SAML#
功能可用性
- 适用于企业计划。
- 您需要是实例所有者或管理员才能启用和配置 SAML。
启用 SAML#
- 在 n8n 中,转到 Settings 设置 > SSO。
- 记下 n8n 的 Redirect URL 重定向 URL 和 Entity ID 实体 ID。
- 可选:如果你的 IdP 允许你从导入的 metadata 设置 SAML,请导航到 Entity ID 实体 ID URL 并保存 XML。
- 可选:如果你在负载均衡器后面运行 n8n,请确保已配置
N8N_EDITOR_BASE_URL。
- 使用你的身份提供商 (IdP) 设置 SAML。你需要 Redirect URL 重定向 URL 和 Entity ID 实体 ID。你可能还需要 IdP 用户的电子邮件地址和名称。
- 在 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 身份提供商设置中。
- 选择 Save settings 保存设置。
- 选择 Test settings 测试设置以检查你的 SAML 设置是否正常工作。
- 将 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角色作为后备。
- 仅从 SAML 响应的
- Instance and project roles 实例和项目角色
- 从 SAML 响应的
n8n_instance_role和n8n_projects属性读取每个配置用户的实例角色和项目访问。
- 从 SAML 响应的
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:memberglobal:admin
Configuring n8n_projects attribute 配置 n8n_projects 属性#
n8n_projects 属性是在你的 IdP 上为组或用户配置的字符串数组。
此数组中的每个元素都需要遵循以下格式:
<project-id>:<role>
例如:
bHsykgeFirmIhezz:viewer4K3zrg3DvlMFFTB7:editordCjnYuEpYOUBVaNe: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 |