CONTACT
お問い合わせ

OAuth2・OpenID Connectによる認証認可方式と認証認可フロー(OAuthダンス)

OAuth2・OpenID Connectによる認証認可方式と認証認可フロー(OAuthダンス)について説明する。

目次

認証認可方式と認証認可フロー

  1. 概要
  2. 認証認可方式について
  3. 認証認可フロー
  4. 各リクエスト・レスポンスの実際の値

1.概要

OAuth 2.0・OpenID Connectによる認証認可方式についてと認証認可フローの検証について記述する。
OAuth 2.0とはアクセス権の認可を行うプロトコルである。(RFC 6749)
OpenID ConnectとはOAuth 2.0を元にJWT(JSON Web Token)の要素を加え安全に認証情報を受け渡せるようにした認可フレームワークである。
認証認可フローの検証は認可サーバとしてKeycloakを用いる。
KeycloakとはRed Hatが開発したオープンソースソフトウェア(OSS)であり、SSOや認証・認可を行うアイデンティティアクセス管理ソフトウェアである。
  ◎ Keycloak

2.認証認可方式について

3.認証認可フロー

以下、Keycloakを用いたOAuth2.0・OpenIDConnectの認証認可フロー図である。
ID・PWによる認証の後、認可コードを受け取り、トークンの発行に使用していることがわかる。
また、アクセストークンを用いてAPIにアクセスし、APIはアクセストークンの検証を行っている。

4.各リクエスト・レスポンスの実際の値

OAuth 2.0・OpenID Connectにかかわるリクエスト・レスポンスは以下の様になっている。

認証認可フロー⑳

認証サーバに認可コードを連携
認証認可方式#1の認可コードによる付与方式で動作していることがわかる。

認証認可フロー㉒

認証サーバからトークン返却
返却されたJSONデータの中に、上からアクセストークン、リフレッシュトークン、IDトークンが存在することがわかる。

認証認可フロー㉗

WebAPからAPI呼出
Authorization: Bearerヘッダでアクセストークンを連携していることがわかる。

認証認可フロー㉙

アクセストークン検証依頼
subject_tokenでアクセストークンを連携していることがわかる。

認証認可フロー㉛

アクセストークン検証結果
トークンが返却されている。アクセス権がない場合は403が返却される。

認証認可フロー㊼

リフレッシュトークンを失効させる(ログアウト)
ログアウトする際は失効させたいリフレッシュトークンを連携していることがわかる。