跳到主内容

SAML提供商概览

Casdoor可充当SAML 2.0服务提供商(SP),以便用户使用外部身份提供商(IdP)登录。 Casdoor 不存储用户凭据;身份验证由身份提供商处理。

支持的 SAML 提供商:阿里云 IDaaS, Keycloak, 自定义. 添加提供商后,其图标会显示在登录页面上。

阿里巴巴云IDaaSKeycloak自定义

条款

  • 身份提供商(IdP)— 持有身份并验证用户的服务(例如:Keycloak、Azure AD)。
  • 服务提供商(SP)— 保护资源的应用程序;此处为Casdoor。
  • 断言消费者服务(ACS)— 接收来自身份提供商的SAML断言的端点。

配置外部身份提供商(以Casdoor作为服务提供商)

在设置外部身份提供商(例如 Google Workspace、Azure AD)时,请为 Casdoor 使用以下值:

  • ACS URL(断言消费者服务URL):这是身份提供商将发送SAML断言的端点。 对于Casdoor,请使用:https://<your-casdoor-domain>/api/acs(请将<your-casdoor-domain>替换为您的实际Casdoor域名,例如:https://door.example.com/api/acs)

  • 实体ID(SP实体ID):此ID可唯一标识您的Casdoor实例作为服务提供商。 使用与 ACS URL 相同的 URL:https://<your-casdoor-domain>/api/acs

  • 请求方法:/api/acs端点仅接受POST请求。 请确保您的身份提供商已配置为通过 HTTP POST 绑定发送 SAML 响应。

用户属性映射

当用户通过SAML进行身份验证时,Casdoor会根据您的提供商属性映射配置,从SAML断言中提取用户信息。 用户名字段尤为重要,因为它是 Casdoor 中用户识别和创建所必需的。

如果您的身份提供商未明确提供用户名映射,或用户名字段返回为空,Casdoor会自动应用回退策略:

  1. 首先,它会尝试将电子邮件地址用作 SAML 断言中的用户名
  2. 如果未提供电子邮件,则回退到名称ID(唯一标识符)来自断言

此回退机制可确保即使在您的身份提供商中未明确配置用户名属性时,也能实现顺畅的身份验证。这种情况在 Azure AD 等提供商中很常见,因为默认属性声明可能并不包含单独的用户名字段。

登录行为

与配置为唯一身份验证方法时会自动重定向的 OAuth 提供商不同,SAML 提供商始终会在登录页面上显示其按钮。 此设计确保用户在被重定向至身份提供商之前,明确选择通过SAML进行身份验证。 <b 即使只配置了一个SAML提供商,也必须点击提供商按钮才能启动登录流程。

此行为可防止意外重定向,并让用户能够清晰地控制所使用的身份验证方法,这在企业环境中尤为重要,因为在这些环境中,SAML me often 是多种身份验证选项之一。

SAML 集成工作方式

当使用SAML SSO时,用户通过身份提供商登录Casdoor,而无需将凭证传递给Casdoor。 进展情况见下图表。

SAML