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

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

本文将出现内部用户和外部用户的表述。现作出以下区分说明:

  • 内部成员:在 Dify 企业版工作空间内注册或在管理后台添加的成员。
  • 外部用户:未在 Dify 企业版内的成员

1. 在 GitHub 中创建 OAuth App

  1. 访问 GitHub 管理员后台页,导航至 Settings 页,选择 OAuth Apps 并创建新的 OAuth 应用。

  1. 按照页面提示,依次填写以下内容并完成应用创建:
  • Application name 必填项,应用名称,可自拟。
  • Homepage URL 必填项,主页链接,建议填写 Dify 企业版平台 URL。
  • Application description 选填项,应用描述。
  • Authorization Callback URL 必填项,回调链接,获取方法请参考下文

如需了解更多关于 GitHub 的 OAuth2 应用创建方法,请参考 GitHub 文档

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. 将其粘贴至 OAuth2 App 内的 Authorization callback URL 字段内。

3. 开启 OAuth2 认证

访问 Dify 企业版 Authentication 页,轻点 ”+ New Identity Provider → New OAuth2 Provider”,按照提示依次填写信息并完成配置。

前往 OAuth 应用程序,获取以下信息:

  • Client ID
  • Client Secrets

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

  • Authorization Endpoint: https://github.com/login/oauth/authorize
  • Token Endpoint: https://github.com/login/oauth/access_token
  • User Info Endpoint: https://api.github.com/user
  • Scopes: openid,profile,email

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

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

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

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