ESET/サイバーセキュリティ情報局
パスワード不要でログインできる技術SAML認証について解説
本記事はキヤノンマーケティングジャパンが提供する「サイバーセキュリティ情報局」に掲載された「SAML認証とは?シングルサインオン(SSO)を実現する仕組み」を再編集したものです。
SAML認証はシングルサインオン(SSO)を実現する方式の1つとして広く利用され、その都度パスワードの入力が不要でログインが可能になる、ユーザーの利便性や安全性の向上に寄与する技術だ。この記事では、SAML認証の概要とともに、利用する上でのメリットとデメリット、そして、関連する認証技術について解説する。
SAML認証とは
SAMLは、認証と認可に関する情報をXML形式でやり取りするための標準規格である。Security Assertion Markup Languageの頭文字からなる略称であり、「サムル」と呼称される。XMLに関する標準化を推進する団体OASIS(Organization for the Advancement of Structured Information Standards)によって2002年にSAMLは策定された。そして、2005年には新たなバージョンであるSAML v2.0が公開され、現在に至る。
SAMLは、異なるドメイン間でのシングルサインオン(SSO)を実現する方法の1つだ。ユーザーは一度ログインを行えば、SAML対応の各種アプリケーションへログインできるようになる。自社ネットワーク内のオンプレミス環境だけでなく、異なるパブリック・クラウド上のアプリケーション間であっても、ドメインをまたがったSSOを実現する。
SAMLを用いたSSOはフェデレーション方式と呼ばれる。SAML以外にもOpenID Connect、OAuthなどのプロトコルも利用されているが、一般的にはSAMLを採用しているケースが多い。
SSOの一種として、ソーシャルログインがある。一度、ソーシャルメディアにログインすることで、連携するサービスもユーザーが連携を許可することで利用できることから、利便性が高く、導入するWebサービスが増えている。このソーシャルログインを実現する技術としても、SAMLが利用されている。
SAML認証導入によるメリット
SAMLを用いた認証を導入することで得られるメリットを以下に解説する。
1)ユーザーの利便性向上
SAMLに限らず、SSO全般に言えることだが、一度のログインで複数のサービスが利用できるのは、ユーザーにとっての利便性を大きく向上させる。近年は特に、ユーザーが利用するクラウドサービスの数も増えており、それぞれのログイン情報を管理するのが煩雑になっているという背景がある。
2)セキュリティの向上
利用するクラウドサービスが増加したことから、認証情報の管理が煩雑になり、パスワードの使い回しなどが生じる恐れがある。その結果、情報漏えいや不正アクセスにつながるリスクが高まってしまう。そこで、SSOを導入することで1つのパスワードに集約できるため、パスワードの使い回しが起こらず、セキュリティ向上に寄与する。
3)IT部門の負担軽減
先述した認証情報の管理に関連して、従業員のパスワード再発行のような社内サポート業務が削減できるため、IT部門の負担が軽減される。加えて、従業員の入退社、組織変更、企業合併といった場合でも、アカウント情報の変更作業に関わる工数を削減できるのがメリットだ。
また、SAMLはユーザーの属性情報などを設定できるため、クラウドサービスが提供する機能のうち、どのように利用権限を付与するかといった、認可の管理が容易に行える。こうした特長を活用し、部門ごとにアクセスできる機能や、閲覧できるデータを制限するといった使い方が想定される。
SAML認証のデメリット
SAMLの導入には、上記のメリットだけでなく、以下のようなデメリットも生じ得る。
1)導入先の認証プロトコルに依存する
クラウドサービスのすべてがSAML認証に対応しているわけではない。対応していない場合、クラウドサービスへSSOを実装するには、別途費用が生じる可能性がある。あるいは、別途、リバースプロキシ経由でのSSO実装を余儀なくされるケースがある。
2)不正アクセス時の被害が甚大になりやすい
認証システムを1つにまとめているため、不正アクセスを受けた場合、ネットワーク全体へと被害が広がりやすいというリスクもある。また、SSOの認証システムが停止した場合、すべてのシステムへログインできなくなり、業務が停止してしまう。インシデント発生時の可用性や、事業継続性について事前に対策を練っておく必要がある。
SAML認証の仕組み
SAML認証では、IDプロバイダー(IdP:Identity Provider)と呼ばれるサーバーが認証情報を保存・管理する。そして、ユーザーが利用するサービス(メールやストレージ、CRMなど)の提供元をサービスプロバイダー(Service Provider)と呼ぶ。ユーザーがSAMLを介したSSOの対象になっているサービスにアクセスした場合のログインのプロセスは以下のとおりだ。
1. ユーザーがサービスプロバイダーにアクセスする
2. サービスプロバイダーがSAML認証を要求し、ユーザーはIDプロバイダーへリダイレクトされる
3. ユーザーが、IDプロバイダーによって表示された認証画面で認証情報を入力する
4. IDプロバイダーが認証を確認し、許可された場合、ユーザーはサービスプロバイダーへリダイレクトされる
5. 上記処理完了後、ユーザーはサービスプロバイダーへログイン可能となる
SAML認証を実現する上で、重要な要素としてSAMLアサーションが挙げられる。SAMLアサーションとは、認証に成功したときにIDプロバイダーが発行するメッセージだ。ユーザーに関する認証・認可の情報がXML形式で出力されるもので、サービスプロバイダーが受信し、内容を確認する。このSAMLアサーションには、以下3種類の形式がある。
1)認証アサーション
ユーザーがログインした時間や場所、認証方法(パスワードや多要素認証)に関する情報を含む。
2)属性アサーション
名前や年齢、決済情報といったユーザーに関する情報を提供する。
3)認可決定アサーション
特定のファイルへのアクセス要求に対し、ユーザーに権限が付与されているかどうかを判定した結果を示す。
SAMLアサーションを受信したサービスプロバイダーは、これらの情報に基づいてサービスを提供する。SAMLに準拠した各サービスがこのアサーションに対応できることから、SSOが実現されるのだ。
SAMLに関連した認証技術
SAMLのほかにも、SSOを実現するのに用いられる認証技術はいくつか知られている。代表的な技術を以下に紹介する。
1)OAuth
SSOを実現する代表的な規格として、OAuthが挙げられる。SAMLが認証と認可の両方に対応していたのに対し、OAuthでは主に認可を扱う。サードパーティのアプリケーションに対し、特定の操作への権限を付与するもので、例えば、アプリにクラウドストレージ上のファイルを閲覧する許可を与えるといった使い方が考えられる。
2)OpenID Connect
OAuthを拡張させた規格としてOpenID Connectが使われている。この規格では、認証情報を保存・管理するOpenID Providerと、サービスを提供するRelying Partyが用いられる。OpenID Providerで認証に成功したユーザーにはトークンが発行され、Relying Partyへのアクセスが許可される仕組みだ。
ソーシャルメディアや大手Webサービスのアカウント情報でSSOを実現するソーシャルログインでは、OpenID ConnectとOAuthが利用されているケースが多い。
また、SAMLやOAuthといった技術は外部クラウドサービスも含めて利用されているのに対し、社内ネットワークにおけるSSOに用いられるケルベロス認証もある。基本的にWindowsを中心としたActive Directoryでの認証において、ケルベロス認証が用いられてきた。認証技術は、ユーザーの利便性とともにセキュリティを高めるのに欠かせないものだ。それぞれのメリットやデメリットについて理解を深めて、自らの環境に応じた適切な選択を行うようにしたい。