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

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

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 应用程序内以完成创建流程。

点击 Dify 企业版的 Authentication 页,轻点 Workspace Settings 区域内的 ”+ New Identity Provider → New OAuth2 Provider”,在底部查看 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 企业版所创建的应用时,要求通过验证。

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