OpenID Connect 相互 TLS クライアント認証および証明書にバインドされたアクセス・トークン

OpenID Connect for Open Banking アプリケーションは、クライアント認証に相互 TLS (MTLS) クライアント証明書を使用するように構成できます。 クライアント・シークレットを保管して使用する代わりに証明書を使用してクライアント認証を実行できるように、クライアントの証明書の詳細を登録します。

アクセス・トークンとリフレッシュ・トークンは、https://{{tenant}}/oauth2/tokenエンドポイントでIBM® Verifyとの相互 TLS 接続を確立するために使用される証明書にバインドできます。 この接続は、リソース・サーバーがトークンを検証し、その特定のアクセス・トークンを使用するために同じ証明書が存在しなければならないことを強制する必要がある場合に、「所有の証明」として使用されます。 この「所有証明」は、保護リソースにアクセスするために盗まれたアクセス・トークンの使用を防止します。 このトークンをイントロスペクトすると、証明書のサムプリントを含む「cnf」確認メソッド・クレームが返されます。
{
	"iss": "https://server.example.com",
	"sub": "ty.webb@example.com",
	"exp": 1493726400,
	"nbf": 1493722800,
	"cnf": {
		"x5t#S256": "bwcK0esc3ACC3DB2Y5_lESsXE8o9ltc05O89jdN-dg2"
	}
}
注: MTLSクライアント認証は、証明書に紐づくアクセストークンの前提条件ではありません。 別のクライアント認証方式 (秘密鍵 JWT など) をクライアント認証に使用できますが、生成されたアクセス・トークンは引き続き証明書にバインドできます。

前提条件

  • 登録済み CA バンドルとともに、テナントのカスタム・ドメイン・ネームを構成します。 これは通常、Verifyテナントの作成時または更新時に提供されます。
  • 相互 TLS クライアント認証を使用するようにリライング・パーティー・クライアントを構成します。
  • 証明書にバインドされたアクセス・トークンを検証するように、リソース・サーバーまたはリソース API ゲートウェイを構成します。

手順

  1. 「連携の管理」資格を有効にして API クライアントを作成します。 「APIクライアントの作成」 を参照してください。
  2. API クライアント資格情報を使用してトークンを取得します。 「OIDCトークンの管理」 を参照してください。
  3. このトークンを使用してエンドポイントにアクセスし、連携を構成します。 mtlsEndpointBaseURIの新しい値で OpenID Connect 連携を更新します。 この構成パラメーターの値は、HTTPS スキーマとカスタム・ドメイン・ネームを含む URL です。 例えば、 https://customdomain.jke.comなどです。 OpenID Connect フェデレーション・エンドポイントの API 資料を参照してください。
  4. OpenID Connect for Open Banking アプリケーションを作成または変更するには、以下の設定が構成されていることを確認してください。
    • クライアント認証方式をMutual TLSに設定します。
    • TLS クライアント認証属性を、サポートされる属性の 1 つに設定します。 例えば、サブジェクト代替名の E メール・アドレスSAN email addressなどです。 この属性は、TLS クライアント認証の実行時に突き合わされる証明書属性です。
    • TLS クライアント認証属性の値を、突き合わせる値に設定します。 例えば、SAN email address属性が選択された場合、この属性は E メール・アドレスです。
    • certificate-bound access tokensを有効にします。