はじめに
環境
-
macOS Big Sur(11.5.2)
前提条件
本文
OAuthとは、OpenID Connectとは
OAuthとは
-
APIの利用可否を実行時にアクセストークンの提示を要求する方法がOAuth2.0という技術仕様で定義されている
-
アクセストークンを発行するサーバをOAuth2.0では認可サーバと呼んでいる
-
ユーザーが許可した場合のみプログラムはAPI利用に必要なアクセストークンの発行ができる、事前にアクセストークンを受け取っておく必要があるのがOAuth2.0の特徴
OpenID Connectとは
-
SSOでユーザー認証の結果と同時にユーザー情報もサービス間で伝播させるようなしくみをID連携と呼ぶ
-
ID連携の実現方法のうちOpenID Connectという技術仕様がある
-
OpenID Connectはユーザー認証方法については仕様の範囲対象外と明記している
-
ユーザー認証の結果やユーザー属性情報の表現方法について規定しており、そのデータ形式をIDトークンと呼ぶ
-
ユーザー認証を行い、IDトークンを発行するサーバをOpenID ConnectではOpenIDプロバイダと呼ぶ
まとめ
-
APIの機能提供時に利用されるのがアクセストークン
-
サービス間でのユーザーの認証結果や情報の連携に利用されるのがIDトークン
-
役割は違うもののアクセストークンとIDトークンは同一サーバで一連の流れの中で発行されることが多い
知っておきたい仕様と規格
-
トークン発行処理の流れにはいくつかのバリエーションがあり、そのうちの一つに認可コードフローがある
-
OAuth2.0の目的が、クライアントをユーザー認証に介在させることなくクライアントにAPIアクセス権限を与えることにあるので、Webブラウザを介した間接的なやりとりはOAuth2.0の設計として意図したもの
参考記事
川﨑貴彦、 「挫折しないOAuth/OpenIDConnect入門」、 2021/10