# 同时使用 Authing 作为 SP 和 IdP
本教程讲述如何使用 Authing 云上的 SAML2 SP 和 SAML2 IdP 为企业或个人快速接入单点认证能力。完成本教程后,你会拥有运行在 Authing 云上的 SAML2 Service Provider 和 SAML2 Identity Provider 来处理 SAML2 协议相关的过程,而你只需关注 Authing 返回的用户信息与 JWT Token。
在用户访问受保护的资源时,结合 Authing SDK 可以对他携带的 JWT Token 进行验证。如果 JWT Token 验证失败,只需将用户重定向到 SAML Service Provider 的云上地址,它会负责通过 SAML 协议与 IdP 交换信息从而认证用户,并返回 JSON 格式的用户信息。
# 创建一个应用
在控制台 > 应用 > 应用列表,点击右侧的「创建应用」按钮。
创建应用
在右侧弹出的抽屉中,输入相关信息,应用名称、回调链接、认证地址都可以随意填写。其余配置保持默认即可。点击「创建」。
输入应用信息
# 启用 SAML2 Identity Provider 功能
找到刚刚创建的应用,点击「配置」。
进入应用配置
点击「配置 SAML2 身份提供商」选项卡,然后点击「启用 SAML2 Provider」滑块,启用 SAML IdP。
启用 SAML2 Provider
# 下载 SAML2 Identity Provider 签名证书
将 SAML2 Identity Provider 签名证书下载并保存。
下载链接为:https://core.authing.cn/api/v2/saml-idp/<应用 ID>/cert。
# 创建一个 SAML2 身份联邦
在应用控制台 > 连接身份源 > 企业身份源,点击「连接 SAML IdP」。
创建 SAML2 身份联邦连接
在右侧弹出的抽屉中,输入一个连接标识符,用于唯一标识此连接。
将刚才下载的证书通过文本编辑器打开,将内容复制到验签证书文本框中。
然后在下方的登录地址和登出地址输入框中,输入 Authing SAML2 IdP 的登录地址和登出地址:
登录地址:https://core.authing.cn/api/v2/saml-idp/<应用 ID>
。
登出地址:https://core.authing.cn/logout
。
其余配置保留默认即可,点击「保存」。
点击刚刚创建的连接卡片上的设置按钮,记录 SAML2 连接的 ID。
# 配置 SAML2 Identity Provider
在控制台 > 应用 > 应用列表,找到刚才创建的应用,点击「配置」,进入应用详情后,点击「配置 SAML2 身份提供商」。
默认 ACS 地址输入框中填写:https://core.authing.cn/v2/api/connection/saml/<SAML2 连接 ID>/acs。
设置中填写以下内容:
{
"audience": null,
"recipient": null,
"destination": null,
"mappings": null,
"digestAlgorithm": "http://www.w3.org/2001/04/xmlenc#sha512",
"signatureAlgorithm": "http://www.w3.org/2001/04/xmldsig-more#rsa-sha512",
"authnContextClassRef": "urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified",
"lifetimeInSeconds": 3600,
"signResponse": false,
"nameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
"samlRequestSigningCert": ""
}
最后点击「保存」。
# 测试连接
在浏览器的地址栏中,输入 https://<应用域名>.authing.cn
。应用域名可以在控制台 > 应用 > 应用列表,找到刚刚创建的应用,点击「配置」,在应用详情页面找到。
访问后,可以看到登录方式中出现了 SAML2 身份联邦连接。
点击该按钮,弹出登录框,在 IdP 进行登录。由于 SAML2 IdP 也在 Authing,所以两个登录框的样式是类似的。
在弹出的窗口中登录。
登录成功后,回调到了应用详情中配置的回调地址。code 授权码在 URL 的 query 中返回,可以使用 code 获取用户信息,详情请参考。