Authing 文档文档
快速开始
概念
使用指南
开发集成
应用集成
加入 APN
开发集成
多租户(内测版)
快速开始
概念
使用指南
开发集成
应用集成
加入 APN
开发集成
多租户(内测版)
旧版
使用指南
  • 快速开始

    • 认证你的第一个用户

      • 使用托管登录页完成认证
      • 使用内嵌登录组件完成认证
      • 使用 API & SDK 完成认证
      • 验证用户身份凭证(token)
      • 对用户进行权限管理
      • 实现退出登录
      • 接下来你可能需要
    • 不同类型应用的接入方式

      • 在传统 Web App 中集成 Authing
      • 在单页应用(SPA)中集成 Authing
      • 在移动端(iOS、Andriod)中集成 Authing
    • 控制台概览
  • 对用户进行认证

    • 使用账号密码认证
    • 使用短信验证码认证
    • 使用社会化登录认证
    • 使用扫码登录认证

      • 使用自建 App 扫码登录网站

        • 完整接口列表
        • 自定义配置项
      • 使用小程序扫码登录网站
    • 在小程序中进行认证
    • 手机号一键登录
    • 实现单点登录(SSO)
    • 在移动端实现单点登录
    • 多因素认证(MFA)

      • 基于时间戳算法的一次性密码(TOTP)的 MFA
      • 基于短信验证码的 MFA
      • 基于邮件验证码的 MFA
      • 通过 SDK 接入 MFA
    • 对认证流程进行扩展

      • 添加用户自定义字段
      • 添加部门自定义字段
      • IdToken 添加自定义字段
      • 使用自定义数据库对用户进行认证
      • 使用 Pipeline 对认证流程进行扩展
      • 使用 Webhook 监听认证事件
    • 对登录框进行个性化配置
  • 对用户进行权限管理

    • 选择合适的权限模型
    • 集成 RBAC 权限模型到你的应用系统
    • 集成 ABAC 权限模型到你的应用系统
    • 使用权限分组管理权限资源
    • 管理资源权限
  • 授权

    • 用户许可的资源授权
    • 机器间(M2M)授权
  • 管理用户账号

    • 用户字段释义
    • 管理员创建账号
    • 管理用户账号
    • 绑定账号
    • 管理用户的自定义数据
    • 查看用户的登录历史记录
    • 查看用户的地理位置
    • 增强账号的安全性
    • 管理用户的登录态
    • 控制用户能访问哪些应用
    • 用户分组
  • 管理用户目录

    • 用户目录配置项
    • 添加自定义用户字段
    • 搜索用户
    • 使用 LDAP 用户目录
  • 同步中心(BETA)

    • 快速开始
    • 创建同步任务

      • 获取应用配置项和权限

        • 获取飞书配置项和权限
        • 获取企业微信配置项和权限
        • 获取钉钉配置项和权限
        • 获取纷享销客配置项和权限
        • 获取其他应用配置项和权限
      • 自定义字段映射
      • 选择同步方式
    • 执行同步任务
    • 风险操作提示
    • 常见问题
  • 自建应用

    • 创建应用
    • 配置登录注册方式
    • 添加注册协议
    • 自定义登录框样式
    • 成为联邦认证身份源
    • 开启多因素认证
    • 子账号管理
  • 单点登录 SSO

    • 应用面板
    • 飞书工作台 SSO 方案
    • 企业微信 SSO 方案
    • 集成应用 SSO 方案
    • 自建应用 SSO 方案
    • 管理用户登录状态
    • ASA 表单代填
  • 成为联邦认证身份源

    • 成为 OpenID Connect 身份源
    • 成为 OAuth2.0 身份源
    • 成为 SAML2 身份源
    • 成为 CAS 身份源
  • 连接外部身份源(IdP)

    • 社会化身份源

      • 微信 PC 扫码
      • 微信 PC 小程序扫码
      • 微信公众号关注
      • 微信移动端
      • APP 拉起微信小程序
      • 微信网页授权
      • 微信小程序
      • 腾讯 QQ
      • 新浪微博
      • GitHub
      • Facebook
      • Twitter
      • Google
      • Apple 移动端
      • Apple Web 端
      • 支付宝
      • Slack
      • Gitee
      • GitLab
      • 百度
      • 网易易盾(一键登录)
      • 青云 QingCloud
      • Instagram
      • LinkedIn
    • 企业身份源

      • 企业微信自建应用扫码
      • 企业微信自建应用扫码(代开发模式)
      • 企业微信服务商应用扫码
      • 企业微信移动端
      • 钉钉 H5 微应用(企业内部开发)
      • 飞书应用商店应用
      • 飞书企业自建应用
      • Windows AD
      • Azure AD
      • OIDC
      • OAuth 2.0
      • LDAP
      • SAML
      • CAS
      • WeLink
    • 自定义数据库

      • 配置数据库连接和编写脚本
      • 惰性迁移用户到 Authing
      • 完全使用自定义数据库保存用户数据
      • 最佳实践
  • 打通微信生态
  • 迁移用户到 Authing

    • 使用 SDK 导入用户
    • 配置自定义密码函数
    • 从企业微信、钉钉等第三方身份源导入用户
  • 管理组织机构

    • 创建或导入组织机构
    • 管理组织机构
    • 管理成员生命周期
    • 使用 LDAP 协议对外开放组织机构数据
  • 自动化

    • 使用 Webhook 监听用户事件
    • 自定义认证流程(Pipeline)

      • 创建你的第一个 Pipeline 函数
      • Pipeline API Reference
      • Pipeline 的应用场景
      • Pipeline User 对象
      • Pipeline Context 对象
      • 在 Pipeline 中使用环境变量
      • 可用的 Node Modules
      • 如何调试
      • 常见问题
      • 私有化部署
    • 配置自定义密码函数
  • 审计日志

    • 用户行为的审计
    • 管理员行为的审计
  • 配置安全信息

    • 配置 Web 安全域
    • 配置密码强度
    • 配置注册频率限制
    • 配置登录失败次数限制
  • 配置用户池信息

    • 修改用户池基础信息
    • 配置邮件服务和模版
    • 配置短信服务和模版
    • 添加用户池协作管理员
    • 开发者配置
  • 部署方案

    • 基础部署模式
    • Docker 部署模式
    • Kubernetes 部署模式
    • 自定义域名配置方案
  • 常见问题 FAQs

    • 如何获取用户池 ID
    • 如何获取应用 ID
    • 如何验证用户身份凭证(token)
    • 如何识别用户来源
    • 在本地联表 Authing 用户与你的业务数据
    • 禁用第三方 Cookie 对 Authing 的影响
    • 如何部署中转代理服务器
    • 如何获取 Authing 服务器集群 IP
  1. 使用指南
  2. /
  3. 成为联邦认证身份源
  4. /
  5. 成为 SAML2 身份源

