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

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

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

作成日: 更新日:

読み方

日本語表記

セキュア アサーション マークアップ ランゲージ認証 (セキュア アサーション マークアップ ランゲージ ニンショウ)

英語表記

SAML Authentication (サムル オーセンティケーション)

用語解説

SAML認証は、Security Assertion Markup Languageの頭文字を取ったものであり、複数のウェブサービス間でユーザーの認証情報を安全にやり取りするための標準的なプロトコルである。主にシングルサインオン(SSO)を実現する目的で利用され、ユーザーが一度認証を受けるだけで、連携する複数のサービスにアクセスできるようになる仕組みを提供する。

概要として、SAML認証は、IDプロバイダ(Identity Provider, IdP)と呼ばれる認証を行うサービスと、サービスプロバイダ(Service Provider, SP)と呼ばれる認証を要求するサービスの二者間で成り立っている。ユーザーがサービスプロバイダにアクセスした際、サービスプロバイダはユーザーの認証をIDプロバイダに委ねる。IDプロバイダはユーザーを認証し、その結果とユーザーに関する情報をSAMLアサーションという形式でサービスプロバイダに送信する。サービスプロバイダはこのアサーションを検証し、ユーザーが正当な利用者であることを確認すると、サービスへのアクセスを許可する。これにより、ユーザーは各サービスごとに個別にログインする手間が省け、システム管理者にとってもユーザー管理の負担が軽減される。また、認証情報の一元管理によりセキュリティの向上も期待できる。SAMLはXMLベースの言語で認証情報を記述するため、異なるプラットフォームやシステム間でも相互運用が可能である点が特徴である。

詳細に入ると、SAML認証の具体的な流れと、それに伴う技術的な要素を理解することが重要となる。この認証プロセスには、主に「ユーザー(またはプリンシパル)」、「サービスプロバイダ(SP)」、「IDプロバイダ(IdP)」の三者が関与する。

まず、ユーザーがサービスプロバイダにアクセスすることから始まる。この際、ユーザーはまだ認証されていない状態である。サービスプロバイダは、ユーザーが認証されていないことを検出すると、ユーザーをIDプロバイダにリダイレクトする。このリダイレクトの際に、サービスプロバイダは「認証リクエスト(AuthnRequest)」と呼ばれるXML形式のメッセージをIDプロバイダに送信する。この認証リクエストには、どのサービスプロバイダからのリクエストか、認証が成功した場合にどこに戻るべきかなどの情報が含まれる。

次に、IDプロバイダは認証リクエストを受け取ると、ユーザーに対して認証処理を実行する。これは、ユーザー名とパスワードの入力画面を表示し、ユーザーがそれらを入力して正当性を確認するプロセスが一般的である。IDプロバイダは、ユーザーが入力した認証情報が正しいことを確認すると、ユーザーが認証された状態とする。

認証が成功した後、IDプロバイダは「SAMLアサーション(Assertion)」と呼ばれるXML形式のメッセージを生成する。このSAMLアサーションには、認証が成功したこと、認証されたユーザーの識別子(ユーザー名やメールアドレスなど)、認証が行われた日時、さらにはユーザーの属性情報(部署名、役割など)が含まれる。SAMLアサーションは、IDプロバイダによってデジタル署名される。このデジタル署名により、SAMLアサーションがIDプロバイダによって発行されたものであることの証明(改ざんされていないこと)と、送信元の真正性が保証される。場合によっては、アサーションの内容が暗号化されることで、機密性の保護も行われる。

IDプロバイダは、生成したSAMLアサーションをサービスプロバイダに送信する。この送信は、通常HTTP POSTメソッドを介して行われる。つまり、IDプロバイダはSAMLアサーションを含むHTMLフォームを生成し、そのフォームをユーザーのブラウザに渡す。ユーザーのブラウザはそのフォームをサービスプロバイダに自動的にPOSTすることで、アサーションがサービスプロバイダに届けられる。

サービスプロバイダはSAMLアサーションを受け取ると、まずその信頼性を検証する。検証プロセスには、SAMLアサーションのデジタル署名が正当なIDプロバイダの公開鍵によって署名されているかどうかの確認、アサーションの有効期限のチェック、対象とするサービスプロバイダ宛てであるかどうかの確認などが含まれる。これらの検証が全て成功した場合、サービスプロバイダはSAMLアサーションの内容を信頼し、その情報に基づいてユーザーをサービスにログインさせる。これにより、ユーザーは複数のサービスにわたって一度の認証でアクセスできるシングルサインオンが実現される。

SAML認証における主要な技術要素としては、先述のXMLがメッセージの構造を定義し、HTTPが通信手段を提供する。デジタル署名はメッセージの完全性と送信者の信頼性を保証し、この署名には公開鍵暗号基盤(PKI)の技術が利用される。具体的には、IDプロバイダが持つ秘密鍵で署名し、サービスプロバイダがIDプロバイダの公開鍵証明書を用いて署名を検証する。

SAML認証は、その標準化されたプロトコルにより、異なるベンダーが提供するシステム間での連携を容易にする。これにより、企業や組織がクラウドサービスを利用する際に、既存の社内システムと連携して一貫した認証基盤を構築することが可能となる。一方で、初期設定の複雑さや、多岐にわたる設定項目を正確に理解する必要があるため、導入には一定の専門知識が求められる側面もある。しかし、一度設定が完了すれば、ユーザーの利便性向上、セキュリティ強化、そしてIT管理の効率化に大きく貢献する強力なツールとなる。

関連コンテンツ