Skip to content

设置 OIDC#

功能可用性

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

设置和启用 OIDC#

  1. 在 n8n 中,转到设置 > SSO
  2. 选择身份验证协议下,从下拉菜单中选择 OIDC
  3. 复制显示的重定向 URL(例如,https://yourworkspace.app.n8n.cloud/rest/sso/oidc/callback)。

    负载均衡器或代理的额外配置

    如果您在负载均衡器后面运行 n8n,请确保设置 N8N_EDITOR_BASE_URL 环境变量

  4. 使用您的身份提供商 (IdP) 设置 OIDC。您需要:

    • 在您的 IdP 中创建新的 OIDC 客户端/应用程序。
    • 配置上一步的重定向 URL。
    • 记下您的 IdP 提供的客户端 ID客户端密钥
  5. 在您的 IdP 中,找到发现端点(也称为已知配置端点)。它通常具有以下格式:
    1
    https://your-idp-domain/.well-known/openid-configuration
    
  6. 在 n8n 中,完成 OIDC 配置:
    • Discovery Endpoint 发现端点:输入来自你的 IdP 的发现端点 URL。
    • Client ID 客户端 ID:输入你在 IdP 注册应用程序时收到的客户端 ID。
    • Client Secret 客户端密钥:输入你在 IdP 注册应用程序时收到的客户端密钥。
  7. 选择 Save settings 保存设置
  8. 将 OIDC 设置为 Activated 已激活

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

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

你需要向 OIDC 授权服务器添加一个名为 n8n 的额外作用域。

在此 n8n 作用域上,你需要添加这两个声明:

Name 名称 Data type 数据类型 Scope 作用域 Token type 令牌类型
n8n_instance_role string n8n ID
n8n_projects string array n8n ID

这两个声明需要始终包含在授权服务器的"ID Token"中。

确保在有权访问 n8n 的身份提供商的用户组中配置了这两个属性。

在 n8n 的 Settings 设置 > SSO 页面的表单中,你会找到一个标记为"User role provisioning 用户角色配置"的下拉菜单。

默认情况下,这设置为"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 文件。这些文件包含你所有当前的访问设置,以便你需要时参考。

配置 n8n_instance_role 属性

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

支持的实例角色有:

  • global:member
  • global:admin

配置 n8n_projects 属性

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

此数组中的每个元素都需要遵循以下格式: :

例如:

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

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

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

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

Provider-specific OIDC setup#

Okta#

The steps to setup OIDC in Okta are similar as with Auth0 described below.

For Okta, you can download a visual step-by-step guide as PDF:

n8n-oidc-with-okta.pdf

Auth0#

  1. 在 Auth0 中创建应用程序
    • 登录到您的 Auth0 仪表板。
    • 转到应用程序 > 应用程序
    • 点击创建应用程序
    • 输入名称(例如,"n8n SSO")并选择常规 Web 应用程序
    • 点击创建
  2. 配置应用程序
    • 转到新应用程序的设置选项卡。
    • 允许的回调 URL:从设置 > SSO > OIDC 添加您的 n8n 重定向 URL。
    • 允许的 Web 来源:添加您的 n8n 基础 URL(例如,https://yourworkspace.app.n8n.cloud)。
    • 点击保存更改
  3. 获取您的凭据
    • 客户端 ID:在设置选项卡中找到。
    • 客户端密钥:在设置选项卡中找到。
    • 发现端点https://{your-auth0-domain}.auth0.com/.well-known/openid-configuration
  4. 在 n8n 中,完成 OIDC 配置:
    • 发现端点:输入来自 Auth0 的发现端点 URL。
    • 客户端 ID:输入您在 Auth0 设置中找到的客户端 ID。
    • 客户端密钥:输入您在 Auth0 设置中找到的客户端密钥。
  5. 选择保存设置
  6. 将 OIDC 设置为已激活

发现端点参考#

  • Google 发现端点示例
    1
    https://accounts.google.com/.well-known/openid-configuration
    
  • Microsoft Azure AD 发现端点示例
    1
    https://login.microsoftonline.com/{tenant-id}/v2.0/.well-known/openid-configuration
    
  • Auth0 发现端点示例
    1
    https://{your-domain}.auth0.com/.well-known/openid-configuration
    
  • Okta 发现端点示例
    1
    https://{your-domain}.okta.com/.well-known/openid-configuration
    
  • Amazon Cognito 发现端点示例:
    1
    https://cognito-idp.{region}.amazonaws.com/{user-pool-id}/.well-known/openid-configuration