¶ 成为 SAML2 身份源

更新时间: 2022-04-29 16:32:03
编辑

本文讲述如何在 Authing 开启 SAML2 身份提供商,为其他服务商提供身份断言。可以通过 SAML2 协议将 Authing 与第三方应用集成。你可以在这里深入理解 SAML2 协议。

¶ 创建应用

为了让你的应用具备身份认证能力,你需要在 Authing 创建一个应用,名称建议填写你的实际应用项目的名称,进入控制台 > 应用 > 应用列表,点击创建应用:

填写你的应用名称,例如:阿里云测试,随意填写一个认证地址,最后点击「创建」按钮:

¶ 配置 SAML2 身份提供商

为了将你的组织与用户用于 SAML2 身份认证,你需要开启应用的 SAML2 身份提供商并进行配置。找到你的应用,进入「启用身份提供商」选项卡。

在「SAML2 身份提供商」卡片中,打开启用 SAML2 Provider 开关,填写默认 ACS 地址和设置信息。然后点击保存。具体的 ACS 地址 SAML SP 方会提供,具体的设置项需要根据 SAML SP 方的要求进行配置。

当你在 Authing 创建 SAML2 IdP 时,有的 SP 可能会先要求你上传 IdP 的元数据文档,才会为你提供相应的配置信息。此时建议先填写一个任意的 ACS 地址和默认的设置信息。然后下载 Authing 的 IdP 元数据文档上传到 SP 方。然后再将 ACS 地址和设置信息修改为从 SP 获得的正确内容。

