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

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

手順

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

新しい QRLogin を開始する

新しい QR コード・ログイン検証レコードを作成するには、以下の cURL コマンドを使用して新しい QR ログイン検証要求を開始します。
注:{{profile.id}} 、 IBM Verify に登録済みの有効なプロファイル識別子に置き換えてください。 「登録プロファイルの管理」 を参照してください。
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 "
}
注:Base64-encoded のQRコードテキスト変換ツールに、の b64QRCode 値をコピーして貼り付けることで、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.dsi}}{{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'
出力応答例
{
    "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