如何为 Prefect Cloud 配置 SSO 单点登录
【免费下载链接】prefectPrefect is a workflow orchestration framework for building resilient data pipelines in Python.项目地址: https://gitcode.com/GitHub_Trending/pr/prefect
如果你的团队已经把身份管理(Identity Provider,IdP)集中到公司内部系统,那么 Prefect Cloud 中逐个用户注册、存密码的登录方式就不再合适。为 Prefect Cloud 启用 SSO(Single Sign-On,单点登录)后,Prefect Cloud 不会为任何由你的 IdP 管理的账户存储密码,成员访问账户资源时全部通过 IdP 认证,访问控制可以完全收归你的身份系统管理。本文给出在 Prefect Cloud 控制台内完成 SSO 配置的完整操作路径,以及启用后如何验证登录行为和登录异常时的检查项。
前提条件
根据 SSO 配置文档,启用 SSO 前需要满足两点:
- 订阅层级:SSO 是 Prefect Cloud Enterprise plan 提供的功能。文档中 manage-users 索引页对应条目标注为 “Single sign-on (Pro)”,而 configure-sso 正文与索引页均写明 Enterprise tier 提供该集成;两个文档的措辞不完全一致,建议以官方 pricing 页面的当前说明为准,确认你的账户层级包含 SSO。
- IdP 协议支持:你的身份提供商需要支持以下协议之一:
- OIDC(Open ID Connect)
- SAML 2.0
SSO 的启用与配置全程在 Prefect Cloud 控制台的SSO页面完成,不涉及本地 CLI 配置或环境变量修改。
在 SSO 页面启用并生成 IdP 配置链接
进入你的 Prefect Cloud 账户后,按以下顺序操作:
- 打开 SSO 页面:在账户内选择SSO页面,为启用用户登录做准备。
- 启用邮箱域名:如果该域名还没有启用 SSO,在页面中输入要启用 SSO 的邮箱域名(即通过 SSO 认证的成员使用的邮箱域),保存。这一步决定了哪些邮箱地址走 SSO 登录。
- 生成配置链接:在Enabled Domains区域,从Domains列表中选中域名,然后选择Generate Link。这一步会为你的身份提供商创建一条 SSO 配置链接。
- 进入 IdP 配置面板:使用上一步提供的链接,打开 Identity Provider Configuration dashboard,选择你的身份提供商继续配置。如果列表中找不到你的 IdP,选择
SAML或Open ID Connect通用选项继续。
文档中的截图展示了打开 Identity Provider Configuration dashboard 的界面(文档示例):
在 IdP 侧按所选协议完成对应配置(SAML 2.0 或 OIDC 的服务提供方设置)。SSO 文档本身只覆盖 Prefect Cloud 这一侧的操作,IdP 侧的具体字段以你的身份提供商文档为准。
启用后登录行为与如何验证
SSO 配置完成后的生效规则,文档明确给出:
- Prefect Cloud不会存储由 IdP 管理的任何账户的密码。
- 成员登录和访问账户资源时,使用你的身份提供商完成认证。
- 非管理员(non-admins)被强制要求通过 SSO 认证后才能访问账户资源。
- 账户级角色中,Owner 可以绕过 SSO(Bypass SSO),而Admin 不能绕过 SSO,见 账户角色说明。也就是说,启用 SSO 后,管理员账户(非 Owner)也必须走 IdP 登录。
验证方式:用启用域名下的普通成员账户访问 Prefect Cloud,确认登录流程被跳转到你的身份提供商,且该账户不再有可用密码登录;同时用 Owner 账户确认仍可直接登录,这符合上述角色差异的预期行为。
登录异常时的检查项
如果你的成员在启用 SSO 后反馈无法登录,Prefect Cloud 故障排查文档给出的登录问题排查步骤为:
- 确认登录的是Prefect Cloud 3(Cloud 1、Cloud 2、Cloud 3 使用相互独立的账户),使用正确的 Cloud 3 入口
https://app.prefect.cloud/。 - 确认当前使用的认证方式:文档会明确询问“Are you using a single sign-on (SSO) provider, social authentication (Google, Microsoft, or GitHub) or just using an emailed link?”——启用 SSO 的域名下,成员必须走 SSO 路径,用邮箱链接登录会失败。
- 如果已有账户但收不到邀请,先尝试用邀请关联的邮箱创建账户,再接受邀请。
- 浏览器层面:硬刷新(Cmd+Shift+R)、换浏览器(Chrome、Edge、Firefox、Safari 均在官方测试范围)、清理最近的浏览器历史和 Cookie。
- 仍未解决时,向
help@prefect.io提交问题,附上尝试登录的邮箱地址、Prefect Cloud 账户名称以及所属组织。
如果你的环境经过出站代理访问 Prefect Cloud,文档要求在代理侧放行以下出站地址,其中auth.workos.com与认证链路直接相关:app.prefect.cloud、api.prefect.cloud、auth.workos.com、api.github.com、github.com、ocsp.pki.goog/s/gts1d4/OxYEb8XcYmo。
可选分支:Directory sync 与 SCIM Provisioning
如果你希望在 SSO 之外进一步把用户生命周期管理交给 IdP,SSO 文档还描述了两项能力(均属于 Enterprise plan 范畴):
- Directory sync:自动为账户开通(provision)和取消(de-provision)用户。被开通的用户获得基础的Member角色及其对应权限;当用户在 IdP 中被取消对 Prefect Cloud 应用的授权时,会自动失去对 Prefect Cloud 资源的访问。这让 IT 团队无需登录 Prefect UI 即可控制访问。
- SCIM Provisioning:Enterprise plan 可通过 SCIM 实现用户开通,在 SSO 标签页中提供开关入口。
边界说明:GitHub Enterprise Cloud 的 SAML/SSO
如果你的 GitHub.com 组织本身强制 SAML/SSO(GitHub Enterprise Cloud),在 Prefect Cloud 中访问私有仓库作为部署代码存储时,需要被授权 SAML 的凭据。文档建议安装Prefect Cloud GitHub App(组织级授权、使用短期 token),而不是为每个成员创建并授权单独的 Personal Access Token。具体设置见 Prefect Cloud GitHub App 集成说明。这属于部署代码存储场景,与 SSO 登录配置本身相互独立。
小结
完成上述步骤后,你的 Prefect Cloud 账户中启用域名内的成员只能通过 IdP 登录(Owner 除外),Prefect Cloud 不再为这些账户保存密码,成员的加入与移除可以通过 Directory sync 直接交给身份系统管理。后续如要收紧更细粒度的访问控制,可继续参考 账户角色与 manage-users 索引中的对象级 ACL、Teams 等 Enterprise 能力。
【免费下载链接】prefectPrefect is a workflow orchestration framework for building resilient data pipelines in Python.项目地址: https://gitcode.com/GitHub_Trending/pr/prefect
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考