默认 ACS 地址:SAML2 Identity Provider 默认会将 SAML Response 发送到 SAML Request 中指定的消费地址(哪里来的回到哪里去,Authing 默认会将 SAML 身份断言发到 SAML Request 中 AssertionConsumerServiceURL 参数指定的地址),如果 SAML Request 中未指定消费地址,Authing 会将 SAML Response 发到此处填写的地址。你可以从 SP 处获取到这个地址并填入这里。如果在 SP 处找不到,不妨先随意填写一个,但某些 SP 不会在 SAML Request 中指定消费地址,这种情况下这里必须填写正确的地址。

设置:SAML2 Identity Provider 的高级配置,需要填写一个 JSON 格式的对象,包含以下内容:

key类型描述默认值
samlRequestSigningCertstringSAML Request 验签证书,你可以从 SP 获得此证书内容。填写此字段后,会认为 SAML Request 经过签名,并检查签名是否合法。如果 SP 未对请求进行签名,Authing 会拒绝 SAML Request 导致认证失败。-
signResponseboolean是否对 SAML Response 签名false
nameIdentifierFormatstringSAML Response 中的唯一标识符格式。urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
lifetimeInSecondsnumberSAML 身份断言的过期时间,单位为秒。3600
authnContextClassRefstringSAML 身份认证上下文。urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
signatureAlgorithmstringSAML 断言签名算法。http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
mappingsobject属性映射字典,Authing 用户信息中的字段映射到 SAML 身份断言中的映射字典,左侧的 key 代表用户在 Authing 中的信息字段,右侧的 value 代表 SAML 身份断言中的属性名。默认不做字段映射。
destinationstringSAML Response 中的 Destination。默认为 SAML Request 中的 AssertionConsumerServiceURL,如果不存在,就为配置的默认 ACS 地址,若是 IdP 发起登录,可能需要从对接的第三方应用文档中找到此值填入,否则可能登录错误。
recipientstringSAML Response 中的 recipient。默认为 SAML Request 中的 AssertionConsumerServiceURL,如果不存在,就为配置的默认 ACS 地址,若是 IdP 发起登录,可能需要从对接的第三方应用文档中找到此值填入,否则可能登录错误。
audiencestringSAML Response 中的 audience。默认为 SAML Request 中的 AssertionConsumerServiceURL,如果不存在,就为配置的默认 ACS 地址,若是 IdP 发起登录,可能需要从对接的第三方应用文档中找到此值填入,否则可能登录错误。
emailDomainSubstitutionstring邮件域替换,SAML 断言中的身份标识中的邮箱域名会被替换为这里填写的内容,一些 SP 要求身份断言中的邮件域必须为特定的内容。如果填写此字段,必须禁止用户池注册,否则存在账号冒用风险。-

示例:

