ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Label Studio Enterprise SSO/SAML 认证配置指南:从 IdP 接入到组映射与权限下发

Label Studio Enterprise SSO/SAML 认证配置指南:从 IdP 接入到组映射与权限下发 Label Studio Enterprise SSO/SAML 认证配置指南从 IdP 接入到组映射与权限下发【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio本篇指南围绕 Label Studio Enterprise 的 SAML 单点登录SSO配置展开说明如何将已有的身份提供商Identity ProviderIdP接入 Label Studio实现基于组织角色的统一认证与授权管理。读完本文你将掌握从 Label Studio 与 IdP 两侧完成 SAML 对接的完整步骤、SAML 属性与预设映射规则、三种组映射角色/工作区/项目的配置方法以及通过环境变量收紧为纯 SSO 管理的进阶方案。适用版本说明SSO 认证仅在 Label Studio Enterprise Edition 中提供。若使用 Label Studio Community Edition可参考 Label Studio 功能对比 了解两个版本的能力差异。为什么需要 SSO/SAML在企业环境中用户通常已在统一的身份体系如 Okta、Microsoft Entra ID、Google Workspace中维护账号。通过 SAML 将 Label Studio Enterprise 配置为 Service ProviderSP可以让用户使用企业既有账号登录标注平台免去重复注册与密码管理。更重要的是SSO 打通后可以结合 管理用户访问 的能力把 SAML 中的用户组Groups映射到 Label Studio 的roles或workspaces实现身份在 IdP 维护、权限在平台自动同步的治理模型。支持的 Identity ProviderLabel Studio Enterprise 支持以下 IdPOktaGoogle SAMLPing Federate 与 Ping Identity SAML SSO 配置示例OneLoginMicrosoft Entra ID原 Azure Active Directory / Azure ADAuth0其他使用标准 SAML 断言SAML assertions的 IdP配置权限说明只有组织Owner或Administrator角色的用户才能为实例设置 SSO SAML。配置 SAML SSO 的完整流程整体流程分为三步先在 Label Studio 侧复制必要 URL再到 IdP 侧完成应用注册与属性映射最后返回 Label Studio 上传 IdP 元数据并配置组映射。具体细节因 IdP 而异但通用步骤如下。第一步从 Label Studio 获取接入信息进入Organization页面若页面上看不到Organization选项说明当前登录账号不具备相应角色。在页面右上角选择SSO SAML。在Organization字段中确保域名与 IdP 中组织使用的域名一致。复制以下三个 URL供 IdP 侧配置使用URL作用Assertion Consumer Service (ACS) URL含 Audience/EntityID 与 Recipient/Reply 信息IdP 在认证成功后用来将用户重定向回 Label StudioLogin URL用户登录 Label Studio 时使用的入口地址Logout URL用户登出 Label Studio 后被重定向的地址从源码结构看Label Studio 的 SAML 服务端路由集中在/saml/token/命名空间下acs断言消费、welcome登录欢迎页、denied拒绝页、login、logout、xml元数据下发相关模式定义在 middleware.py并有对应的中间件测试覆盖见 test_middleware.py。这些路由即 ACS URL、Login URL、Logout URL 对应的后端处理端点。第二步在 IdP 侧完成应用接入与属性映射将上一步从 Label Studio 复制的 URL 粘贴到 IdP 应用配置的对应位置。生成 IdP 的元数据 XML 文件或提供指定元数据的 URL供 Label Studio 拉取。设置或确认以下 SAML 属性映射。Label Studio Enterprise 依赖这些特定属性来识别用户身份。默认属性名数据默认属性邮箱地址Email名given nameFirstName姓family nameLastName组名Groups不同 IdP 的属性名并不统一。Label Studio 在 SSO SAML 设置页提供了presets预设可一键为常见 IdP 配置正确的属性映射若 IdP 使用其他属性名也可手动配置自定义属性。各 IdP 的属性预设IdPEmailFirstNameLastNameGroupsDefaultEmailFirstNameLastNameGroupsAuth0emailgiven_namefamily_namegroupsEntra ID (short)emailAddressgivenNamesurnamegroupsGoogleEmailFirstNameLastNameGroupsPingOneemailAddressgivenNamesurnameGroupsOktaemailfirstNamelastNamegroupsMicrosoft Entra ID 完整 URI 格式若 Entra ID 使用默认的 claim URI可按下表配置属性URIEmailhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressFirstNamehttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/givennameLastNamehttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/surnameGroupshttp://schemas.microsoft.com/ws/2008/06/identity/claims/groups第三步返回 Label Studio 上传元数据并配置组映射回到 SSO SAML 页面。上传 IdP 的 metadata XML 文件或指定 metadata URL。配置组映射也可稍后添加或编辑。关键要求填写的组名必须与 IdP 在 SAML 认证响应中作为属性发送的组名完全一致。Label Studio Enterprise 提供三种层级的组映射Organization Roles to Groups Mapping组织角色映射在组织级别将组映射为角色。组织级别的角色是用户的默认角色会自动分配到工作区和项目。可配置说明见 Label Studio Enterprise 中的角色。多个组可以映射到同一角色处于Not Activated未激活或Deactivated已停用状态的用户不计入账户的席位seat上限。Workspaces to Groups Mapping工作区映射将组作为成员加入工作区。Manager、Reviewer、Annotator 角色的用户只有在被加入某工作区后才能看到该工作区。可以选择已有工作区或新建工作区多个组可以映射到同一工作区。Projects to Groups Mapping项目映射在项目级别将组映射为角色项目级角色可为Annotator、Reviewer或Inherit。一个组可以在多个项目中映射为不同角色多个组也可以映射到同一项目和同一角色。若选择Inherit该组将继承上文Organization Roles to Groups Mapping中设置的角色若继承的是 Not Activated 角色用户虽被映射到项目但只有在组被同步即用户通过 SSO 完成认证后才会真正被分配到项目。点击Save保存配置。使用 SSO 账号登录 Label Studio Enterprise 验证配置是否生效。仅使用 SSO 管理用户访问如果希望完全通过单点登录来管理 Label Studio 的角色与工作区可在环境变量文件中加入以下配置MANUAL_PROJECT_MEMBER_MANAGEMENT0 MANUAL_WORKSPACE_MANAGEMENT0 MANUAL_ROLE_MANAGEMENT0设置这些选项后Label Studio 的 API 与 UI 中针对具体用户的角色、工作区分配功能将被禁用权限完全依赖环境变量文件中的配置即 IdP 侧下发的组与上述组映射规则。这也是 LDAP 场景下的同一套管理开关相关说明可见 LDAP 认证配置。从发布历史可以佐证这些变量的实际行为2.3.1 版本的更新说明中提到MANUAL_WORKSPACE_MANAGEMENT设为 false 时曾出现用户登录时 SAML 工作区被重置的问题并已修复见 2.3.1 发布说明说明该变量直接影响 SAML 登录时工作区成员关系的同步逻辑。补充说明若使用 Label Studio Enterprise CloudSaaS 版并希望为组织启用上述限制需提交工单申请如有需要也可申请禁用通用登录common login选项——禁用后用户只能使用 SSO 登录字段通用登录入口被彻底关闭。SSO 配置完成后用户仍可通过原生认证普通登录访问 Label Studio UI但官方不推荐这样做尤其对 Owner 角色用户而言。可通过DISABLE_SIGNUP_WITHOUT_LINK选项阻止用户自行创建组织。该选项在 用户管理文档 中有详细说明设置LABEL_STUDIO_DISABLE_SIGNUP_WITHOUT_LINKtrue后用户只能通过邀请链接或邮件注册无法通过/user/signup页面自行创建账号。对应源码实现位于 base.py环境变量解析默认False与 users/views.py注册时校验组织 token。自定义登录页 URL可设置LOGIN_PAGE_URL环境变量将登录页重定向到指定 URL。该变量适合启用白标white labeling的组织或存在多个内部团队、不同团队使用不同 IdP 登录或部分团队不使用 IdP的场景参见 2.21.0 发布说明。从源码看 SAML 在 Label Studio 中的定位在 Django 配置中SAML 是角色来源Role Source之一。源码中定义了角色来源枚举见 base.py包括manual手动、saml、scim、ldap、api、billing等来源这意味着用户角色可被标记为由 SAML 下发与手动分配、SCIM、LDAP 等方式并行管理、互不冲突。结合上文的环境变量开关可以推断当MANUAL_ROLE_MANAGEMENT0时平台屏蔽手动/API 层面的角色分配入口角色只能源自 SAML 等外部身份同步通道。配置要点与注意事项汇总组名必须与 IdP 实际下发的Groups属性值完全一致否则映射不生效。组织域名需与 IdP 中的组织域名保持一致。属性名与 IdP 不一致时优先使用页面预设其次手动配置自定义属性名Entra ID 需注意短格式与完整 URI 格式的区别。未激活/已停用用户不计席位继承 Not Activated 角色的组需在用户完成 SSO 认证组同步后才真正进入项目。SSO 与普通登录可以并存但出于安全考虑官方不推荐可通过LOGIN_PAGE_URL与禁用 common login 进一步收口登录入口。【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表