SSO配置

单点登录配置,统一企业身份认证管理

概述

SSO(Single Sign-On,单点登录)允许企业成员使用统一的身份提供商(IdP)登录 1Duty,无需单独管理密码。通过 SSO 配置,您可以:

SSO 功能仅限 ProfessionalEnterprise 订阅方案使用。如需开通,请升级您的订阅方案。详见 订阅计费

支持的协议

1Duty 支持以下两种主流 SSO 协议:

协议 说明 适用场景
SAML 2.0 安全断言标记语言,基于 XML 的认证协议 传统企业 IdP(如 ADFS、Okta、OneLogin)
OIDC OpenID Connect,基于 OAuth 2.0 的身份层 现代身份平台(如 Azure AD、Auth0、Keycloak)

配置 SAML SSO

按照以下步骤配置 SAML 2.0 单点登录:

第一步:获取 1Duty 服务提供商信息

进入「平台管理」>「SSO配置」页面,您将看到以下服务提供商(SP)信息:

字段 说明
ACS URL 断言消费服务地址,IdP 将认证响应发送到该地址
Entity ID 服务提供商唯一标识
Metadata URL SP 元数据地址(部分 IdP 支持自动导入)

第二步:在 IdP 中创建应用

在您的身份提供商(如 Okta、Azure AD、ADFS 等)中创建一个新的 SAML 应用:

  1. 将 ACS URL 和 Entity ID 填入 IdP 的应用配置中
  2. 配置属性映射(Attribute Mapping):
    • email -- 用户邮箱地址(必填)
    • name -- 用户显示名称(可选)
  3. 下载 IdP 的元数据文件或获取以下信息:SSO URL、Entity ID、签名证书

第三步:在 1Duty 中完成配置

  1. 回到 1Duty 的 SSO 配置页面
  2. 选择协议类型为「SAML 2.0」
  3. 上传 IdP 元数据文件,或手动填入:
    • IdP SSO URL(登录地址)
    • IdP Entity ID
    • IdP 签名证书(X.509 格式)
  4. 点击「保存」完成配置

配置 OIDC SSO

按照以下步骤配置 OpenID Connect 单点登录:

第一步:获取 1Duty 回调地址

在 SSO 配置页面获取 Redirect URI(回调地址),在 IdP 中创建应用时需要填入。

第二步:在 IdP 中创建 OIDC 应用

  1. 在身份提供商中创建一个新的 OIDC/OAuth 2.0 应用
  2. 将 1Duty 的 Redirect URI 添加到允许的回调地址列表
  3. 获取应用的 Client IDClient Secret
  4. 记录 IdP 的 Issuer URL(发行者地址)

第三步:在 1Duty 中完成配置

  1. 回到 1Duty 的 SSO 配置页面
  2. 选择协议类型为「OIDC」
  3. 填入以下信息:
    • Issuer URL
    • Client ID
    • Client Secret
  4. 点击「保存」完成配置

大多数 OIDC 身份提供商支持通过 Issuer URL 自动发现端点配置(Well-Known Discovery),1Duty 会自动获取 Authorization、Token 和 UserInfo 端点。

测试 SSO 登录

配置完成后,建议在强制 SSO 前先进行测试:

  1. 点击「测试 SSO 登录」按钮
  2. 系统会在新窗口中打开 IdP 的登录页面
  3. 使用 IdP 中的账号进行登录
  4. 登录成功后,页面会显示认证结果和用户属性信息

如果测试失败,请检查:

强制 SSO 登录

测试通过后,您可以选择强制所有成员使用 SSO 登录:

  1. 在 SSO 配置页面开启「强制 SSO」开关
  2. 开启后,所有成员将无法使用密码登录,只能通过 SSO 认证进入系统

开启强制 SSO 前,请确保所有成员的邮箱地址已在 IdP 中注册。企业管理员(ADMIN)始终保留密码登录能力,以防 SSO 故障时仍可进入系统进行故障排除。

常见身份提供商

以下是常见的身份提供商和推荐的配置协议:

身份提供商 推荐协议 备注
Azure Active Directory OIDC 原生支持 OIDC,配置最简单
Okta SAML / OIDC 两种协议均完善支持
OneLogin SAML SAML 集成文档完善
Auth0 OIDC 原生 OIDC 支持
Keycloak OIDC 开源方案,两种协议均支持
ADFS SAML Windows Server 环境下的传统方案