Authing 知识库
🛠 开发资源🥂 集成案例🔭 常见问题🖥 控制台
1.0.0
1.0.0
  • 欢迎
  • Authing 概述
  • 快速开始
    • 第一个应用
    • 基础概念
    • 实现单点登录
    • 控制台概览
    • 部署模型
  • 进阶指南
    • 理解认证和授权
      • 用户名 - 密码认证
      • 邮箱 - 密码认证
      • 手机 - 验证码认证
      • JWT Token 释义及使用
      • 验证 JWT Token
    • 配置用户权限
    • 最佳开发实践
    • 接入小程序扫码登录
      • 接入私有化小程序
    • 接入社会化登录
    • 接入 OAuth 2.0
      • 创建 OAuth 应用
      • 使用 OAuth 授权
    • 接入 OpenID Connect
      • 创建 OIDC 应用
      • 使用 OIDC 授权
      • 理解 OIDC 流程
      • OIDC 常见问题
    • 配置 LDAP 服务
    • 使用 Authing 的 LDAP 用户目录
    • 接入 SAML
      • 创建 SAML Identity Provider 应用
      • 创建 SAML Service Provider 应用
      • 理解 SAML 流程
      • 同时使用 Authing 作为 SP 和 IdP
      • 使用 SAML Identity Provider
        • 在阿里云访问管理中使用
        • 在腾讯云访问管理中使用
        • 在 Auth0 中使用
      • 使用 SAML Service Provider
        • 与 Auth0 SAML IdP 对接
        • 与 SSOCircle SAML IdP 对接
    • 使用 Webhook
    • 错误代码
  • 开发资源
    • 开发资源
    • API(GraphQL)
    • Guard for Web
    • Guard VS 自定义 UI
    • SDK for Web
      • 读取/修改用户权限
      • 绑定社会化登录
      • 管理 MFA 口令
      • 自定义请求链接
    • SDK for 微信小程序
    • SDK for Java
    • SDK for Objective-C
    • SDK for Python
    • SDK for Go
    • SDK for PHP
    • 函数计算(FaaS)
  • 通信
    • 邮件
    • SMS
  • MFA
    • 配置 MFA 安全口令
    • 接入 MFA
  • 安全
    • 配置 Web 安全域
    • 配置用户池密码强度
    • 配置密码加密函数
  • 其他
    • 常见问题
    • 集成案例
      • 使用 Authing 补充 AWS 中国区 Cognito User Pool
    • 社交互联数据
      • Authing 与社交互联数据
    • 为 Authing 贡献 SDK
      • 了解 Authing 的模块
Powered by GitBook
On this page
  • 创建一个 SAML IdP 应用
  • 创建一个 SAML SP 应用
  • 编辑刚创建的 IdP 应用
  • 编辑刚创建的 SP 应用
  • 开始使用
  • 访问云上的 SP
  • 跳转到 IdP 认证页
  • 用户进行登录
  • Authing 将用户信息发到回调地址

Was this helpful?

  1. 进阶指南
  2. 接入 SAML

同时使用 Authing 作为 SP 和 IdP

Previous理解 SAML 流程Next使用 SAML Identity Provider

Last updated 5 years ago

Was this helpful?

本教程讲述如何使用 Authing 云上的 SAML SP 和 SAML IdP 为企业或个人快速接入单点认证能力。完成本教程后,你会拥有运行在 Authing 云上的 SAML Service Provider 和 SAML Identity Provider 来处理 SAML 协议相关的过程,而你只需关注 Authing 返回的用户信息与 JWT Token。

在用户访问受保护的资源时,结合 Authing SDK 可以对他携带的 JWT Token 进行验证。如果 JWT Token 验证失败,只需将用户重定向到 SAML Service Provider 的云上地址,它会负责通过 SAML 协议与 IdP 交换信息从而认证用户,并返回 JSON 格式的用户信息。

创建一个 SAML IdP 应用

进入应用控制台 -> 第三方登录 -> SAML IdP 选项卡,点击「创建 SAML IdP」

填写应用信息,为云上的 IdP 指定一个二级域名,点击「确定」

此时我们还没有 SP,所以 AssertionConsumeServiceURL 可以先不填写真正的 appId。

其他配置使用默认即可。

生成一对秘钥,上传。用来对 SAML Response 签名、验签。

创建完成后,转到使用方法页。记录 IdP 登录 URL、IdP 登出 URL 和 IdP EntityID,后续创建 SP 时会使用。

创建一个 SAML SP 应用

进入应用控制台 -> 第三方登录 -> 社会化登录,在 SAML Service Provider 区域,点击「+」。

填写应用信息,为云上的 SP 指定一个二级域名,点击「确定」 。

在 IdP 登录 URL、IdP 登出 URL、IdP EntityID 输入刚才记录的三项内容。

其他配置使用默认即可。点击「确定」。

在 IdP 字段映射方案列表中选择 Authing,点击「确定」。

创建完成后,转到使用方法页。记录 AssertionConsumeServiceURL、下载 SP Metadata。

编辑刚创建的 IdP 应用

进入应用控制台 -> 第三方登录 -> SAML IdP 选项卡,找到刚刚创建的 IdP,点击右侧的「...」详情按钮,进入编辑。

在基础配置选项卡,填入刚才记录的 AssertionConsumeServiceURL、上传刚才下载的 SP Metadata,点击「确定」。

在使用方法选项卡,下载 IdP Metadata。

编辑刚创建的 SP 应用

进入应用控制台 -> 第三方登录 -> 社会化登录,在 SAML Service Provider 区域,找到刚才创建的 SP 应用,点击「编辑」。

在基础配置选项卡,上传刚才下载的 IdP Metadata。点击「确定」。

开始使用

当你的受保护资源被访问时,需要先对用户身份进行认证,可以通过 Authing SDK 检验 JWT Token 的合法性。如果 token 不合法,可以将用户重定向到云上的 SAML SP,完成后续的用户身份认证流程,Authing 云上的 SAML SP 最终会携带着用户信息和 JWT Token 跳回在 SP 中设置的回调地址。

云上的 SAML SP 地址形式如下

让 SP 通过 GET 请求发送 SAML Request

GET https://<domain>.authing.cn/oauth/saml/sp/<appId>/spinitsso-redirect

让 SP 通过 POST 请求发送 SAML Request

GET https://<domain>.authing.cn/oauth/saml/sp/<appId>/spinitsso-post

以下是一次完整的 SAML 登录流程

访问云上的 SP

在浏览器直接访问云上 SP 地址或者通过后端重定向到云上 SP 地址。

跳转到 IdP 认证页

如果用户没有登录过,会被重定向到 IdP 用户登录认证页。

用户进行登录

用户可以选择一种方式进行登录。

Authing 将用户信息发到回调地址

云上的 IdP 会将 SAML Response 发送到云上的 SP,SP 会处理好 SAML Response XML 信息,以 JSON 的数据格式将用户信息发到在 SP 配置的回调地址。

创建 SAML SP
直接在浏览器访问云上 SP
IdP 在认证用户身份
用户进行登录
用户确权