配置 SSO 登录(SAML 2.0)

对应的官方文档地址

本文将通过以下步骤指导您配置 SAML 2.0 认证的 SSO 登录。

配置会因提供程序而异。在您配置 SSO 登录时,请参考以下提供程序的示例:

或者,参考本页面的字段映射参考

第 1 步:启用 SSO 登录

完成以下步骤以启用 SAML 2.0 认证的 SSO 登录:

  1. 在网页密码库中,导航到您的组织并打开设置选项卡。

  2. 标识符字段,为您的组织输入一个唯一的标识符。 不要忘记保存您的标识符。登录时将要求用户输入此标识符。

  3. 导航到业务门户

  4. 选择 Single Sign-On 按钮。

  5. 勾选启用复选框。

  6. 类型下拉菜单选择 SAML 2.0 选项。

选择 SAML 2.0 后,此页面将显示需要配置的两部分字段:

  • SAML 服务提供程序配置

  • SAML 身份提供程序配置

第 2 步:服务提供程序配置

当配置您的 IdP 时,需要此部分的字段值。

SAML Service Provider Configuration 部分

SP Entity ID

用于 SSO 登录的 Bitwarden 端点。该值基于您的 Bitwarden 实例 URL 自动生成。对于所有云托管的实例,其值为 https://sso.bitwarden.com/saml2/。对于自托管的实例,其值为基于您配置的服务器 URL 的域名生成。

Assertion Consumer Service (ACS) URL

从 IdP 发送 SAML 断言的位置。该值基于在您的 SP Entity ID 后附加组织标识字符串和 /Acs 自动生成。例如,https://sso.bitwarden.com/saml2/abcd123-ef45-gh67-ij89/Acs

对于自托管的实例,此值基于您配置的服务器 URL 的域名生成。

Name ID Format

SAML 断言的格式。选项包括:

  • Unspecified (默认)

  • Email Address

  • X.509 Subject Name

  • Windows Domain Qualified Name

  • Kerberos Principal Name

  • Entity Identifier

  • Persistent

  • Transient

Outbound Signing Algorithm

SAML 断言使用的加密方法。选项包括:

Signing Behavior

Bitwarden 是否签署 SAML 断言。选项包括:

  • If IdP Wants Authn Requests Signed (默认)

  • Always

  • Never

Want Assertions Signed

如果 Bitwarden 期望来自 IdP 的响应以便被签名,请选中此复选框。

Validate Certificates

当使用来自你的 IdP 的通过受信任的 CA 颁发的受信任和有效的证书时,请选中此复选框。自签名证书可能会失败,除非在 Bitwarden SSO 登录 docker 镜像中配置了合适的信任链。

第 3 步:配置您的 IdP

在继续之前,您必须使用第 2 步:服务提供程序配置中的值来配置您的 IdP 以接收Bitwarden 的请求并向其发送响应。

根据您的 IdP,您可能需要创建一个额外的 API 密钥或应用程序 ID。我们建议为 Bitwarden 维护一个独特的应用程序 ID 或参考。

完成后,返回 Bitwarden 业务门户界面,使用这一步的配置值完成第 4 步:身份提供程序配置

第 4步:身份提供程序配置

此部分的字段来自第 3 步:配置您的 IdP中的配置值。

必填字段将被标记。未能为必填字段提供值将导致您的配置被拒绝。

SAML Identity Provider Configuration 部分

Entity ID(必填

您的身份服务器地址或 URL,或者是 IdP 实体 ID。

Binding Type

用于 IdP 响应 Bitwarden SAML 断言时所使用的方法。选项包括:

  • Redirect (推荐)

  • HTTP POST

  • Artifact

Single Sign On Service URL(必填,如果 Entity ID 不是 URL

您的 IdP 发布的 SSO URL。

Single Log Out Service URL

您的 IdP 发布的 SLO URL。

SSO 登录目前不支持 SLO。该选项计划在未来使用,但我们强烈建议预先配置该字段。

Artifact Resolution Service URL(必填,如果 Binding Type 是 Artifact

用于工件解析协议(Artifact Resolution Protocol)的 URL。

X509 Public Certificate(必填,除非 Signing Behavior 是 Never

X.509 Base-64 编码的证书的主体部分。不要包括 CER/PEM 格式的证书的 -----BEGIN CERTIFICATE----------END CERTIFICATE----- 之间的行或部分。

在此字段中,多余的空格、回车和其他不相干的字符将导致证书验证失败。复制证书数据到此字段中。

Outbound Signing Algorithm

SAML 断言所使用的加密方法。选项包括:

Allow Unsolicited Authentication Response

SSO 登录目前不支持未经请求(由 IdP 发起)的 SSO 断言。此复选框计划在未来使用。

Disable Outbound Logout Requests

SSO 登录目前不支持 SLO。该选项计划在未来使用,但我们强烈建议预先配置该字段。

Want Authentication Requests Signed

如果您的 IdP 希望来自 Bitwarden SAML 的请求被签名,请选中此复选框。

字段映射参考

使用下面的表格来确定 Bitwarden 中的字段与您的身份提供程序的 GUI 界面中的字段的对应关系:

对于服务提供程序配置

Bitwarden

Azure

GSuite

JumpCloud

Okta

OneLogin

SP Entity ID

Identifier (Entity ID)

Entity ID

SP Entity ID

Audience Restriction

Audience (Entity ID)

ACS URL

Reply URL (ACS URL)

ACS URL

ACS URL

Single Sign On URL, Recipient URL, Destination URL

ACS (Consumer) URL

Name ID Format

Name ID

Name ID format

SAMLSubject NameID Format

Name ID Format

SAML nameID format

对于身份提供程序配置

Bitwarden

Azure

GSuite

JumpCloud

Okta

OneLogin

Entity ID

Azure AD Identifier

Google IDP Entity ID

IdP Entity ID

IdP Issuer URI

Issuer URL

SSO Service URL

Login URL

Google IDP SSO URL

IDP URL

Single Sign On URL

SAML 2.0 Endpoint (HTTP)

SLO Service URL

Logout URL

GSuite does not support SLO

SLO Service URL

Single Logout URL

SLO Endpoint (HTTP)

SAML 属性和声明

帐户供应要求一个电子邮件地址,它可以作为下表中的任何属性或声明被传递。

还强烈建议使用一个独特的用户标识符。如果没有,将使用电子邮件来链接用户。

属性/声明按优先匹配的顺序排列,包括适用的 Fallback:

Value

Claim/Attribute

Fallback Claim/Attribute

Unique ID

NameID (when not Transient) urn:oid:0.9.2342.19200300.100.1.1 Sub UID UPN EPPN

Email

Email http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress urn:oid:0.9.2342.19200300.100.1.3 Mail EmailAddress

Preferred_Username Urn:oid:0.9.2342.19200300.100.1.1 UID

Name

Name http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name urn:oid:2.16.840.1.113730.3.1.241 urn:oid:2.5.4.3 DisplayName CN

First Name + “ “ + Last Name (see below)

First Name

urn:oid:2.5.4.42 GivenName FirstName FN FName Nickname

Last Name

urn:oid:2.5.4.4 SN Surname LastName