Okta 提供云软件,帮助企业管理和保护用户对现代应用程序的身份验证,并帮助开发人员将身份控制功能构建到应用程序、网站、Web 服务和设备中。您可以将 Okta 与 Cloudflare One 集成,并基于用户身份和群组成员资格构建规则。Cloudflare One 支持使用 OIDC(默认)或 SAML 协议的 Okta 集成。
此外,您可以将 Okta 配置为使用 Cloudflare One 用户风险评分中的风险信息来创建 SSO 级别的策略。更多信息,请参考将风险评分发送到 Okta。
- 具有任意订阅套餐(包括免费版)的 Zero Trust 组织
- 具有
Access Edit权限的 Cloudflare One 管理员角色
- SP 发起的 SSO:当用户访问 Access 应用程序时,Access 将其重定向到 Okta 登录。
- SCIM 预配:同步 Okta 群组并自动取消用户预配。SCIM 目前需要单独的自定义 OIDC 应用程序。
使用 Okta Integration Network (OIN) 应用程序目录设置 Okta 集成:
-
登录您的 Okta 管理员仪表板。
-
前往 Applications(应用程序)> Applications(应用程序)。
-
选择 Browse App Catalog(浏览应用目录)。
-
搜索
Cloudflare并选择 **Cloudflare One(Cloudflare One)**应用程序。 -
选择 Add integration(添加集成)。
-
在 **Application label(应用程序标签)**中,输入应用程序名称(例如
Cloudflare Access)。 -
在 **Team domain(团队域)**中,输入您的 Cloudflare Zero Trust 团队名称(仅输入子域前缀,不要包含
.cloudflareaccess.com):<your-team-name>您可以在 Cloudflare 仪表板 ↗ 的 Settings(设置)> Team name and domain(团队名称和域名)> **Team name(团队名称)**下找到您的团队名称。
-
在 **Sign On(登录)**选项卡中,复制 **Client ID(客户端 ID)**和 Client secret(客户端密钥),并将其粘贴到 **App ID(应用程序 ID)**和 **Client secret(客户端密钥)**中。
-
复制您的 Okta 账户 URL(不含
-admin值),并将其复制到 Cloudflare Okta 设置字段中。
-
登录您的 Okta 管理员仪表板,然后前往 Applications(应用程序)> Applications(应用程序)。
-
选择 Create App Integration(创建应用集成)。
-
对于 Sign-in method(登录方法),选择 OIDC - OpenID Connect(OIDC - OpenID Connect)。

-
对于 Application type(应用程序类型),选择 Web Application(Web 应用程序)。选择 Next(下一步)。
-
输入任意应用程序名称。在 **Sign-in redirect URIs(登录重定向 URI)**字段中,输入以下 URL:
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback您可以在 Cloudflare 仪表板 ↗ 的 Settings(设置)> Team name and domain(团队名称和域名)> **Team name(团队名称)**下找到您的团队名称。
-
选择所需的 **Assignment(分配)**选项并选择 Save(保存)。
-
在应用程序视图中,前往 **Sign On(登录)**选项卡。
-
向下滚动到 Token claims(令牌声明),选择 Show legacy configuration(显示旧版配置)> Edit(编辑)。

-
将 **Groups claim filter(群组声明筛选器)**设置为 Matches regex,其值设置为
.*。
-
在 **General(常规)**选项卡中,复制 **Client ID(客户端 ID)**和 Client secret(客户端密钥)。

