概要
SAML / OAuth2.0 / OpenID Connect / SSO など、認証認可周りで色々な用語が出てきて、それぞれの関係性がよく分からなかったので、調べてざっくりとまとめてみました。
「認証」と「認可」
まず、「認証」と「認可」という概念を簡単におさえておきます。 本題のプロトコルはこの二つの概念を取り扱うからです。
TwitterにIDとパスワードを入力してログインし、ツイートする
という操作を基に説明します。
「TwitterにIDトパスワードを入力してログイン」が、「認証」に当たる部分です。正規のTwitterユーザーかどうかを確認する処理です。
「ツイートする」は、「認可」された操作と言えます。「ツイート」はログインしたユーザーに対してのみ許可されています。
それぞれのプロトコル
OAuth2.0
HTTP上で「認可」を行うためのプロトコルです。 TwitterやFacebookなどのWebサービスで使われています。
OpenID Connect
OAuth2.0を拡張したプロトコルです。OAuth2.0では標準化されていないUserID情報の取得について標準化しています。Facebook Connectの実装に影響されています。
SAML
「認証」と「認可」を行うためのプロトコルです。会社で運用しているActiveDirectoryで管理しているIDと、連携するために使われています。
SSO(シングルサインオン)
SSOとは、一つのIDとパスワード(認証)で、複数のWebサービスやクラウドサービスを利用することが可能(認可)になることです。 上記のプロトコルを使うことによって実現でき、これを「フェデレーション形式のシングルサインオン」と呼びます。