SAMLとは? SSO(シングルサインオン)で使うSAML認証の仕組み

 2023.08.09  クラウドセキュリティチャネル

複数のクラウドサービスを利用するのが当たり前になった昨今、シングルサインオン(SSO)を導入する企業が増えています。なかでも注目を高めているのが、主要なクラウドサービスの多くが対応している「SAML」という認証方式です。そこで本記事では、SAML認証によるSSOの仕組みや特徴についてわかりやすく解説します。

SAMLとは

SAMLとは"Security Assertion Markup Language"の略称で、シングルサインオン(SSO)を実現するための認証方式のひとつです。

SSOとは、一度の認証操作で複数のWebサービスやクラウドサービスにログインするためのサービスを意味します。用途に応じていくつものクラウドサービスを利用することが増えた今日、SSOは認証操作や認証情報の管理の負担を軽減し、快適なアクセス環境を確保するための重要な手段として注目を集めています。

SSOを実現する仕組みは「エージェント方式」や「代理認証方式」など複数あり、SAMLもその主要なタイプのひとつです。現在の主要なクラウドサービスの多くはSAMLに対応しているため、SSOを導入する際はSAML方式のサービスを利用する優先度が高くなっています。

勢いで決めてはいけない!自社にあった認証・許可の仕組みIDaaSの選定ポイントをご紹介

SAML認証の仕組みと認証フロー

では、SAMLはシングルサインオンをどのような仕組みで実現するのでしょうか。まず、SAMLとはIdPとSPをつなぐ仲介者の役割を果たします。IdPとは"Identity Provider"の略称でSSOのサービス提供者、SPとは"Service Provider"の略称でログイン先のWebサイトやアプリケーションなどのサービス提供者のことです。

SPがSAML経由で認証措置をするように構成されると、そのサービスにアクセスしようとするユーザーは、ログイン先のSPに固有のID/パスワードの入力をする必要がなくなります。代わりに、SPはSAMLを経由してIdPへユーザーの認証リクエストを送信し、ユーザーのSPへのアクセス許可または不許可は、事前にSP-IdP間で紐づけられた認証条件にしたがってIdPで判断されることになります。

まだユーザーが一度もIdPで認証操作をしていなかった場合、IdPはユーザーに認証情報の入力を求め、その正否を確認してログインの承認/非承認通知(SAMLアサーション)を発行します。ユーザーが認証に成功した場合、IdPはそのデータを保存し、次に異なるサービスから認証リクエストが届いた際は、その既存情報を活用して承認処理を行います。

つまり、個々のSPがばらばらにユーザーの認証情報の確認をする代わりに、SAML構成サービスがIdPを使用して一括で認証処理を代行し、その結果を各SPへ通知するという仕組みです。したがって、ユーザーは一度認証操作をした後は、自分でパスワード入力を行うなどの手間を割くことなく、スムーズにログインできるようになります。

SAML認証の流れ(SP Initiated方式)

SAMLによる認証フローは、2つの方式があります。最初に紹介するSP Initiated方式は、ユーザーがまずログイン先のサービスへアクセスしようとしたときに発生します。その承認フローは以下の通りです。

ステップ1.ユーザーがSPへアクセスする
ステップ2.SPがユーザーをIdPへリダイレクト
ステップ3.IdPがユーザーに認証情報の入力を求める
ステップ4.IdPがユーザーの認証情報の正否を確認・承認する
ステップ5.IdPがユーザーをSPへリダイレクトし、SPへのログインを完了させる

SAML認証の流れ(IdP Initiated方式)

二番目のフローは、IdP Initiated方式と呼ばれます。これは、ユーザーが最初にSSOサービス(IdP)へログインし、そこから提携している各SPへ移動する形です。その承認フローは以下の形で示せます。

ステップ1.ユーザーがIdPへアクセスし、ID/パスワードを入力する
ステップ2.IdPがユーザーの認証情報の正否を確認・承認する
ステップ3.ユーザーはIdPが表示したSP選択画面から利用するサービスを選択し、ログインを完了する

SAMLによるSSOのメリット

SAMLによるSSOを導入することで、企業は以下に挙げるメリットを得られます。

ユーザーの利便性が向上する

第一のメリットは、ユーザーの利便性の向上です。昨今の企業は複数のクラウドサービスを利用することが多くなっているので、SSOを導入していない場合、ユーザーは一日に何度もログイン操作をする必要が生じます。通常、認証用のパスワードはサービスごとに異なるものを使い、セキュリティ強度を高めるために、複雑なキーワードを設定するのが通例です。

そのため、ユーザーはいくつもの複雑なパスワードを記憶するか、その情報を安全な仕方で管理する必要に迫られます。パスワードを覚えきれていない場合は、サービスへログインするたびに、どこかにメモした情報を参照する必要が生じるため、これはユーザーにとって大きなストレスです。その点、SSOを導入すれば、ユーザーは1セットのID/パスワードだけを記憶し、一回ログイン操作をするだけで各サービスにアクセスできるようになるので、快適に業務を行えるようになります。

セキュリティを強化できる

第二のメリットは、セキュリティを強化できることです。上記のようにログイン操作が大変になると、ユーザーによっては簡単なパスワードを使い回したり、その辺の付箋などにパスワードをメモしたりするようになります。これらはいずれもセキュリティ上の脆弱性につながる危険な行為です。Excelなどでパスワードを管理している場合も、ファイル自体のデータ保護がしっかりしていないと危険なのは変わりありません。

しかし、SSOを導入すれば、パスワード管理が楽になるのでリスク軽減につながります。もちろん、複数種類のパスワードを使った方が安全という考え方もありますが、ユーザーの管理負担や、簡単なパスワードを設定することと比較すれば、ひとつの堅牢なパスワードですべてのサービスを守れることはセキュリティ強化に寄与します。

