本篇文档将以 Okta 作为 SSO 身份提供商为例,演示如何为 Dify 企业版开启 OAuth2 授权协议。

通过启用此功能,企业版登录页将使用统一的身份认证入口以增强安全性。对于企业内部用户而言,无需输入复杂密码,使用组织账号登录即可通过验证,简化登录流程。

本文将出现内部用户和外部用户的表述。现作出以下区分说明: 内部成员:在 Dify 企业版工作空间内注册或在管理后台添加的成员。 外部用户:未在 Dify 企业版内的成员

1. 在 Okta 中创建一个新的应用程序

  1. 访问 Okta 的管理员后台页,导航到 Applications 页。轻点 Create App Integration 按钮,选择 OIDC 登录方式和 Web Application 应用类型。

  1. 按照页面提示填写应用名称、按照需求定义授权范围等信息。
  • Sign-in redirect URIs 字段需填写 Dify 企业版 Callback URL,获取方法请参考下文
  • Sign-out redirect URIs 字段留空。

2. 获取 Callback URL

根据所需要开启的 SSO 范围,Callback URL 有所差异。系统管理员需要将 Dify 企业版的 Callback URL 填写至对应的 GitHUb OAuth2 应用程序内以完成创建流程。

点击 管理后台身份认证成员认证SSO 身份提供商New Identity ProviderNew OAuth2 Provider,在底部查看 Workspace Callback URL。

它通常为以下格式:

https://[your-dify-enterprise-url]/console/api/enterprise/sso/oauth2/callback
  1. 将其粘贴至 Okta App 内的 Sign-in redirect URIs 字段内。

3. 开启 OAuth2 认证

3.1 在 Okta 应用程序中获取关键信息

  1. 前往 Okta 应用程序的 “General” 页,复制以下字段中的信息,用于后续配置:

    • Client ID
    • Client secret

  2. 切换至 “Sign On” 页,将 Issuer 切换为固定链接。

3.2 配置 OAuth2 认证

访问 Dify 企业版 Authentication 页,轻点 ”+ New Identity Provider → New OAuth2 Provider”,按照提示依次填写以下信息:

  • Client ID
  • Client Secrets

不同的 OAuth2 供应商的基础信息有所差异,具体以各个供应商的官方文档为准。以下信息仅用于参考,可按照实际需求进行调整。

  • Authorization Endpoint: https://your-okta-issuer-url/oauth2/v1/authorize
  • Token Endpoint: https://your-okta-issuer-url/login/oauth/access_token
  • User Info Endpoint: https://your-okta-issuer-url/oauth2/v1/userinfo
  • Scopes: openid,profile,email

获取 your-okta-issuer-url 的方法:参考上文,将 Okta OAuth2 App 中的 Issuer URL 指定为固定链接并复制信息。如需了解如何通过 Okta App 获取更多字段信息,请参考 Use of the Issuer

4. 开启 SSO 强制认证(可选)

系统管理员打开以下两种场景的 SSO Enforcement 选项,开启强制认证:

  • Workspace,登录 Dify 企业版 Workspace 时要求通过授权。
  • WebApp, 使用由当前 Dify 企业版所创建的应用时,要求通过验证。

开启后,访问对应场景时将提示需获取访问授权。