QR 登录免密认证概述

应用程序会启动 qrlogin 验证事务,等待用户使用 IBM Verify 完成验证请求,然后继续进行运行时访问。

注意: 此身份验证因素无需进行特定注册,但要求用户至少注册一个 IBM Verify 移动身份验证器应用实例。

工作流程

QRLogin 工作流程包括三个主要步骤。
创建新的 QR 码登录验证记录
  • 此步骤会创建新的 qrlogin 验证记录。
  • 请求是通过未认证的上下文生成的。
  • 响应包括要扫描的 QR 码以及认证器应用程序完成验证所需的详细信息。
轮询现有 QR 登录验证的完成情况
  • 此步骤会通过扫描 QR 码或确认验证请求已处于其他某个完成状态,来确定扫描设备是否完成了验证。 例如,成功、超时或失败。
  • 请求是通过未认证的上下文生成的。
  • 响应包括验证请求的状态,通过该状态可确定验证事务是否完成。
尝试完成现有 QR 登录验证
  • 此步骤会将 PENDING 验证事务的状态更改为 SUCCESS 状态。
  • 必须通过已认证的上下文来生成请求。 需要有 API 安全性权利才能检验 qrlogin 验证。
  • 如果已成功处理请求,那么响应会包含 Http 状态码 204。

先决条件

过程

  1. 获取 QRLogin 属性。 请参阅 “获取 QRLogin 属性 ”。
  2. 更新 QRLogin 属性。 请参阅 “更新 QRLogin 属性”

关于此任务

变量
此示例使用了以下变量。 请将 cURL 命令中的这些变量替换为从请求中收到的实际值。
表 1. 变量和示例值
变量 描述 示例值
{{access_token}} 在交换分配给 API 客户机的 {{client_id}} 和 {{client_secret}} 时作为结果返回。 4hFZq9U73P3MPEA40KcF54i77Z0mDhZba0InrzUe
{{tenant}} 分配给您 Verify 订阅的完全合格域名。 它由主机名verify.ibm.com...组成。 companyAppTest.verify.ibm.com
定义
表2。
首字母缩写词 描述
LSI LSI 是移动认证器在后续尝试验证时使用的一次性代码,代表登录会话索引。它是一串随机的字母数字字符串。 此字符串是通过使用登录会话索引的配置数据模型生成的。 配置选项包括登录会话索引标识的长度和用于生成字母数字标识的字符集。
DSI DSI 用于轮询并代表设备会话索引。此字符串是使用设备会话索引的配置数据模型生成的。 配置选项包括设备会话索引标识的长度和用于生成字母数字标识的字符集。

获取 QRLogin 属性

要获取 QRlogin 属性,请使用以下 cURL 命令。

cURL 命令
curl -X GET \
  https://{{tenant}}/config/v2.0/factors/qr \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {{access_token}}'
示例
curl -X GET \
  https://companyAppTest.verify.ibm.com/config/v2.0/factors/qr \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer 4hFZq9U73P3MPEA40KcF54i77Z0mDhZba0InrzUe'
示例输出响应
{
    "lsi": {
        "charset": "134BCDAE",
        "length": 6
    },
    "dsi": {
        "charset": "12389EFGHIJKLMN",
        "length": 40
    },
    "expiry": 60,
    "enabled": false
}

更新 QRLogin 属性

config-payload.json创建一个属性文件,其中包含您从 “获取 QRLogin 属性 ”中检索到的属性,并将该文件命名为. 根据您的需求来编辑值。 例如,
{
	"lsi": {
	    "charset": "ABCDEFG123456789",
	    "length": 6
	},
	"dsi": {
	    "charset": "ABCDEFGHIJKLMNOPQRSTqrstuvwxyz0123456789",
	    "length": 40
	},
    "expiry": 60,
    "enabled": true
}

使用以下 cURL 命令来更新 QRLogin 属性。

cURL 命令
curl -X PUT \
  https://{{tenant}}/config/v2.0/factors/qr \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {{access_token}}' \
  -H 'Content-Type: application/json' \
  -d @config-payload.json 
示例
curl -X PUT \
  https://companyAppTest.verify.ibm.com/config/v2.0/factors/qr \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer 4hFZq9U73P3MPEA40KcF54i77Z0mDhZba0InrzUe' \
  -H 'Content-Type: application/json' \
  -d @config-payload.json 
示例输出响应
Http Status Code: 204