SSOの実現に必要な「SAML」とは?

近年、企業向けのクラウドサービスで、SAML(読み方:サムル、サムエル)がよく利用されるようになりました。実際に、皆さんが耳にするような企業のSaaSはSAMLに対応し、認証の利便性を向上させています。今回は、SAMLの仕組みやSAMLを活用するメリットと注意点についても解説いたします。

※2020年6月5日に投稿した記事を再編集しております。

SAMLとは

SAMLはSecurity Assertion Markup Languageの略で、一つのシステムにログインすることで、すべてのシステムを使えるようにするシングルサインオン(SSO)を実現するために重要な技術です。SAMLはシステム間で認証情報を交換するための規格で、eビジネスの業界団体であるOASISが規格化しています。
また、SAMLを用いたSSOはフェデレーション方式と呼ばれます。 SAML以外にもOpenID Connect、OAuthなどのプロトコルも利用されていますが、一般的にはSAMLを採用しているケースが多くなっています。

シングルサインオン(SSO)に関してはこちらをご覧ください。
「シングルサインオン(SSO)とは何か?」今さら訊けないSSOの解説
フェデレーション方式についてはこちらをご覧ください。
SSOの認証方式の仕組みを解説|代理認証方式を含む5つの認証方式

SAMLによるSSOの認証手順

企業(エンタープライズ)システムでシングル・サインオン(SSO)を実現する場合の情報のやり取りを見てみましょう(図1)。
ユーザーがサーバー(以下、SP)にアクセスする(図1①)と、SPはアクセスをリダイレクトして、ユーザーがIdPによる認証を受けることを求めます(図1②)。このとき、SPはリダイレクト先を示すURLにSAMLを要求する情報を埋め込みます。ユーザーがIdPによる認証を受けると、SAMLアサーションの形式でHTML本体(ボディ)に書かれた認証情報がIdPからユーザー経由でSPに送られます(図1③)。SPはSAMLアサーションの内容が正当なものだと検証した上で、ユーザーにアクセスを許可するという流れです(図1④)。

SAMLによるシングルサインオン(SSO)のやり取り

図1 SAMLによるシングルサインオン(SSO)のやり取り

SAMLを使ったSSOの導入のメリット

メリットとして、以下の3点が挙げられます。

セキュリティ性の向上

SAMLを利用したSSOを導入することで、セキュリティを強化できます。様々なクラウドサービスを利用していると、IDやパスワードを統一したり、メモ書きしたりするなど、セキュリティ的に好ましくない行動をとりがちです。SSOを導入することで、それらの行動を防げます。また、SAMLはインターネット上にパスワード情報を流すことがありません。そのため、たとえ通信が傍受されていたとしても、漏洩するリスクがなく、代理認証と比較しても安全と言えます。

アクセスの一元管理が可能

SAML認証に限らずSSOを実現できると、ユーザーのすべてのシステムやサービスへのアクセスを管理者側で一元管理できるようになります。ユーザーごとのほか、部署ごとなどのグループでもアクセス権限を管理でき、アクセスのログからどのユーザーがいつどのシステムにアクセスしたかを把握することができます。一元管理できると、管理のための時間や工数を削減することができ、トラブルが起きた際にもすぐに原因を見つけ、対応することができます。

ユーザーの利便性の向上

従来はSAML非対応のSaaSも、昨今の流れを受けSAMLに対応しているサービスが増加してきました。デジタルトランスフォーメーションの推進やテレワークなどの働き方の多様化に合わせ、クラウドサービスの利用も拡大しています。SAML認証により、1回の認証で複数のサービスにログインできるようになるため、ユーザーの利便性が向上します。

SAMLを使ったSSO導入の注意点

メリットがある一方で、SAMLを利用したSSOを導入する上での注意点もあります。ここでは、3つ紹介いたします。

不正アクセス時の被害が拡大しやすい

