パスワードなしの認証の QR ログインの概要

アプリケーションは、qrlogin 検証トランザクションを開始し、ユーザーが IBM Verify を使用してその検証要求を完了するまで待機してから、ランタイム・アクセスを続行できます。

注: この認証要素では、特定の登録は不要ですが、ユーザーが「 IBM Verify 」モバイル認証アプリを少なくとも1つ登録している必要があります。

ワークフロー

QRLogin のワークフローは、3 つの主なステップで構成されます。
新しい QR コード・ログイン検証レコードを作成する
  • このステップで、新しい qrlogin 検証レコードを作成します。
  • 要求は、非認証のコンテキストで生成されます。
  • 応答には、オーセンティケーター・アプリケーションが検証を完了するための詳細情報でスキャンされる、QR コードが含まれます。
既存の QR ログイン検証の完了をポーリングする
  • このステップで、スキャン・デバイスが QR コードをスキャンして検証を完了したのか、または検証要求が他の完了状態に移行したのかを判別します。 例えば、成功、タイムアウト、失敗などです。
  • 要求は、非認証のコンテキストで生成されます。
  • 応答には検証要求の状態が含まれ、この状態によって検証トランザクションが完了したかどうかを判別します。
既存の QR ログイン検証を完了するように試行する
  • このステップで、保留中の検証トランザクションの状態が成功状態に変化します。
  • 要求は、非認証のコンテキストで生成される必要があります。 qrlogin 検証を確認するために、API セキュリティー資格が必要です。
  • 要求が正常に処理された場合、応答には HTTP 状況コード 204 が含まれます。

前提条件

  • 管理者に API クライアント用のクライアント ID とクライアント秘密鍵を要求する必要があります。 「APIクライアントの作成」 を参照してください。
  • OID Cアクセストークンを取得します。

手順

  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 は、後続の検証試行でモバイル・オーセンティケーターが使用する 1 回限りのコードであり、ログイン・セッション・インデックスの略です。これは、ランダムな英数字ストリングです。 このストリングは、ログイン・セッション索引の構成データ・モデルを使用して生成されます。 構成オプションは、ログイン・セッション索引 ID の長さ、および英数字 ID を生成するために使用する文字セットです。
DSI DSI はポーリングのために使用され、デバイス・セッション索引の略です。このストリングは、デバイス・セッション索引の構成データ・モデルを使用して生成されます。 構成オプションは、デバイス・セッション索引 ID の長さ、および英数字 ID を生成するために使用する文字セットです。

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