2024-10-31
数年前から Cognito で ID プロバイダーによる SAML 認証を見かけている(運用しているとは言い難い)。それなのにいまだに SAML ってなんだという状態。そこで 30 分で RFC を読んでみる(今 23:30 だから早くコミットしないといけない)。
まず、目の前の RFC は正しいのか疑問。
https://datatracker.ietf.org/doc/html/rfc7522
RFC 7522 でいいのかわからないが、時間がないので読み始める。
Security Assertion Markup Language (SAML) 2.0 Profile for OAuth 2.0 Client Authentication and Authorization Grants
「OAuth 2.0 クライアント認証および認可のためのセキュリティアサーションマークアップ言語 (SAML) 2.0 プロファイル」というタイトル。プロファイルってなんだ。
主に IT 分野の標準化された規格などで定められた、共通の技術仕様やプロトコルをまとめたもの。
goo 辞書によると技術仕様という意味らしい。
「OAuth 2.0 クライアント認証および認可のためのセキュリティアサーションマークアップ言語 (SAML) 2.0 技術仕様」という訳がよさそう。
OAuth 2.0 とは何だろう。RFC 6749 に記載されているらしい。
https://datatracker.ietf.org/doc/html/rfc6749
ここで別の RFC に飛ぶのはつらいので Auth0 のサイトを参考にする。
「オープンオーソライゼーション」を意味する OAuth 2.0 は、ウェブサイトまたはアプリケーションが、ユーザーに代わって他のウェブアプリがホストしているリソースに、アクセスできるよう設計された基準です。2012 年に OAuth 1.0 の後を継ぎ、現在、事実上、オンライン認可の業界基準となっています。OAuth 2.0 は、ユーザーの認証情報を共有しなくても、ユーザーに代わって、合意されたアクセスを提供し、クライアントアプリがリソースに対して実行できるアクションを規制します。
Auth0 を参考にすると以下のような役割があるらしい。
これらは Cognito を使っていると慣れ親しんだ概念のように思える。最後の認可サーバの 2 つのエンドポイントは意識しないが。
日が変わりそうなので今日はここまでにする。