API クライアントでの QRLogin の使用

qrlogin パスワードなしの API をアプリケーション(API クライアント)の認証方式として使用するには、前提条件に従い、Client for URLs (cURL) を使用して API 要求を取得または送信します。

手順

API クライアントで QRCode ログインを使用するには、以下の手順に従います。
  1. 前提条件に従います。
  2. 新しい QR ログインを開始します。 「 新規 QRLogin の開始」を参照してください。
  3. 既存の QR ログイン検証の完了をポーリングします。 Poll for completion of completion of an existing QRLogin verificationを参照してください。
  4. 既存の QR ログイン検証を確認します。 既存の QRLogin 検証の検証を参照してください。
  5. 正常に検証された QR ログイン要求を取得します。 成功した検証済み QR ログイン要求の取得を参照してください。
  6. 特定の検証を削除します。 「 QR ログイン検査の削除」を参照してください。

新しい QRLogin を開始する

新しい QR コード・ログイン検証レコードを作成するには、以下の cURL コマンドを使用して新しい QR ログイン検証要求を開始します。
注: {{profile.id}} は、有効な IBM Verify 登録済みプロファイル ID に置き換えてください。 登録プロファイルの管理を参照してください。
cURL コマンド
'https://{{tenant}}/v2.0/factors/qr/authenticate?profileId={{profile.id}}' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'
curl -X GET \
  'https://companyAppTest.verify.ibm.com/v2.0/factors/qr/authenticate?profileId=9fe42f1c-3d22-4d2c-99a0-8ff08c93c4b0' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'
出力応答例
{
    "lsi": "zj4lyRfYFlnJcxZYPxKJXR0OB",
    "created": "2019-04-01T00:35:18.951Z",
    "type": "qr",
    "serviceName": "IBM Verify",
    "qrCode": " iVBORw0KEUgAAASwAAAEsCAIAAAD2HxkiA",
    "profileId": "9fe42f1c-3d22-4d2c-99a0-8ff08c93c4b0",
    "location": "https://companyAppTest.verify.ibm.com/v2.0/factors/qr/77348a7f-03b2-494f-a5d4-9a1603ae1592",
    "id": "77348a7f-03b2-494f-a5d4-9a1603ae1592",
    "expiry": "2019-04-01T00:36:18.951Z",
    "state": "PENDING",
    "dsi": "NxyVx0412btOrdx1xZJqTPfVPoCRHq3wG1s5udzt",
    "updated": "2019-04-01T00:35:18.951Z",
    "tenant": " companyAppTest.verify.ibm.com "
}
注: QR コード・イメージを生成するには、 b64QRCode の値を Base64-encoded QR コード・テキスト・コンバーターにコピー・アンド・ペーストします。

既存の QRLogin 検証の完了をポーリングする

以下の cURL コマンドを使用して qrlogin 要求を取得し、非認証のコンテキストの既存の QR ログイン検証の完了をポーリングします。

cURL コマンド
curl -X GET \
  'https://{{tenant}}/v2.0/factors/qr /{{qrlogin.ci.id}}?dsi={{qrlogin.dsi}}' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'
注: {{qrlogin.ci.id}}{{qrlogin.dsi}} を、新しい qrlogin 要求を開始したときに返されたクラウド ID とデバイス・セッション索引の値に置き換えます。
curl -X GET \
  'https://companyAppTest.verify.ibm.com/v2.0/factors/qr/authenticate/77348a7f-03b2-494f-a5d4-9a1603ae1592?dsi=IJL1IM9GFJLL3NK39MM2E3HN39IGH8LENENGIG2G' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'
出力応答例
{
    "created": "2019-04-01T00:42:44.456Z",
    "profileId": "9fe42f1c-3d22-4d2c-99a0-8ff08c93c4b0",
    "location": "https://companyAppTest.verify.ibm.com/v2.0/factors/qr/77348a7f-03b2-494f-a5d4-9a1603ae1592",
    "id": "77348a7f-03b2-494f-a5d4-9a1603ae1592",
    "expiry": "2019-04-01T00:43:44.456Z",
    "state": "PENDING",
    "type": "qr",
    "serviceName": "IBM Verify",
    "updated": "2019-04-01T00:42:44.456Z",
    "tenant": "companyAppTest.verify.ibm.com"
}