-
在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Integrations(集成) > Identity providers。
-
在 Your identity providers(您的身份提供商) 下,选择 Add new identity provider(添加新的身份提供商)。选择 Okta 作为您的身份提供商。
-
填写以下信息:
- Name(名称):为您的身份提供商命名。
- App ID(应用 ID):输入您的 Okta 客户端 ID。
- Client secret(客户端密钥):输入您的 Okta 客户端密钥。
- Okta account URL(Okta 账户 URL):输入您的 Okta 域 ↗,例如
https://my-company.okta.com。
-
(可选)创建一个 Okta API 令牌,并在 Cloudflare 仪表板 ↗中的 Zero Trust > Integrations(集成) > Identity providers 下输入该令牌(令牌可以为只读权限)。如果您的 Okta 租户拥有超过 100 个组,请使用 API 令牌。若无此令牌,Cloudflare 可能无法检索所有 Okta 组以进行策略评估。
-
(可选)配置自定义 OIDC 声明:
- 在 Okta 中,创建一个自定义授权服务器 ↗,并确保启用
groups范围。 - 在 Cloudflare 仪表板 ↗中,输入从 Okta 获取的 Authorization Server ID。
- 在 Optional configurations 下,输入您希望添加到用户身份的声明。
- 在 Okta 中,创建一个自定义授权服务器 ↗,并确保启用
-
(可选)启用 Proof of Key Exchange (PKCE) ↗。PKCE 将在所有登录尝试中执行。
-
选择 Save(保存)。
要测试连接是否正常,请选择 Test(测试)。
Okta 集成允许您使用 SCIM 同步 IdP 群组并自动取消用户预配。要在 Access 和 Okta 之间启用 SCIM 预配,您需要在 Okta 中创建两个独立的应用程序集成:
- 您在将 Okta 添加为身份提供商时创建的 OIDC 应用程序。您可以通过 Okta 应用程序目录或自定义应用程序集成创建此应用程序。
- 第二个 SCIM 2.0 Test App (Header Auth) 类型的 Okta 应用程序。这在技术上是一个 SAML 应用程序,但负责通过 SCIM 发送用户和群组信息。
-
在 Cloudflare 仪表板 ↗中,前往 Zero Trust > Integrations(集成) > Identity providers。
找到 Okta 集成,然后选择 Edit(编辑)。
开启 Enable SCIM
-
(可选)配置以下设置:
- Enable user deprovisioning(启用用户取消预配):当用户从 Okta 中的 SCIM 应用程序中移除时,撤销用户的活动会话。这将使所有活动 Access 会话失效,并提示对任何 Cloudflare One Client 会话策略重新进行身份验证。
- Remove user seat on deprovision(取消预配时移除用户席位):当用户从 Okta 中的 SCIM 应用程序中移除时,从您的 Cloudflare One 账户中移除用户席位。
- SCIM identity update behavior(SCIM 身份更新行为):选择当用户身份在 Okta 中更新时,Cloudflare One 中发生的情况。
- Automatic identity updates:当 Okta 通过 SCIM 发送更新的身份或组成员资格时,自动更新用户注册表身份。此身份用于 Gateway 策略和 Cloudflare One Client 设备配置文件;Access 将在用户重新进行身份验证时读取其更新的身份。
- Group membership change reauthentication:当用户的组成员资格在 Okta 中更改时,撤销用户的活动会话。这将使所有活动 Access 会话失效,并提示对任何 Cloudflare One Client 会话策略重新进行身份验证。Access 将在用户重新进行身份验证时读取其更新的组成员资格。
- No action:在用户下次对 Access 或 Cloudflare One Client 重新进行身份验证时更新用户身份。
选择 Regenerate Secret(重新生成密钥)。复制 SCIM Endpoint(SCIM 终结点) 和 SCIM Secret(SCIM 密钥)。您需要将这些值输入到 Okta 中。
-
选择 Save(保存)。
SCIM 密钥永不过期,但您可以随时手动重新生成密钥。
-
在您的 Okta 管理员仪表板中,前往 Applications(应用程序)> Applications(应用程序)。
-
选择 Browse App Catalog(浏览应用目录)。
-
搜索
SCIM Header Auth并选择 SCIM 2.0 Test App (Header Auth)(SCIM 2.0 测试应用(标头身份验证))。 -
选择 Add Integration(添加集成)。
-
在 **General Settings(常规设置)**选项卡中,为您的应用程序命名并选择 Next(下一步)。
-
在 **Sign-on Options(登录选项)**选项卡中,确保已选择 SAML 2.0(SAML 2.0)。
-
在 **Credential Details(凭据详细信息)**下,将 **Application username format(应用程序用户名格式)**设置为 Okta Username 或 Email。此值将用于 SCIM
userName属性。 -
选择 **Done(完成)**创建集成。
-
在 **Provisioning(预配)**选项卡中,选择 Configure API Integration(配置 API 集成)。
-
选择 Enable API integration(启用 API 集成)。
-
在 **Base URL(基础 URL)**字段中,输入从 Cloudflare One 获取的 SCIM Endpoint(SCIM 端点)。
-
在 **API Token(API 令牌)**字段中,输入从 Cloudflare One 获取的 SCIM Secret(SCIM 密钥)。

-
选择 **Test API Credentials(测试 API 凭据)**以确保凭据输入正确。选择 Save(保存)。
-
在 **Provisioning(预配)**选项卡中,选择 **Edit(编辑)**并启用:
- Create Users(创建用户)
- Update User Attributes(更新用户属性)
- Deactivate Users(停用用户)

-
在 **Assignments(分配)**选项卡中,添加要与 Cloudflare Access 同步的用户。您可以通过分配群组来批量添加用户。如果用户通过直接用户分配或从分配到应用程序的群组中移除,这将触发 Okta 向 Cloudflare 发送取消预配事件。
-
在 **Push Groups(推送群组)**选项卡中,添加要与 Cloudflare Access 同步的 Okta 群组。这些群组将显示在 Access 策略构建器中,是在 Okta 中成员资格发生变化时将被添加和移除的群组成员资格。
要验证集成,请在 Okta SCIM 应用程序中选择 View Logs(查看日志)。
要检查用户身份是否已在 Cloudflare One 中更新,请查看您的 SCIM 配置日志。
{
"config": {
"client_id": "<your client id>",
"client_secret": "<your client secret>",
"okta_account": "https://dev-abc123.oktapreview.com"
},
"type": "okta",
"name": "my example idp"
}如果您看到错误 Failed to fetch user/group information from the identity,请仔细检查您的 Okta 配置:
- 如果您的 Okta 租户拥有超过 100 个群组,请确保在身份提供商配置中包含 Okta API 令牌。Cloudflare 使用该令牌从 Okta 检索群组以进行策略评估。
- 如果 Okta 在用户的 OIDC 令牌中返回超过 100 个群组,Okta 可能会从令牌中省略某些群组成员资格。这是 Okta 令牌声明的限制,而非 Cloudflare 的限制。如果所需群组被省略,Cloudflare 将无法评估依赖该群组的策略。为避免此问题,请缩小 Okta 群组声明过滤器的范围,使其仅包含 Cloudflare 策略中使用的群组。更多信息,请参考 Okta 的群组函数和动态允许列表文档 ↗。
- 该请求可能被 Okta 中的 ThreatInsights 功能 ↗阻止。