> ## Documentation Index
> Fetch the complete documentation index at: https://developers.authlete.com/llms.txt
> Use this file to discover all available pages before exploring further.

# クライアント認証における制約の厳密化

> Authlete 2.0 onwards has stricter validation of client type and client authentication method settings compared to Authlete 1.1 rejecting requests that were previously allowed with specific changes outlined in the article.

## 概要

Authlete 2.0 以降ではクライアントタイプおよびクライアント認証方式の設定値の検証がより厳密になり、Authlete 1.1では許容されていたリクエストを拒否するように変更されました。

## 変更点

具体的な変更点は下記の通りです。

|        | Authlete 1.1                                                               | Authlete 2.0 以降 |
| ------ | -------------------------------------------------------------------------- | --------------- |
| 設定値の扱い | クライアントタイプ、クライアント認証方式の設定値の如何に関わらず、トークンリクエスト時にクライアントシークレットが含まれていれば、その値を検証する。 |                 |

トークンエンドポイントにおいて、client\_id が指定されていないリクエストでも、認可コードやリフレッシュトークンの値から client\_id を導出し動作する。 | クライアントタイプ、クライアント認証方式の設定値によって振る舞いが異なる。

* A. クライアントタイプが **public** の時クライアント認証方式は **NONE** でなければならない。
* トークンエンドポイントにおいて client\_id が指定されていないとエラーとなる。また、client\_secret 等の不必要なパラメーターが含まれていてもエラーとなる。
* B. クライアントタイプが **confidential** の時
* クライアント認証方式は **NONE 以外の値**でなければならない。
* クライアント認証方式が **client\_secret\_basic** の時、クライアントシークレットがリクエストの **Authorization ヘッダー**に含まれていなければエラーとなる。
* クライアント認証方式が **client\_secret\_post **の時、クライアントシークレットが**リクエストボディ**に含まれていなければエラーとなる。
  |
  \| デフォルト設定値 | クライアントタイプ: **public**<br />クライアント認証方式: **client\_secret\_basic**                                                                                                                                                                         | クライアントタイプ: **public**<br />クライアント認証方式: **none**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |

##  Authlete 1.1 から 2.0 への移行時の注意点

Authlete 1.1 では、設定されたクライアント認証方式が client\_secret\_basic であったとしても、トークンリクエストのリクエストボディにクライアントシークレットが埋め込まれていた場合には、その値を検証します。

一方 Authlete 2.0 では、client\_secret\_basic として設定されている場合には Authorization ヘッダーにクライアントシークレットが含まれていることが必須となります。したがって上記のような、Authlete 1.1 では許容されていたリクエストについては、エラーが返却されることになります。

具体的には、下記のポイントに注意の上、設定を変更してください。

### クライアントがパブリッククライアントの場合

* サービス側の設定にて、サポートするクライアント認証方式に「NONE」が含まれていることを確認する。
* クライアント側の設定にて、  クライアント認証方式が「NONE」になっていることを確認する。
* クライアントからのトークンリクエスト中に client\_id が含まれていることを確認する。

### クライアントがコンフィデンシャルクライアントの場合

* サービス側の設定にて、サポートするクライアント認証方式が正しく設定されていることを確認する。
* クライアント側の設定にて、クライアント認証方式が正しく設定されていることを確認する。
* Authlete の /auth/token API をコールする際に、適切なパラメーターが設定されていることを確認する。