{
  "audience": null,
  "recipient": "https://signin.aliyun.com/saml/SSO",
  "destination": "https://signin.aliyun.com/saml/SSO",
  "mappings": {
    "email": "Email",
    "username": "UserName"
  },
  "digestAlgorithm": "http://www.w3.org/2000/09/xmldsig#sha1",
  "signatureAlgorithm": "http://www.w3.org/2000/09/xmldsig#rsa-sha1",
  "authnContextClassRef": "urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified",
  "lifetimeInSeconds": 3600,
  "nameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
  "samlRequestSigningCert": "-----BEGIN CERTIFICATE-----\nMIICyDCCAjGgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBgDELMAkGA1UEBhMCdXMx\nDTALBgNVBAgMBGFzZGYxDTALBgNVBAoMBGFzZGYxGDAWBgNVBAMMD2lkcDMuYXV0\naGluZy5jbjENMAsGA1UEBwwEYXNkZjENMAsGA1UECwwEYXNkZjEbMBkGCSqGSIb3\nDQEJARYMYXNkZkAxMjMuY29tMB4XDTE5MDUyNTA1NTgwMFoXDTIwMDUyNDA1NTgw\nMFowgYAxCzAJBgNVBAYTAnVzMQ0wCwYDVQQIDARhc2RmMQ0wCwYDVQQKDARhc2Rm\nMRgwFgYDVQQDDA9pZHAzLmF1dGhpbmcuY24xDTALBgNVBAcMBGFzZGYxDTALBgNV\nBAsMBGFzZGYxGzAZBgkqhkiG9w0BCQEWDGFzZGZAMTIzLmNvbTCBnzANBgkqhkiG\n9w0BAQEFAAOBjQAwgYkCgYEA2gggFHKUYkoEp83BfGgVjBiev+MIBm+AOuKVqIAX\naJDa1NHL+ApBWsfbKNoPPMy8sZdCBrDm6w5cx9cBjw4uBUap3elxr+MiFoCCc2Eg\nJundFhBVXkU6TafLzfoW4w6/yonmQ798nBKQrTmdc76tpT9xCwU2AmS5ooScQ9Xu\nNn0CAwEAAaNQME4wHQYDVR0OBBYEFMDHVJxYcOlCxnnRi1Lx4tj7gWKNMB8GA1Ud\nIwQYMBaAFMDHVJxYcOlCxnnRi1Lx4tj7gWKNMAwGA1UdEwQFMAMBAf8wDQYJKoZI\nhvcNAQEFBQADgYEAvDodW/ewvCEadY4PCFaBT0ZqoEvrb96hOrbP2hZV4lkCMbLq\noPWASgGTNr9TPnxGCvP9xOv77wzgLs7EAOI+ea1D+NIjUuKnjCLLBv034vMp8bRI\n/Ea9AsGqVCr8tK/3dPoJMxHIjs2cpqNdDcalCZkwBZ1Z0c0YtKIVDFnym5U=\n-----END CERTIFICATE-----",
  "emailDomainSubstitution": "authing.onaliyun.com"
}

自定义 SAML Response 属性: 你可以在 SAML 身份断言中加入一些自定义属性,新加入的属性会出现在 SAML 身份断言的 Attribute 中。

示例:

配置自定义 SAML Response 属性

配置自定义 SAML Response 属性

以上配置,会在 SAML 身份断言中增加以下属性:

<saml:Attribute Name="https://cloud.tencent.com/SAML/Attributes/Role" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
  <saml:AttributeValue
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">qcs::cam::uin/2165337796:roleName/authing,qcs::cam::uin/2165337796:saml-provider/authing
  </saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="https://cloud.tencent.com/SAML/Attributes/RoleSessionName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
  <saml:AttributeValue
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Test
  </saml:AttributeValue>
</saml:Attribute>

你还可以从 Authing 的用户信息上动态读取字段,在一行中最右侧的文本框中输入:My email is ${user.email} and my gender is ${user.gender}。 动态读取用户信息字段

动态读取用户信息字段

该条内容会在 SAML 身份断言中增加以下属性:

<saml:Attribute Name="CustomName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
  <saml:AttributeValue
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">My email is yezuwei@authing.cn and my gender is M
  </saml:AttributeValue>
</saml:Attribute>

¶ 与应用集成

Authing 已经与阿里云、腾讯云、华为云、AWS、Kibana(AWS) 进行了 SAML2 集成,查看相应的配置文档了解详细步骤。

¶ 登录阿里云控制台(中国区)

请查看接入文档。

¶ 登录阿里云控制台(国际区)

请查看接入文档。

¶ 登录腾讯云控制台

请查看接入文档。

¶ 登录 AWS 控制台(中国区)

请查看接入文档。

¶ 登录华为云控制台(中国区)

请查看接入文档。

¶ 登录 Kibana 控制台(AWS 中国区)

请查看接入文档。

上一篇: 成为 OAuth2.0 身份源 下一篇: 成为 CAS 身份源
  • 创建应用
  • 配置 SAML2 身份提供商
  • 与应用集成

用户身份管理

集成第三方登录
手机号闪验 (opens new window)
通用登录表单组件
自定义认证流程

企业内部管理

单点登录
多因素认证
权限管理

开发者

开发文档
框架集成
博客 (opens new window)
GitHub (opens new window)
社区用户中心 (opens new window)

公司

400 888 2106
sales@authing.cn
北京市朝阳区北辰世纪中心 B 座 16 层(总)
成都市高新区天府五街 200 号 1 号楼 B 区 4 楼 406 室(分)

京ICP备19051205号

beian京公网安备 11010802035968号

© 北京蒸汽记忆科技有限公司