管理者の負担を軽減できる

第三のメリットは、システム管理者の業務負担を軽減できることです。ユーザーがパスワードを忘れてしまったときに大変な思いをするのは、そのユーザー自身だけではありません。パスワードの再発行処理をしたり、認証エラーを繰り返したためにかかったロックを解除したりするのはシステム管理者の役割だからです。

先述のように、SSOを導入すればユーザーのパスワード管理は非常に楽になるので、システム担当者がこのようなトラブルシューティングに追われる機会も大きく減ることが期待できます。それで空いた時間や労力をシステム管理者がより創造的な仕事に回せるようになれば、会社としても生産性の向上が見込めるでしょう。

SAMLによるSSOのデメリット

上記のようなメリットがある一方で、SAMLによるSSOにはいくつかのデメリットもあります。

第一のデメリットは、SAMLに非対応のクラウドサービスもあることです。主要なクラウドサービスの多くはSAMLに対応していますが、SSO導入時には、自社が利用するサービスがSAMLに対応しているか確認する必要があります。

第二のデメリットは、単一のパスワードにすべてのサービスの認証を任せる分、パスワードが漏えいすると全てのサービスが不正アクセスを受ける恐れがあることです。ただしこのリスクは、ID/パスワード以外の認証情報もユーザーに要求する多要素認証などをSSOと併用することで、大幅に緩和できます。実際、一般的なSSO製品は、SSOだけでなく多要素認証も同時にカバーしていることが多いです。

第三のデメリットは、SSOのサービス(IdP)が何らかのトラブルで停止してしまうと、そこに紐づけられたすべてのSPにログインできなくなる恐れがあることです。そのため、SSO製品を選定する際は、トラブル発生時のサポートがしっかりしているか、セキュリティ関連の規格を取得しているかなど、複数の観点からベンダー企業の信頼性を見極める必要があります。

SAMLとOAuthの違い

SAMLと混同しやすいものとして、OAuthというサービスがあります。以下では、SAMLとOAuthの違いを解説します。

OAuthとは実行の権限があるかどうか確認する仕組み

OAuthとは、あるアプリケーションで認証されたユーザーが、他のアプリケーションに対して、認証情報を共有することなくデータへの限定的なアクセスを許可する仕組みです。たとえば、Googleドライブに保存した画像データをTwitterに自動投稿するといった用途が挙げられます。

この際、ユーザーは個別のアプリケーションで認証操作をする必要はありません。ユーザーが行うのは、「TwitterにGoogleドライブのデータへのアクセスを許可してよいか」というOAuthの確認に応えるだけです。そのため、OAuthもSAMLと同じく、シングルサインオンサービスの一種として捉えられます。

SAMLとOAuthの違いは誰であるかをチェックするかどうか

OAuthもシングルサインオンの一種だとするならば、SAMLとOAuthの違いはどこにあるのでしょうか。ここでキーポイントになるのが、「認証」と「認可」の違いです。SAMLは認証、OAuthは認可に対応しています。

認証とは、そのユーザーが間違いなく本人であるか、真正性を確認することです。これに対して認可とは、本人確認(認証)は行わず、単にそのリクエストを実行してよいと承認することを意味します。

認証と認可という字面だけ見ると両者は似ているように感じますが、セキュリティ上の内実としてこの違いは大きな差です。たとえば、認可のイメージとしては、鍵を持っていれば、その家の住民でなくても中に入ることができるような形です。つまりOAuthは、家の鍵のようなもので、誰であるかの確認は行いません。

他方で、認証の場合、家の鍵を持っているのは当然として、誰であるかのチェック(認証)も同時に行われます。家の前にガードマンがいて、本当にその人が住人であるか目を光らせているイメージです。SAMLは家の鍵とガードマンがワンセットになっていると捉えればよいでしょう。

このことからも分かるように、SAMLはOAuthと比べて、セキュリティレベルが優れています。個人ユーザーがSNSを便利に使うためならOAuthを利用するのも便利ですが、企業の情報資産を守るための仕組みとしてはSAMLを採用すべきでしょう。

まとめ

SAMLとは、シングルサインオン(SSO)を実現するための認証方式のひとつです。現在の主要なクラウドサービスの多くはこのSAML方式に対応しており、これを導入することで、認証に関するユーザーの利便性向上や管理者の負担軽減などが見込めます。

その反面、セキュリティに関しては、堅牢なパスワードを利用しやすくなることをよしとするか、すべてのサービスで単一のパスワードを利用する危険性を重視するかで一長一短の部分があります。ただし、このデメリットについては、多要素認証など他のセキュリティ機能を併用することで補完可能です。

SAML方式のSSOソリューションとしては、「HENNGE One」の導入をおすすめします。HENNGE Oneには、SSOはもちろん、多要素認証やIP制限、デバイス証明書などの幅広いセキュリティ機能が搭載されているため、SSOによる利便性と安全な認証環境を両立可能です。SAML認証によるSSOにご関心のある方は、ぜひHENNGE Oneの導入をご検討ください。

勢いで決めてはいけないこれからの IDaaS 選定ポイント

RECENT POST「ID管理」の最新記事


ID管理

IdPとは?SAML認証における役割やSPとの違いを解説

ID管理

Oktaとは何がすごい? 次世代のIDaaSソリューション

ID管理

不正アクセスの可能性を調査するダークウェブサーベイキャンペーンとは?

ID管理

Microsoft Entra ID(旧:Azure AD)とオンプレミスActive Directoryとの違いは?導入のメリットを解説

SAMLとは? SSO(シングルサインオン)で使うSAML認証の仕組み

RECENT POST 最新記事

CTA

RANKING人気記事ランキング