Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

SAML(サムル)とは | 意味や読み方など丁寧でわかりやすい用語解説

SAML(サムル)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

セキュア認証マークアップ言語 (セキュアニンショウマークアップゲンゴ)

英語表記

SAML (サムル)

用語解説

SAMLは、Security Assertion Markup Languageの略であり、Webベースのシングルサインオン(SSO)を実現するための標準的なXMLベースのプロトコルである。異なるドメインに存在する複数のWebサービス間で、ユーザーの認証情報や認可情報を安全に交換するための仕組みとして広く利用されている。これにより、ユーザーは一度の認証で複数のサービスにアクセスできるようになり、利便性が大きく向上する。企業がクラウドサービスを導入する際に、既存の社内認証システムと連携させて、ユーザーが各サービスごとにパスワードを管理する手間を省き、セキュリティを強化する目的でSAMLが活用されることが多い。SAMLは、IDプロバイダ(IdP)とサービスプロバイダ(SP)という主要な役割を持つシステム間で連携し、認証プロセスを自動化する。

SAMLの詳細な動作は、主にユーザー、アイデンティティプロバイダ(IdP)、サービスプロバイダ(SP)の三者間のやり取りによって構成される。ユーザーはサービスを利用したい主体であり、PCやスマートフォンなどのブラウザを通じてWebサービスにアクセスする。サービスプロバイダ(SP)は、ユーザーにサービスを提供するアプリケーションやWebサイトのことで、SalesforceやGoogle Workspaceのようなクラウドサービスがこれに該当する。SAML認証においては、SPがユーザーの認証をIdPに依頼する側となる。アイデンティティプロバイダ(IdP)は、ユーザーの認証情報(IDとパスワードなど)を管理し、認証を実行するサーバーである。認証が成功した場合、IdPはユーザーが認証済みであることを示す「SAMLアサーション」を発行する。OktaやAzure AD、または社内のActive Directoryと連携するSSOゲートウェイなどがIdPの役割を担う。

SAMLを利用したシングルサインオンの具体的な流れは次のようになる。まず、ユーザーがログインしていない状態でSPにアクセスを試みる。SPはユーザーが未認証であると判断し、ユーザーのブラウザをIdPの認証ページへリダイレクトする。このリダイレクトの際に、SPはユーザーに対してSAML認証を要求する「SAMLRequest」をIdPに送信する。このSAMLRequestには、SPが認証結果を受け取るためのURL(Assertion Consumer Service URL)などの情報が含まれる。ユーザーのブラウザがIdPに到達すると、IdPはユーザーにIDとパスワードの入力を促し、認証処理を行う。

IdPでの認証が成功すると、IdPはユーザーが正しく認証されたことを示す「SAMLアサーション」と呼ばれるXML形式のデータを作成する。このSAMLアサーションには、認証されたユーザーの識別情報(ユーザーIDなど)、属性情報(メールアドレスや所属部署など)、認証の有効期限などが含まれる。IdPは、このSAMLアサーションに自身の秘密鍵でデジタル署名を施し、改ざんされていないことと、IdP自身が発行したものであることを証明する。このSAMLアサーションは、多くの場合、HTMLフォームのhiddenフィールドとしてユーザーのブラウザに埋め込まれ、ユーザーのブラウザを再びSPのAssertion Consumer Service URLへとリダイレクトする。

SPは、ユーザーのブラウザから受け取ったSAMLアサーションを受信する。SPはあらかじめIdPの公開鍵を保持しており、それを用いてSAMLアサーションに付与されたデジタル署名を検証する。この署名検証により、SAMLアサーションが正規のIdPによって発行されたものであり、かつ内容が途中で改ざんされていないことを確認する。署名の検証が成功し、アサーションの内容(ユーザーIDや有効期限など)にも問題がなければ、SPはユーザーを認証済みと判断し、サービスへのアクセスを許可する。この一連のプロセスを通じて、ユーザーはIdPで一度ログインするだけで、SPのサービスにアクセスできるようになる。

SAMLの導入による主なメリットは多岐にわたる。最も大きなメリットは、ユーザーの利便性向上である。複数のサービスで異なるパスワードを覚える必要がなくなり、ログインの手間が軽減される。企業にとっては、セキュリティの強化も重要な利点である。認証情報をIdPが一元的に管理するため、各SPが個別にユーザー認証情報を保持するリスクを減らせる。また、デジタル署名によって認証情報の信頼性と完全性が保証されるため、なりすましや情報改ざんのリスクを低減できる。さらに、管理コストの削減にも寄与する。各サービスごとに認証システムを構築・運用する手間がなくなり、ユーザー管理もIdP側で集約できるため、IT管理者の負担が軽減される。

一方で、SAMLの導入にはいくつかの考慮点も存在する。SAMLの設定は、SPとIdP間のメタデータの交換や証明書の管理など、やや複雑になる場合がある。特に、両者間での設定情報の正確な同期が不可欠である。また、認証の要となるIdPがダウンした場合、SAMLを利用している全てのサービスへのログインができなくなるため、IdPの高可用性を確保することが非常に重要となる。SAMLは認証プロトコルであり、認証が成功した後のユーザーセッションの管理はSPの責任となる点も理解しておく必要がある。これらの特性を理解し、適切に設計・実装することで、SAMLはWebサービスにおける安全で効率的な認証基盤として強力なツールとなる。

関連コンテンツ