OAuthとSSO(シングルサインオン)の違い、言えますか?

認証に関する用語として「OAuth」と「SSO」っていう言葉、よく聞きますよね。
IPAの基本情報技術者試験や情報セキュリティマネジメント試験でも、出題されます。
会社の情シスから、このような言葉を聞いたことがあるかもしれません。
「今度からこの人事システムは、SSOで入れるようになります」
「Basic認証はもう使えなくなるので、順次OAuth認証に切り替えます」
これを聞いて「SSOはシングルサインオンのことだよね?」とだけ思って、終わっていませんか?よく耳にする「OAuth」や「SSO」の違いは何なのか?
今回は、この2つの違いを四コマ漫画でイメージ解説していきます。
この機会に、覚えてしまいましょう!
OAuth(オーオース)とは
OAuthを一言でいうと、「特定の部屋だけ入れる、会社の入館証」の仕組みです。
「オーオース」と読みます。
会社でイメージしてみましょう。
ゲストが受付で入館証を受け取ったら、そのあとは本人確認されずに部屋に入れますよね。
でも、許可された部屋以外は入れません。



※認可サーバやリソースサーバは、ざっくりイメージしやすいようにGoogleマークをつけています。
このように、ユーザーが本人確認を何度もしなくてすみ(ログイン不要)、受付(サービス)側にパスワードを教えることもなく、代わりにアクセストークンを渡すことでAPIを利用できるようになります。
アクセストークンは、暗号化された鍵のような文字列で、一定時間だけ有効な入館証のようなものです。
また、ユーザーが承諾した限定的なリソースにのみアクセスできることで、セキュリティ上も安心です。
お、おっす、(OAuth)おらパスワード知らないぞ!
でもサービス使えっぞ!
で覚えましょう。
SSO(シングルサインオン)とは
SSOを一言で言うと「一度受付したら好きなラウンジに入れる、VIPカード」です。
SSOは「エスエスオー」や「シングルサインオン」と呼びます。
会社で、1つのアカウント(GoogleやMicrosoftなど)でログインすれば、他の複数の業務システムにもアクセスできる、という方も多いでしょう。
それぞれのシステムにログインしたり、パスワードを覚えたりするのは大変ですもんね。SSOなら、最初に1度だけログインすれば、他のシステムにも自動的に入れて楽です。
SSOを実現する仕組みとしては、SAML、OpenID Connect、独自SSOなど、いくつかあります。
今回はSAML認証をイメージし、四コマ漫画にしました。
※SAMLについては後述します。



※ざっくりイメージしやすいように、idPにGoogleマークをつけています。
- idP(アイデンティティプロバイダ)➡️本人確認を行う
- アサーション➡️idPが発行し、SP(サービスプロバイダ)が受け取る、ユーザーIDやユーザーの属性情報など。SAML認証の場合はXML形式のアサーション。
シングルサインオン(SSO)で、普通に覚えましょう。
SAML(サムル)認証とは
SAML認証は、SSOの代表的な方式です。
「Security Assertion Markup Language」の略です。
パスワードの代わりに、ユーザーIDや所属情報などが含まれる「SAMLアサーション」「SAMLトークン」などと呼ばれるVIPカードのようなものを、SP(サービスプロバイダ)に渡すことで、SSOを実現します。
このアサーションには、ID情報や属性情報などが「XML」のフォーマットで記述されています。
サム(SAM)ギョプサル(L)食べすぎて、SOS(SSO)
で覚えましょう。
まとめ
OAuthとSSOは、混同されがちですが、役割が違います。
OAuthは、あるアプリケーションに対して、別のアプリケーションがアクセスできるよう「認可」を行う仕組み、SSOは一度の認証で複数サービスが利用できる、という違いがあります。ここを抑えましょう!
名称 | 一言でいうと | 特徴 |
---|---|---|
OAuth | 許可された部屋にだけ入れる 入館証 |
・オーオースと読む ・アクセストークンを使い、パスワード不要でリソースにアクセスできる |
SSO | 一度受付したら好きなラウンジに入れる、VIPカード | ・一度ログインすれば複数サービスを利用可能 ・SAML(サムル)認証やOpenID Connectなどの方式で実現される
|
もっと詳しく知りたい場合は、他の記事や書籍も参考にしてください。