認可リクエストでの PKCE 利用における S256 指定の強制化

Table of Contents

認可リクエストでの PKCE 利用における “S256” 指定の強制化

Authlete では、クライアントからの PKCE (RFC 7636) の利用した認可リクエストに関し、“code_challenge_method ” の値として ”S256 " の指定を強制できます。

この機能を有効化するためには、サービス編集 → 「認可」タブ → 「認可エンドポイント」セクション にある「コードチャレンジメソッド S256 」にて「要求する 」を選択します。既定値は「要求しない」です。

requiring-s256_1
「コードチャレンジメソッド S256」の設定

「要求する」に設定された Authlete サービスでは、/auth/authorization API にて、“code_challenge_method=S256 ” を含まない認可リクエストの処理を拒否します。以下は処理例です(一部折り返しています)。認可リクエストは PKCE を用いていますが、 “code_challenge_method=plain” となっています。そのため Authlete は処理を拒否しています。

  • リクエスト
% curl -s -X POST .../auth/authorization
  -u ... -H 'Content-Type: application/json'
  -d '{ "parameters": "redirect_uri=...
    &response_type=code
    &client_id=...
    &scope=...
    &code_challenge=...
    &code_challenge_method=plain" 
}'
  • レスポンス
{
  "type": "authorizationResponse",
  "resultCode": "A124308",
  "resultMessage": "[A124308] The value of the
    'code_challenge_method' request parameter
    must be 'S256'.",
...