MENU
Abo
某SIer勤務。
ITエンジニアです。
日々の学びをつらつらと書いています。
保有資格:
Salesforce認定アドミニストレーター  
Salesforce認定Platformデベロッパー
Salesforce認定上級Platformデベロッパー
カテゴリー
アーカイブ

ややこしい!? OAuthとSAMLの違いを解説

今日は、OAuthとSAMLという、情報セキュリティで良く使われる技術の違いをわかりやすく解説します。

ちなみに私はかつてこの2つの違いをなかなか理解できずにいました。

そんな過去の私でも理解できるように噛み砕いて解説しますね。

目次

結論

  • OAuthは、「利用していいよ」と許可を与える技術です。
  • SAMLは、「この人は既にログインしてますよ」と証明して、その情報を共有する技術です。

要するに、OAuthは「許可」、SAMLは「認証」を目的としています。

ちなみに両者とも「SSO」の一種です。

SSO(Single Sign On)とは、一度のユーザー認証で複数のシステムやサービスにアクセスできる仕組みです。

OAuthって何だろう?

OAuthは「許可(Authorization)」を主な目的としている技術です。

「このアプリやサービスに、この部分の情報だけ使わせていいよ」と許可を与える場面で使われます。

たとえば、「メールアプリ」と「カレンダーアプリ」があります。
あなたがカレンダーにメールの情報をインポートしたいとします。このとき、OAuthを使うと、カレンダーにメール情報を使わせることを許可しつつも、メールのログイン情報などを直接渡すことはありません。
安全で便利ですよね!

OAuthの特徴

  • アクセストークンを使用して、リソースへのアクセスを制御する。
  • JSONという単純な形式でデータを交換。
  • アプリからAPIにリソースアクセスを要求する場面でよく使用される。

さらに詳しいOAuthの解説は以下の記事を御覧ください。

SAMLって何だろう?

SAMLは「認証(Authentication)」を主な目的としている技術です。

「この人は既にログインしたよ」という情報を別のシステムに伝える場面で使われます。

その人の身元がすでに特定されているので別のシステムも使用して問題ないよ、という認証になります。

ここがOAuthの「認可」と違うところですね。

例えば、あなたが勤める会社で、「一回のログインで、すべてのシステムを使えるようにしたい」という場面があります。このときに、SAMLを活用すると1つのログイン情報で別のシステムにもログインすることが可能になります。
何度もログインする必要がありませんし、システムによってID/パスワードを管理する必要がなくなります。

SAMLの特徴

  • ユーザーの身元を確認し、異なるシステム間でユーザー情報を安全に交換する。
  • XMLベースのアサーションを使用して、ユーザーの認証状態と属性情報を伝達する。
  • 会社のSSOでよく使用される。

まとめ

OAuthとSAMLの違いをシンプルにまとめると以下の表のようになります。

OAuthSAML
目的許可の提供認証の提供
主な使用場面APIアクセスの制御会社のSSOでの利用
データ形式JSONXML
実装の簡単さ比較的に簡単複雑

違いをしっかり押さえましょう。

以上です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

某SIer勤務。
Salesforceエンジニアです。
日々の学びをつらつらと書いています。
Certified Administrator
Certified Platform DeveloperⅠ
Certified Platform DeveloperⅡ
Certified Sales Cloud Consultant

コメント

コメントする

CAPTCHA


目次