メメメモモ

プログラミング、筋トレ、ゲーム、etc

SAML / OAuth2.0 / OpenID Connect / SSOの関係(細かい仕組みの話は無し)

概要

SAML / OAuth2.0 / OpenID Connect / SSO など、認証認可周りで色々な用語が出てきて、それぞれの関係性がよく分からなかったので、調べてざっくりとまとめてみました。

「認証」と「認可」

まず、「認証」と「認可」という概念を簡単におさえておきます。 本題のプロトコルはこの二つの概念を取り扱うからです。

TwitterにIDとパスワードを入力してログインし、ツイートする
という操作を基に説明します。

TwitterにIDトパスワードを入力してログイン」が、「認証」に当たる部分です。正規のTwitterユーザーかどうかを確認する処理です。

ツイートする」は、「認可」された操作と言えます。「ツイート」はログインしたユーザーに対してのみ許可されています。

それぞれのプロトコル

OAuth2.0

HTTP上で「認可」を行うためのプロトコルです。 TwitterFacebookなどのWebサービスで使われています。

OpenID Connect

OAuth2.0を拡張したプロトコルです。OAuth2.0では標準化されていないUserID情報の取得について標準化しています。Facebook Connectの実装に影響されています。

SAML

「認証」と「認可」を行うためのプロトコルです。会社で運用しているActiveDirectoryで管理しているIDと、連携するために使われています。

SSO(シングルサインオン)

SSOとは、一つのIDとパスワード(認証)で、複数のWebサービスクラウドサービスを利用することが可能(認可)になることです。 上記のプロトコルを使うことによって実現でき、これを「フェデレーション形式のシングルサインオン」と呼びます。

参考