SAMLとは、シングルサインオンを実現するための仕組みとして知られていますが、具体的にどのようなものかを知らないという方も多いでしょう。現在では多くのWebアプリケーションがSAMLを用いたシングルサインオンを実現しようと奮闘していることもあり、導入を検討している方にとっては、SAMLについて触れることは避けては通れない道でもあります。
今回はSAMLがどのようなものであるのか理解するために、その原理やメリットからSAMLを用いたシングルサインオンの実現方法までを詳しく解説します。
SAML(Security Assertion Markup Language)の概要
SAMLという言葉を、シングルサインオンの仕組みのひとつとしてよく目にするという方も多いと思います。SAMLとはどのようなものなのか、SAMLの概要やメリットをご紹介します。
SAMLとは
SAMLとは、シングルサインオンの仕組みを実現するためのプロトコルです。プロトコルとは、コンピューター間で情報をやり取りするための規格で、互いのコンピューターが同じプロトコルを所有することで、情報のやり取りをスムーズに行うことができます。
シングルサインオンは、複数のクラウドサービスへのログインを単一パスワードで実行できる仕組みを持ちますが、SAMLが採用されるまでのシングルサインオンでは複数のクラウドサービスとの連携が難しい上、規格が統一されていなかったため、適合性が不明確になりやすいことが課題でした。
しかしながら、SAMLの導入により上記の問題が解消され、スムーズに複数のクラウドサービスにおけるシングルサインオンとの連携ができるようになりました。
SAMLには何が記述されるのか
SAMLには、基礎的な概念として「アサーション」というものが存在します。これはユーザーの認証情報や権限の認可などのセキュリティ情報を、XML文法で記載したものです。
複数のコンピューターとの間でアサーションのやり取りを行うことで、シングルサインオンが連携されます。
アサーションではセキュリティ情報を記述するために、3種類のステートメントがあります。
1つ目が「認証ステートメント」です。これは認証時刻や場所といった認証状況を含むもので、ユーザーを認証したコンピューターが作るものです。2つ目が「属性ステートメント」といい、ユーザーの氏名、年齢や社会的属性などの情報を含むものです。3つ目が「認可決定ステートメント」で、認証によりユーザーに与えられる権限の宣言を行うものです。特定のファイルへアクセスする権利や限られたユーザーだけが認められた行動をできるようになります。SAMLはこういった情報をコンピューター間で送り合い、適合性を判断しているのです。
SAMLを用いたシングルサインオンのメリット
SAMLを用いたシングルサインオンを導入するメリットといえば、幅広いサービスへの対応です。ユーザーは一度だけサインインすれば、追加認証をする手間なく複数のクラウドサービスへログインが可能になります。クラウドサービスを普段から利用している方にとっては利便性が向上するでしょう。
次にセキュリティの向上です。従来は、クラウドサービスに登録するごとにパスワードを設定していましたが、複数のパスワードを保管するとなると、付箋にパスワードを書いて貼っておくとか、同じパスワードを使い回すなどの方法で管理する社員も多く、セキュリティに問題がある方法で管理されるという課題がありました。しかしSAMLを用いたシングルサインオンの導入によって、パスワード管理がシンプルとなり、情報漏えいの危険性を抑えることができます。
また、SAML は、システム間の相互運用をシームレスに行うため、実装の標準化としてさまざまな実装に関係する問題を取り除き、快適かつ安全なクラウドサービスの利用を可能にしています。
SAMLによるシングルサインオン実現の流れ
SAMLを用いるとはいえ、シングルサインオンをどのように実現すれば良いのでしょうか
SAMLによるシングルサインオン実装の流れを詳しく解説します。
IdPとSPの事前連携
はじめに、IdP(Identity Provider)とSP(Service Provider)を定義します。IdP とはユーザー認証情報を提供する側のことであり、認証成功後にはユーザーの属性や期限情報、発行IdPや署名などから構成されるアサーションが発行されます。一方SPとは、認証後にWebコンテンツを提供するWebサーバのことで、認証情報を要求する側となります。認証方式が SAML に対応したものに限り、認証を受けたユーザーの属性等の情報に応じて、サーバ内にあるコンテンツを提供します。
このユーザー情報により、ユーザーの権限が決まるため注意が必要です。そしてIdPとSPでユーザーIDを共有します。IdPとSPは事前に両者で用いるユーザーIDに紐づけることで、それぞれがどのユーザーと対応しているかを明らかにします。
IdPによる認証
IdPとSPの事前連携が終わったら、ユーザーはIdPによる認証を受けます。はじめにユーザーはSPへのアクセスをします。SPへのアクセスによりSP側はSAML認証要求を生成します。認証を行うために、SPへアクセスしようとしたユーザーを一度IdPにリダイレクトします。それをIdP側が確認し、既存のユーザーとしてログイン済みであるか否かを判断します。
IdPの認証に成功すると、IdPはSPに送るアサーションを生成します。ユーザーが認証されているかどうかを確認し、もし認証されていない場合は、ユーザーに認証の詳細を入力するよう求められます。
IdPからSPへのアサーション送信
IdPはアサーションをSPに送信します。アサーションには、ユーザーがIdPとSP両方のユーザーリストに含まれているか、IdPの認証を受理されたユーザーであるか、SPが必要とするユーザーの属性を満たしているかどうかといったユーザー情報が含まれています。これを基にSP側が受け取った情報が信用できるものであるかを判断します。信用できるものとして見なされた場合にのみユーザーに許可が与えられ、シングルサインオンが実現します。これにより、パスワードなどを直接SPに渡すことなく、クラウドサービスが利用可能となります。
まとめ
SAMLを用いたシングルサインオンは、今やさまざまなクラウドサービスを併用する企業が多いビジネスワークにとって、必要不可欠な存在となりつつあります。HENNGEではSAMLを用いたシングルサインオンが利用できる「HENNGE One」を提供しています。
シングルサインオンの他にも、ユーザーアカウント管理、アクセス状況監視など、包括的でセキュアなサービスを提供しており、クラウドサービスの利便性を保ったまま、セキュリティ性能を向上させることが可能です。Microsoft 365、G Suiteをはじめとした幅広いクラウドサービスに対応し、複数のクラウドサービスを活用している方のビジネスワークを力強くサポートします。SAMLを用いたシングルサインオンの導入を検討している方は、「HENNGE One」で利便性とセキュリティの両立を目指してみてはいかがでしょうか。
- カテゴリ:
- ID管理
- キーワード:
- セキュリティー対策