-
Notifications
You must be signed in to change notification settings - Fork 0
MS_OIDCClientAuth
- 戻る(OpenID Connect)
Final を参照して記述。
-
OAuth 2.0 では
「クライアントは 1 回のリクエストにおいて二つ以上の認証方式を利用してはならない (MUST NOT).」
と言われている。 -
Registration の際、
Token エンドポイントにアクセスする際のクライアント認証方法を登録可能。
以下の名称は、Discovery で使用される値で、なにかのパラメタ値では無い。
補足(一覧): 以下の 5 つは、
クライアント自身が誰であるかをどう示すかの選択肢である。
下に行くほど、秘密の値をネットワークに流さない方向に強くなる。
方式 何を送るか 秘密の値が回線に乗るか none何も送らない — client_secret_basicclient_id + client_secret(Authorization ヘッダ) 乗る client_secret_postclient_id + client_secret(ボディ) 乗る client_secret_jwtclient_secret を鍵にした MAC 署名付き JWT 乗らない private_key_jwt秘密鍵で署名した JWT 乗らない FAPI のような高セキュリティ プロファイルでは、
private_key_jwt(または mTLS)が要求される。
以下のケースで Token エンドポイントでの認証を行わない場合。
- Implicit Flow
- Public クライアント
- およびその他の何らかの認証手段を用いる場合
- OAuth 2.0 の慣例(ただし、仕様に明記はない)
- Client Credential(
client_idとclient_secret)を HTTP Basic 認証スキーマで送信する。
-
OAuth 2.0 のオプション
(OIDC Core, 9. Client Authentication) - Client Credential(
client_idとclient_secret)をリクエスト・ボディに含めて送信する。
-
後述に従い、HS256 などの
(メッセージ認証符号(MAC))アルゴリズムを使用する。 - HMAC は, client_secret の UTF-8 オクテットを共通鍵として利用
-
後述に従い、RS256 などの
(デジタル署名)アルゴリズムを使用する。 - RSA および ECDSA の、署名用の公開鍵を利用
JWT bearer token authorization グラント種別の
- 「Self-Issued Assertion」の
- 「クライアント認証あり(サーバ信頼セキュリティ モデル)」
のユースケースに相当する。
こちらも、上記の「JWT Bearer Token Flow」のユースケース的。
| # | 要件 | クレーム | 値 |
|---|---|---|---|
| 1 | REQUIRED | iss | client_id |
| 2 | 〃 | sub | 〃 |
| 3 | 〃 | aud | Token Endpoint URL |
| 4 | 〃 | jti | JWTクレームセット参照 |
| 5 | 〃 | exp | 〃 |
| 6 | OPTIONAL | iat | 〃 |
補足(
issもsubも client_id): 表の 1・2 のとおり、
この JWT はクライアントが自分自身について発行するものなので、
発行者(iss)と主体(sub)がどちらもclient_idになる。
audを Token エンドポイントの URL にするのは、
別のエンドポイント宛の JWT を使い回されないようにするためで、
jti+expは同じ JWT の再利用(リプレイ)を防ぐために使う。
移行メモ(表の体裁): 元ページの表はセル結合(
|~|)で
縦方向の繰り返しを表していたが、GitHub の Markdown は
セル結合に対応していないため〃に置き換えた。
こちらも、上記の「JWT Bearer Token Flow」のユースケース的。
-
client_assertion_typeパラメタ:
urn:ietf:params:oauth:client-assertion-type:jwt-bearer
-
Final: OpenID Connect Core 1.0 incorporating errata set 1 > 9. Client Authentication
https://openid-foundation-japan.github.io/openid-connect-core-1_0.ja.html#ClientAuthentication -
OAuth 2.0 クライアント認証 - Qiita
https://qiita.com/TakahikoKawasaki/items/63ed4a9d8d6e5109e401
- OpenID Connect
- OpenID Connect - 暗号関連
- OpenID Connect - Discovery
- OpenID Connect - Dynamic Client Registration
- 暗号化アルゴリズム
Tags: IT国際標準, 認証基盤, クレームベース認証, OAuth
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。