OAuth/OpenIDConnect入門

2022-10-29 OAuth OpenIDConnect

はじめに

環境

  • 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