SAML認証を利用したSSOでは認証情報が一元管理されている関係上、 万が一統合された認証情報が外部に流出した際には、複数のシステムに侵入される可能性があります。そのため、認証を複数回実施する二段階認証や多要素認証での対策、そして情報漏洩が発生した際のリスク軽減策が必要です。

二段階認証や多要素認証についてはこちらをご覧ください。
二段階認証・二要素認証とは?その違いを徹底解説!

権限付与やアクセス権限などの情報は持っていない

確かにSAMLは認証情報の交換を規定していますが、権限付与の方法や、アクセスできる情報まで規定しているわけではありません。そのため、認証はスムーズになりますが、認可の機能はほとんどありません。さらに、アクセス権限などのやりとりはSCIMが担うことが多いです。しかし、SAMLよりも対応しているクラウドサービスが少なく、簡単に認証・認可を強化することはできないでしょう。

SCIMについて詳しく知りたい方はこちらをご覧ください。
「ID管理に必要なSCIMとは?」

SAML非対応の場合は他の対策が必要

企業で使われるシステムはSAMLに対応していないこともあります。ほとんどのオンプレシステムはもちろん、クラウドサービスでも国産SaaSを中心に、SAML非対応のサービスがほとんどです。このような場合、独自の認証方式にSAMLインタフェースを持たせるケースが多いですが、その結果、機能が制限されるなど使い勝手に不便が生じることもあります。そのため、使用する全システムに対してSAMLによるSSOを実現するのはハードルが高いと言えるでしょう。

その他の認証技術との比較

冒頭でもお伝えしたように、SAMLはSSOを実現する仕組みの一つです。SAML認証以外にもさまざまな認証技術が登場していますが、そのなかでもここではOAuth・OpenID Connect・ケルベロス認証について解説します。

SAML以外の認証方式については以下記事をご参照ください。
SSOの認証方式の仕組みを解説|代理認証方式を含む5つの認証方式

OAuth

SSOを実現する代表的な規格として、OAuthが知られています。SAMLが認証と認可の両方に対応していたのに対して、OAuthでは主に認可を行います。 OAuthは複数のSNSやWebサービスを連携して動作させるための仕組みです。 OAuthはアクセスを許可する認可情報(アクセストークン)を使ってWebサーバー間の機能連携を実現しています。

OpenID Connect

OpenID Connectはあるサービスで使っている認証用のユーザーIDとパスワードを他のWebサービスでも利用するための仕組みです。OAuthが認可のプロトコルであるのに対して、OpenID Connectは認証のプロトコルになります。

OAuth、 OpenID Connectについてはこちらをご覧ください。
OAuthとOpenID Connectについて~仕組みや特徴など解説~

ケルベロス認証

ケルベロス認証は、ネットワーク経由でアクセスするユーザーを認証する方式の1つとして古くから用いられてきています。ケルベロス認証が用いられている代表例の Active Directoryは、 Windowsを中心とした社内ネットワークを構築している企業ではよく用いられているもので、ネットワーク上の機器を一括で管理することを目的としています。
ケルベロス認証は主にドメイン内で管理される社内のサーバーを対象としています。しかし、近年はクラウドサービスを業務で利用する場面が増えたため、社外のサーバーを含めた認証方式が求められるようになり、異なるネットワークでも統一されたSSOの仕組みを構築する規格として、SAMLが利用されるようになりました。

まとめ

本記事では、SAMLについて図解を通して、メリットや注意点を解説しました。SSO導入にも言えることですが、導入においての障害は多々あります。そのため、SAMLに限らず、SSOを導入するには技術とノウハウを備えたインテグレータを活用することが重要です。
かもめエンジニアリングでは豊富な実績とノウハウで企業のSSO導入をお手伝いし、オープンソースSSO基盤を元にしたSSOソリューション「KAMOME SSO」をご提供しております。簡単な相談でも構いませんので、下記フォームよりご連絡ください。

事業・商品・サービスに関するお問い合わせ

製品に関するお問い合わせはこちら

※フリーメールでのお問い合わせは受け付けておりません。

必須
必須
必須
必須
必須
必須
必須