0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OAuthの基本的な概念

Last updated at Posted at 2024-11-29

OAuth 2.0 とはなにか

  • ひとことでいうと、認可プロトコルで、本質は委譲
  • OAuth は 認可 (authorization) 誰が誰に何の権限を与えるか の仕様であり、認証 (authentication) 誰であるか の仕様ではない
  • なんの委譲かというとid/passの認証情報の委譲
  • 委譲した証がトークン
  • 例えていうと、Webにおけるバレットキー(Valet Key)
  • バレットキーとは駐車係が車を預かるサービスで使われる制限をかけたキーのこと(トランクやグローブボックスを開けないなど)
  • ポイントは、車の所有者が駐車係に実際の車の鍵ではなく、バレッドキーを渡すこと。駐車係は、バレットキーを使って、車を駐車する
  • OAuthでいうと、所有者がクライアント(APIを利用するソフトウェア)にid/passの認証情報ではなく、トークンを渡す。クライアントは、アクセストークンを使ってAPIリソースにアクセスする。認証情報を使って、所有者のふりをするのではなく、

id/passの認証情報=車の実際の鍵
トークン=バレットキー
クライアント=駐車係
APIリソース=車

image.png

  • OAuth2.0の仕様をみてみると、
    https://openid-foundation-japan.github.io/rfc6749.ja.html
    OAuthは, 認可レイヤーをもうけてクライアントとリソースオーナーの役割を分けることで, 従来の問題の解決に取り組む. (従来の問題というのは、主に、第三者のアプリケーションのユーザーの id/passの認証情報を共有していたこと。保護されたリソースにアクセスする為にリソースオーナーのクレデンシャルを使う代わりに, クライアントはアクセストークンを取得する. アクセストークンとは, ある特定のスコープ, 期間およびその他のアクセス権に関する情報を示す文字列である. →誰が誰に何の権限を与えるかの認可 (authorization) の情報を持つ。
    ここで、重要なのは「第三者のアプリケーションのユーザーに id/passの認証情報を共有しない」という点

まとめ

  • 改めて、OAuthとはなにかというと、トークンの発行と検証(署名と検証)に関すること
  • クライアントからみると、トークンの取得と使用
  • 基本的に、認証情報からトークンをつくること
  • 駐車係が車を預かるサービスで使われるバレットキーに例えると、
  • 所有者の車の鍵からバレットキーをつくること
  • 駐車係からみると、バレットキーを受け取って、駐車

Open ID Connectについて

  • OAuthの認可を認証に拡張したのが、Open ID Connect
  • 誰であるかという認証 (authentication) の情報を持つ
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?