既存の QRLogin 検証を確認する

既存の QRLogin 検証を確認するために、verifyAuthenticator API セキュリティー資格が必要です。

既存の QRLogin 検証を確認するには、以下を含む verify-qrlogin-payload.json ファイルを作成します。
{
	"lsi": "{{qrlogin.lsi}}"
}
注: {{qrlogin.lsi}} を、新しい qrlogin 要求の開始後に受け取ったログイン・セッション索引 (LSI) の数字に置き換えます。 LSI の長さは、構成に基づく変数です。 例えば、以下のとおりです。
{
  "lsi": “B1CAE3”
}
cURL コマンド
curl -X POST \
  https://{{tenant}}/v2.0/factors/qr/{{qrlogin.ci.id}} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {{authenticator_access_token}}' \
  -H 'Content-Type: application/json' \
  -d @verify-qrlogin-payload.json
注:
  • authenticator_access_token は、 IBM Verify 登録のものでなければなりません。
  • {{qrlogin.ci.id}} を、新しい qrlogin 要求を開始したときに返されたクラウド識別子 ID の値に置き換えます。
curl -X POST \
  https://companyAppTest.verify.ibm.com/v2.0/factors/qr/77348a7f-03b2-494f-a5d4-9a1603ae1592 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer 4hFZq9U73P3MPEA40KcF54i77Z0mDhZba0InrzUe' \
  -H 'Content-Type: application/json' \
  -d @verify-qrlogin-payload.json
出力応答例
Status Code: 204

正常に検証された QR ログイン要求を取得する

以下の cURL コマンドを使用して qrlogin 要求を取得し、非認証のコンテキストの既存の QR ログイン検証の完了をポーリングします。

cURL コマンド
curl -X GET \
  'https://{{tenant}}/v2.0/factors/qr /{{qrlogin.ci.id}}?dsi={{qrlogin.dsi}}' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'
注: {{qrlogin.ci.id}} を、新しい qrlogin 要求を開始したときに返されたクラウド ID の値に置き換えます。
curl -X GET \
  'https://companyAppTest.verify.ibm.com/v2.0/factors/qr/authenticate/77348a7f-03b2-494f-a5d4-9a1603ae1592?dsi=IJL1IM9GFJLL3NK39MM2E3HN39IGH8LENENGIG2G' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'
出力応答例
{
    "updatedBy": "50FNK72W4C",
    "created": "2019-04-01T00:45:13.441Z",
    "profileId": "9fe42f1c-3d22-4d2c-99a0-8ff08c93c4b0",
    "location": "https://companyAppTest.verify.ibm.com/v2.0/factors/qr/77348a7f-03b2-494f-a5d4-9a1603ae1592",
    "id": "9df8af9c-b5eb-4b47-b518-725ac43ccccc",
    "expiry": "2019-04-01T00:46:13.441Z",
    "state": "SUCCESS",
    "type": "qr",
    "serviceName": "IBM Verify",
    "userId": "50FNK72W4C",
    "updated": "2019-04-01T00:45:19.256Z",
    "tenant": "companyAppTest.verify.ibm.com"
}

QR ログイン検証を削除する

既存の QRLogin 検証を削除するために、authnAnyUser API セキュリティー資格が必要です。

以下の cURL コマンドを使用して qrlogin 検証レコードを削除します。

cURL コマンド
curl -X DELETE \
  https://{{tenant}}/v2.0/factors/qr/{{qrlogin.ci.id}} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {{access_token}}' \
  -H 'Content-Type: application/json'
注: {{qrlogin.ci.id}} を、新しい qrlogin 要求を開始したときに返されたクラウド ID の値に置き換えます。
curl -X DELETE \
  https://companyAppTest.verify.ibm.com/v2.0/factors/qr/9df8af9c-b5eb-4b47-b518-725ac43ccccc \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer 4hFZq9U73P3MPEA40KcF54i77Z0mDhZba0InrzUe ' \
  -H 'Content-Type: application/json'
出力応答例
Status Code: 204