SAML(Security Assertion Markup Language)
① 物語性を取り入れた説明: 「SAML」
高校生のナオは、学校でのIT授業中に「SAML」という単語を耳にしましたが、何のことか理解できませんでした。そこで、先生に質問しました。
「先生、SAMLって何ですか?」
先生はにっこり笑って答えました。「良い質問だね、ナオ。SAMLは、Security Assertion Markup Languageの略なんだ。簡単に言うと、SAMLは異なるウェブサイト間で、一度のログイン情報を使って安全に認証するための仕組みだよ」
「一度のログイン情報を使う…って、どういうことですか?」とナオ。
「例えば、ナオが学校のポータルサイトにログインしたとしよう。その後、図書館のサイトにアクセスしても、もう一度ログインする必要がなく、ポータルサイトのログイン情報を使って図書館のサイトにもアクセスできるんだ」
「なるほど、IDとパスワードを何度も入力しなくても良いということですね!前に教わったシングルサインオン(SSO)とはどう違うのですか?同じように聞こえてしまいますが」
先生はナオの質問にうなずきながら説明を続けました。
「いいところに気づいたね、ナオ。実は、SAMLはSSOを実現するための一つの方法なんだ。シングルサインオン自体は、複数のサービスに一度のログインでアクセスできる仕組みのことを指すんだけど、SAMLはその仕組みを実現するための具体的な技術やプロトコルなんだよ」
「なるほど、SSOという概念の中でSAMLが使われることがあるということですね?」
「その通り!SAMLは、特に企業や学校などの組織で広く使われているSSOの手法で、Webアプリケーション間の安全な認証情報のやり取りを可能にしているんだ。たとえば、先ほど話したようにナオが学校のポータルサイトにログインしたとき、そのログイン情報を図書館のシステムにも安全に共有できるんだよ」
「理解できました!SAMLがSSOを支える技術の一つで、ログイン情報のやり取りを安全に行う役割を持っているんですね。でも、SAML以外にSSOを実現する方法はあるんですか?」
「いい質問だね!他にも、OAuthやOpenID Connectといったプロトコルがあるんだ。それぞれに特徴があって、OAuthは特にアプリ間でデータへのアクセス権を管理するのに使われることが多い。OpenID Connectは、SAMLと似たような役割だけど、より軽量でWebやモバイルアプリに適しているんだ。まとめると下記のようになるよ。」
項目 | SAML | OAuth | OpenID Connect |
---|---|---|---|
用途 | SSOの実現 | データへのアクセス権管理 | SSOの実現(軽量版) |
主な利用シーン | 企業内のシステム間の認証 | Webサービスやアプリ間でのアクセス権管理 | Webやモバイルアプリでの認証 |
プロトコル形式 | XMLベース | トークンベース | JSONベース |
認証情報 | ユーザーの認証情報 | アクセストークン | IDトークン |
セキュリティ | 高い | 高い(データアクセスに特化) | 高い(Webやモバイルアプリで利用しやすい) |
主な特徴 | 複数のWebアプリケーション間の認証 | データの共有やアプリ間連携を実現 | SAMLよりも軽量で迅速な認証 |
「なるほど…、それぞれのプロトコルが異なる用途に特化しているんですね!SSOが複数の技術によって支えられていることがよく分かりました」
「そうだね、ナオ。技術の違いを理解して、どの場面でどのプロトコルを使うのが最適かを考えることが大切だよ。もしもっと詳しくしたかったら技術の泉シリーズのSAML入門を読んでみるといいよ」
② 実際の事例: SAMLの使用例
多くの企業や教育機関では、SAMLを使ったシングルサインオン(SSO)を導入しています。
例えば、ある大手企業では、社内のメール、会議アプリ、ファイル共有サービスなどの異なるシステムにおいて、SAMLを用いたSSOを導入しています。これにより、社員が一度ログインするだけで、複数の業務ツールにアクセスできるようになります。
また、政府機関でもSAMLを使用して、セキュアなデータアクセスを実現しています。例えば、住民情報管理システムでは、住民が一度認証するだけで、税務や福祉関連のサービスにアクセスできる仕組みをSAMLを用いて実現しています。これにより、利便性が向上し、セキュリティも強化されています。
③ クイズや小テスト
クイズ1 SAMLの主な目的は何ですか?
A. 異なるサービス間での認証を安全に行う
B. ソフトウェアの設計を簡単にする
C. インターネットの速度を上げる
クイズ2 SAMLは何に使われますか?
A. データのバックアップ
B. シングルサインオンの実現
C. ウイルスの駆除
クイズ3 SAMLとOAuthの違いは何ですか?
A. 両方とも認証に使われる
B. SAMLは認証、OAuthはアクセス権管理
C. SAMLはデータ暗号化に特化している
回答
- A – SAMLは、異なるサービス間での認証を安全に行うために使われます。
- B – SAMLはシングルサインオンを実現するためのプロトコルです。
- B – SAMLは認証プロトコル、OAuthはアクセス権管理プロトコルです。
応用情報技術者試験 令和4年春 問36