Authing 文档文档
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
应用集成
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
应用集成
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
旧版
加入 APN
  • 概览
  • 将你的应用集成 OIDC
  • 基于 Authing 测试 OIDC 能力

    • 第一步:在 Authing 创建一个自建应用
    • 第二步:点击刚创建的应用,获取 OIDC 参数
    • 第三步:准备一个 Authing 的用户
    • 第四步:通过 Authing 的 IDP 测试你的应用
  • 加入 APN 前的注意事项
  • 邀请管理员
  • 提交应用
  • 更多 OIDC 测试方法

  1. 加入 APN
  2. /
  3. 基于 Authing 测试 OIDC 能力
  4. /
  5. 第四步:通过 Authing 的 IDP 测试你的应用

¶ 第四步:通过 Authing 的 IDP 测试你的应用

更新时间: 2022-04-20 11:18:51
编辑

下面我们会提供五种不同的授权模式测试样例,帮助你可以快速的验证 OIDC 集成是否成功。

你只需要选择自己集成的授权模式进行测试即可,如果你不知道该选择何种模式,请使用最普遍的授权码模式测试。如果你想选用其他模式测试,请参考更多 OIDC 测试方法。

¶ Type 1 授权码模式测试(推荐)

建议:

如果你的应用项目有后端服务,能够安全存储密钥,建议使用授权码模式。

在 Authing 设置你的应用的认证方式:

step4-1

接下来就可以开始测试了。

¶ 1. 配置你的 OIDC 身份提供商

让你的应用程序支持 OIDC 协议的之前,首先需要在你的后端应用程序配置以下信息:

// OIDC 身份提供商的配置信息端点
OIDC_ISSUER: https://oidc-demo-1.authing.cn/oidc
// OIDC 身份提供商的唯一标识符 ID
OIDC_CLIENT_ID: xxxxxxxxxxxxxx
// OIDC 身份提供商的唯一标识符 Secret
OIDC_CLIENT_SECRET: xxxxxxxxxxxxxx

¶ 2. 获取 OIDC 身份提供商提供给你的配置信息

/.well-known/openid-configuration 是一个标准的 OIDC 端点,用于获取关于 OIDC 身份提供商的所有必要的端点和公钥位置信息。

通过 HTTP GET 请求获取你的 OIDC 身份提供商的配置信息:

GET {你的 OIDC_ISSUER}/.well-known/openid-configuration HTTP/1.1

请求成功后,你将会得到以下配置信息:

step4-2

¶ 3. 发起 OIDC 授权码模式的认证

通过第二步获取的 openid-configuration,你需要使用其中的 authorization_endpoint 认证端点信息拼接的认证地址来完成 OIDC 的认证操作。

OIDC 认证地址的示例如下:

{AUTHORIZATION_ENDPOINT}?nonce={NONCE}&scope={SCOPES_SUPPORTED}&client_id={OIDC_CLIENT_ID}&redirect_uri={YOUR_APPLICATION_URL}&response_type=code

最终拼接出来的 OIDC 认证地址如下所示:

https://oidc-demo-1.authing.cn/oidc/auth?nonce=6266751455540045&scope=openid+profile+email+phone+address&client_id=60d6c2e2979ca8666354b225&redirect_uri=http%3A%2F%2Flocalhost%3A6379&response_type=code

参数说明:

// 通过第二步获取的 openid-configuration 中的 authorization_endpoint 字段
https://oidc-demo-1.authing.cn/oidc/auth
// 随机字符串
nonce=4095587973501673 
// 通过第二步获取的 openid-configuration 中的 scopes_supported 字段
scope=openid+profile+email+phone+external_id
// 你配置的 OIDC 身份提供商的唯一标识符 ID
client_id=60d6c2e2979ca8666354b225
// 你的应用的地址
redirect_uri=http://localhost:6379
// 使用授权码模式进行认证
response_type=code

访问上面的地址,你将会看到 Authing 的登录认证页:

step4-3

使用 OIDC 身份提供商的用户登录(Authing 上创建的用户账号):

step4-4

登录成功后 OIDC 服务提供商将会携带 Code 跳转到你的应用程序:

step4-5

¶ 4. 使用 Code 换取 AccessToken

OIDC 中的 Code 是一个临时的、时效性较短的一个授权码,用于换取 AccessToken。

关于 AccessToken 更多的释义,请参考这篇文章:什么是 Access Token

当你的应用程序接收到了 OIDC 身份提供商传给你的 Code 的时候,接下来你需要通过 Code 换取 AccessToken。

这时候你需要发送一个 HTTP POST 请求,请求格式如下:

// 通过第二步获取的 openid-configuration 中的 token_endpoint 字段
POST https://oidc-demo-1.authing.cn/oidc/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Data:
    // 你配置的 OIDC 身份提供商的唯一标识符 ID
    client_id:60d6c2e2979ca8666354b225
    // 你配置的 OIDC 身份提供商的唯一标识符 Secret
    client_secret:xxxxxxxxxxxxxxxxxxxx
    // 通过授权码 Code 方式获取 AccessToken
    grant_type:authorization_code
    // OIDC 身份提供商传给你的 Code
    code:xxxxxxxxxxxxxxxxxxxx
    // 你的应用的地址
    redirect_uri:http://localhost:6379

请求成功后,你将会得到以下信息,其中包含了 AccessToken:

step4-6

¶ 5. 使用 AccessToken 获取用户信息

当你的应用程序通过 Code 获取到了 AccessToken 后,接下你需要使用 AccessToken 换取用户信息 这时候你需要发送一个 HTTP GET 请求,请求格式如下:

// 通过第二步获取的 openid-configuration 中的 userinfo_endpoint 字段
GET https://oidc-demo-1.authing.cn/oidc/me HTTP/1.1
params:
    // 通过第四步获取的 access_token 字段
    access_token:xxxxxxxxxxxxxxxxxxxxxx

请求成功后,你将会得到以下信息,其中包含了当前登录用户的相关信息:

step4-7

恭喜你,你的应用已经拥有 OIDC 能力。

¶ 6. 使用 OIDC 完成用户退出登录

当完成前五步操作后,你已经让你的应用实现了通过 OIDC 标准协议认证用户的能力

接下来你需要使用 OIDC 完成用户退出登录的操作

这时候你需要发送一个 HTTP GET 请求,请求格式如下:

// 通过第二步获取的 openid-configuration 中的 end_session_endpoint 字段
GET https://oidc-demo-1.authing.cn/oidc/session/end HTTP/1.1

请求成功后,你将会看到如下界面:

step4-8

当你看到这个界面时,你已经完成了 OIDC 的用户登出。

¶ 更多测试方式

如果你想了解更多测试方式,请参考更多 OIDC 测试方法。

上一篇: 第三步:准备一个 Authing 的用户 下一篇: 加入 APN 前的注意事项
  • Type 1 授权码模式测试(推荐)
  • 更多测试方式

用户身份管理

集成第三方登录
手机号闪验 (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号

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