事前承認リクエストを作成する

この情報を使用して、事前承認コードフローで使用される事前承認済みJWTリクエストを作成してください。

事前承認済みリクエストのペイロードに含まれるクレーム

事前承認済みリクエストのペイロードには、以下のクレームが含まれている必要があります。

表 1. MUSTの主張
クレーム名 説明 有効値
iss JWTを発行した資格情報発行者の一意の識別子 資格情報発行者の有効なURI。
sub 主要なサブジェクト ID ユーザーの固有 ID。
exp JWT の有効期限 UTC で計測される 1970-01-01T0:0:0Z からの秒数。
注: JWTの有効期限は、3600秒以降に設定することはできません。
jti JWT の ID ランダムに生成される不透明ストリング。

事前承認済みリクエストのペイロードには、以下のクレームを含めることができます。

表 2. MAYの主張
クレーム名 説明 有効値
aud 認証サーバーの発行者は、よく知られたエンドポイントに公開されています。 資格情報発行者の有効なURI。
sub_type 主要な主題識別子のタイプ。 「uid」、「username」、または 'externalId' のいずれか。 デフォルトは「uid」です。
realm 主要なサブジェクト・レルム sub 属するIDソース領域。
iat JWT の作成時間 UTC で計測される 1970-01-01T0:0:0Z からの秒数。
注: JWTの作成時刻は、過去3600秒以内である必要があります。
tx_code 認証情報発行者による事前承認設定の上書き。 トランザクションコードのクレーム表に記載されているクレームを含むJSONオブジェクト。
発行者_州 生成されたアクセストークンと、資格情報発行者のコンテキストを関連付けるための不透明な値。 任意のストリング。 JWTである場合もあります。

この tx_code 設定は、事前承認設定においてそのような上書きが許可されている場合にのみ有効になります。 このモードでは、請求 tx_code が発生すると、トランザクションコードが生成されます。 トランザクションコードの説明テーブルには、利用可能な上書きオプションが記載されています。

表 3. トランザクションコードに関する主張
クレーム名 説明 有効な値
入力モード トランザクションコードの文字セットを指定します。 「numeric」(数字のみ)または「text」(英数字)のいずれか
長さ トランザクションコードの長さを特定してください。 4~10の間の数値
description ウォレットアプリケーションがエンドユーザーに表示するメッセージ。 任意のストリング
チャネル エンドユーザーにトランザクションコードを通知する方法を説明してください。 以下の表4に記載されているクレームを含むJSONオブジェクト。

トランザクションコードの通知には、電子メール、SMS、または認証情報発行者が指定するその他の手段の3つの方法があります。 最後のオプションの場合、認証サーバーは単にトランザクションコードを認証情報発行者に返すだけです。

表4. チャンネルの主張
クレーム名 説明 有効な値
タイプ エンドユーザーにトランザクションコードを配信するためのチャネルタイプ。 「メール」、「SMS」、または「発行者」のいずれか
smsエンドユーザーのメールアドレス(type = email の場合 type )または電話番号(type = の場合)。 有効なメールアドレスまたは電話番号。

事前承認済みリクエストのペイロード例

{
  "iss": "https://www.credential-issuer.com",
  "sub": "user@idsource.com",
  "sub_type": "username",
  "aud": "https://sometenant.ice.com/oauth2",
  "exp": 1324298520,
  "jti": "araiov8werli2awerlj",
  "tx_code": {
    "input_mode": "text",
    "length": 6,
    "description": "Please provide this transaction code:",
    "channel": {
       "type": "email",
       "value": "bob@ibm.com"
    },
  },
  "issuer_state": "sa82jpawfagnns"
}

サポート対象アルゴリズム

事前承認リクエストのJWTは、 RS256、 RS384、 RS512、 ES256、 ES384、 ES512、 PS256、 PS384、および PS512 のいずれかのアルゴリズムを使用して署名できます。

このJWTは、資格情報発行者のJWKS URIに基づいて検証されます。 JWKS URI には複数の鍵が公開されている可能性があるため、署名済み JWT には、使用される鍵を一意に識別するためのヘッダー kid が含まれていることを確認してください。 認証情報発行者のJWKS URIの設定は、フェデレーション設定で行います。 発行者の識別子が、リクエストのペイロード内のクレーム iss と一致していることを確認してください。

要求の例

事前承認リクエストのJWTが生成された後、事前承認エンドポイントにリクエストを送信して、事前承認コードを生成することができます。
 curl -ki -X POST https://<tenantId>/oauth2/preauth --data "eyJhbGciOiJFUzI1NiIsImtpZCI6IjE2In0.eyJpc3Mi..." -H "Content-Type:application/jwt"