跳到主要内容

设置 Okta 单点登录 (SSO)

通过极少的配置,这个连接器可以让你集成 Okta,实现企业单点登录 (SSO)。

提示:

有关 SSO 和如何在 Logto 中配置 SSO 的更多信息,请查看 企业单点登录 (SAML & OIDC) 文档以开始使用。

步骤 1:在 Okta 管理后台创建 OIDC 应用

  • 访问 Okta 管理门户,并以管理员身份登录。
  • 使用侧边菜单导航到 Applications/Applications 页面。
  • 点击 Create App Integration 按钮以创建一个新的 OIDC 应用程序。
  • 选择 OIDC - OpenID Connect 选项作为 Sign-in method
  • 选择 Web Application 选项作为 Application type
Okta create application

点击 Next 按钮继续。

步骤 2:配置应用设置

  1. 提供一个 App integration name。它将用作你的 OIDC 应用程序的标识符。
  2. 使用 Logto SSO 连接器的回调 URL 添加一个新的 Sign-in redirect URIs

这是 Okta 在成功认证 (Authentication) 后将用户浏览器重定向到的 URI。当用户成功通过 IdP 认证 (Authentication) 后,IdP 会将用户浏览器重定向回这个指定的 URI,并附带一个授权 (Authorization) 代码。Logto 将根据从此 URI 接收到的授权 (Authorization) 代码完成认证 (Authentication) 过程。

Okta application settings
  1. 将用户分配给应用程序。

根据 Assignments 设置,你可以选择将应用程序分配给所有用户或特定用户 / 组。

Okta assign users

点击 Save 按钮以保存应用程序设置。

步骤 3:使用客户端凭据设置 Logto 连接器

成功创建 OIDC 应用程序后,你将被重定向到应用程序详情页面。

Okta client credentials

复制 client IDclient secret,并在 Logto SSO 连接器的 Connection 选项卡中填写相应字段。

使用你的 Okta 域作为 issuer。例如:https://dev-12345678.okta.com。填写完所有字段后,点击 Save 按钮保存连接器设置。

如果你提供的 issuer 链接有效,你将会看到在 issuer 字段下方显示的解析后的 Okta IdP 配置完整列表。

步骤 4:附加权限 (Scopes)(可选)

Scope(权限)定义了你的应用从用户处请求的权限,并控制你的应用可以从他们的 Okta 账户访问哪些数据。请求额外的 Okta 权限需要在双方进行配置:

在 Okta 管理控制台中:

  1. 导航到 Applications > Applications 并选择你的 OIDC 应用。
  2. 前往 Assignments 标签页,确保你的应用有权访问所需的用户和组。
  3. 对于自定义 Scope(权限),导航到 Security > API > Authorization Servers 并选择你的授权服务器。
  4. 如有需要,添加自定义 Scope(权限):
    • 点击 Scopes,然后点击 Add Scope
    • 定义 Scope(权限)名称,如 okta.users.readokta.groups.read,用于访问 Okta API
    • 为每个 Scope(权限)配置同意要求

有关可用 Scope(权限)及其说明的完整列表,请参阅 Okta OIDC 文档

在 Logto Okta 连接器中:

  1. Logto 会自动包含 openidprofileemail Scope(权限),以获取基本的用户身份信息。如果你只需要基本的用户信息,可以将 Scopes 字段留空。
  2. 如果你计划存储令牌以实现持久的 API 访问,请在 Scopes 字段中添加 offline_access。此 Scope(权限)可启用刷新令牌(Refresh token),用于长期 API 访问。
  3. Scopes 字段中添加额外的 Scope(权限)(以空格分隔),以请求更多 Okta 数据。例如:okta.users.read okta.groups.read
提示:

如果你的应用请求这些 Scope(权限)以访问 Okta API 并执行操作,请确保在 Logto Okta 连接器中启用 为持久 API 访问存储令牌。详情请参见下一节。

步骤 5:存储令牌以访问 Okta API(可选)

如果你想访问 Okta 权限 (Scopes) 并在用户授权 (Authorization) 下执行操作,Logto 需要获取特定的权限 (Scopes) 并存储令牌。

  1. 在你的 Okta 开发者控制台 API 权限配置和 Logto Okta 连接器中添加所需的权限 (Scopes)。
  2. 在 Logto Okta 连接器中启用 为持久 API 访问存储令牌。Logto 会将 Okta 访问令牌 (Access token) 和刷新令牌 (Refresh token) 安全地存储在 Secret Vault 中。
  3. 为确保返回刷新令牌 (Refresh token),请在你的 Okta 应用权限中添加 offline_access 权限 (Scope),并将其包含在 Logto Okta 连接器的权限 (Scopes) 中。此权限 (Scope) 允许你的应用长时间访问资源。

步骤 6:设置邮箱域并启用 SSO 连接器

在 Logto 的连接器 SSO 体验 标签页中填写你组织的 电子邮件域名。这将为这些用户启用 SSO 连接器作为认证 (Authentication) 方法。

拥有指定域名电子邮件地址的用户将被重定向,仅能使用你的 SSO 连接器进行认证 (Authentication)。

关于如何与 Okta 创建 OIDC 集成的更多详情,请参阅 创建 OIDC 应用集成