SSOとは? | シングルサインオンの仕組み

シングルサインオン(SSO)は、すべてのユーザーアプリケーションのログインを1つのログインに減らして安全性と利便性を高める重要なクラウドセキュリティ技術の1つです。

Share facebook icon linkedin icon twitter icon email icon

SSOとは?

学習目的

この記事を読み終えると、以下のことができます。

  • シングルサインオン(SSO)の概要と仕組みを学ぶ
  • SSOの長所とセキュリティ上のメリットを理解する
  • SSO認証トークンの仕組みを理解する

シングルサインオン(SSO)とは?

シングルサインオン(SSO)は、複数のアプリケーションログイン画面を1つにする技術です。SSOを使用することで、ユーザーは、すべてのSaaSアプリケーションにアクセスするために1つのページでログイン認証情報(ユーザー名、パスワードなど)を1回入力するだけで済みます。SSOは、ユーザーアプリケーションが社内のITチームによって割り当てられて管理されるビジネス分野にて使用されることが多いです。

いったんバーに入ることができた客が、アルコール飲料を注文するたびに飲酒可能な年齢であることを証明する身分証を見せるよう要求されることを想像してみてください。人によっては何度も調べられることにいら立ち、同じような状況を避けるために、次からは隠れてアルコール飲料を持ち込もうとするかもしれません。

しかし、ほとんどの店は、客の身分証を確認するのは1回のみであり、それ以降は確認せずに飲み物を出します。これはSSOシステムに似ています。本人認証を何度も行う代わりに、ユーザーは本人認証を一度行うだけで、複数のサービスにアクセスできます。

SSOは、多くのIdentity and Access Management(IAM)ソリューションまたはアクセス制御ソリューションの重要な側面です。ユーザーの本人認証は、どの権限をユーザーが持つべきかを知るために極めて重要です。Cloudflare Accessは、ユーザーのID管理を行うためにSSOソリューションと統合するアクセス制御ソリューションの一例です。

SSOの長所

ユーザーにとってずっと簡単で便利なことに加えて、SSOは、より安全であると広く認められています。これは直感に反するように思えるかもしれません。複数のパスワードで複数回サインインするよりも、1つのパスワードで1回だけサインインする方がなぜ安全なのでしょうか?SSO支持派は、次のような理由を挙げています:

  1. より強力なパスワード:ユーザーは1つのパスワードのみを使用するため、SSOはより強力なパスワードを作成して、記憶して、使用することを容易にします。*実際、大抵の場合はそうです。ほとんどのユーザーは、SSOではより強力なパスワードを使用します。

    *「強力な」パスワードとはどのようなものでしょうか?強力なパスワードとは、容易に推測できなくて、ランダム性が十分にあり、ブルートフォース攻撃が成功する可能性が低いものです。w7:g"5h$G@はかなり強力なパスワードであり、password123は強力なパスワードではありません。
  2. 繰り返しのないパスワード:ユーザーが複数のアプリやサービスのパスワードを覚えていないといけなくなると、「パスワード疲れ」と呼ばれる症状が現れて、ユーザーはすべてのサービスでパスワードを再利用するようになります。複数のサービスにわたって同じパスワードを使用することは非常に高いセキュリティリスクです。なぜなら、すべてのサービスが最弱のパスワードで保護されたサービスと同じセキュリティレベルしかないことを意味するからです。サービスのパスワードデータベースが侵害されたら、攻撃者はそのパスワードを使用して、ユーザーのほかのすべてのサービスにハッキングすることができます。SSOは、膨大な数のログインを1つのログインに減らすことで、こうした状況が発生するのを回避します。
  3. パスワードポリシーの適用の強化:一箇所でパスワードを入力するSSOを使用することにより、ITチームはパスワードのセキュリティルールを容易に適用できます。たとえば、一部の企業ではパスワードを定期的にリセットすることをユーザーに義務付けています。SSOを使用することで、パスワードのリセットをより簡単に行えるようになります。さまざまなアプリやサービスのパスワードを頻繁にリセットする代わりに、ユーザーは1つのパスワードのみをリセットします。(定期的にパスワードをリセットすることの価値が疑問視されていますが、一部のITチームはパスワードのリセットを依然としてセキュリティ戦略の重要な部分だとみなしています。)
  4. 多要素認証:多要素認証(MFA)とは、ユーザーを認証するのに複数の認証要素を使用することです(「MFAとは?」を参照)。たとえば、ユーザー名とパスワードを入力することに加えて、ユーザーはUSBデバイスに接続したり、スマートフォンに表示されるコードを入力したりすることを求められます。この物理オブジェクトを入手することは、ユーザーが本人であることを証明するための2番目の「要素」になります。MFAは、パスワードのみに依存することよりもずっと安全です。SSOを使用することで、3つ、4つ、または数十のアプリのためにMFAを有効化する(現実的ではない)代わりに、1箇所でMFAを有効化することが可能になります。
  5. パスワードの再入力を適用する単一箇所:管理者は、同じユーザーがサインインしたデバイス上で引き続きアクティブであることを確認するために所定の時間が経過した時点でユーザーに認証情報を再入力させることができます。SSOを使用することで、このポリシーを複数のアプリにて適用するのではなく(一部のアプリはサポートしていない場合がある)、単一箇所ですべての内部アプリに適用できます。
  6. 外部での保管ではなく内部での認証情報管理:通常、ユーザーのパスワードは、最良のセキュリティプラクティスに必ずしも従っているとは限らないアプリケーションやサービスによって管理されていない状態でリモート保管されます。ところが、SSOを使用することで、ITチームが管理できる内部の環境にて認証情報を保管できます。
  7. パスワードの回復にかかる時間の短縮:上記のセキュリティ上のメリットに加えて、SSOは社内のチームが無駄にする時間を減らします。ITチームは数十のアプリのパスワードをユーザーが回復またはリセットするのを手伝うのに割く時間を減らし、ユーザーは仕事をするのに各種アプリにサインインするのに要する時間を減らすことができます。これは生産性の向上にもつながります。

SSOログインの仕組み

ユーザーがSSOサービスにサインインすると、ユーザーが確認されたことを記憶する認証トークンが作成されます。認証トークンとは、ユーザーのブラウザー内またはSSOサービスのサーバー内に保管されるデジタル情報のことです。ユーザーに発行される仮IDカードのようなものです。SSOサービスは、ユーザーがアクセスするすべてのアプリをチェックします。SSOサービスが、ユーザーの認証トークンをアプリに引き渡すと、ユーザーはサインインできます。ところが、ユーザーがサインインしないままでいると、SSOサービスはユーザーにサインインするよう促します。

SSOサービスは、ユーザーIDを保存しないため、ユーザーが誰かを必ずしも覚えているわけではありません。ほとんどのSSOサービスは、ユーザーの認証情報を別個のID管理サービスと照合することで機能します。

データベースそのものを管理せずに、ユーザーのログイン認証情報がデータベース内のID情報と一致するかどうかを確認できる仲介者がSSOだと考えてみてください。利用者のために本のタイトルを検索する図書館員みたいなものです。図書館員は、図書目録すべてを記憶しているわけではなく、図書目録に容易にアクセスできるのです。

SSOの認証トークンの仕組み

認証トークンを外部のアプリやサービスに引き渡せることは、SSOプロセスにおいて重要です。これにより、ID検証をほかのクラウドサービスと切り離して行えるようになり、SSOが可能になります。

数人しか入れない限定イベントを思い浮かべてください。ゲストが確認済み/承認済みかどうかを見分ける方法として入口の係員は各ゲストの手にスタンプを押します。イベントスタッフはそのスタンプをチェックして入場を許可されたゲストかどうかを確認できます。しかし、どのスタンプでも良いわけではありません。イベントスタッフは、入口の係員がどの形や色のスタンプを使用したかを知っている必要があります。

それぞれのスタンプが同じように見える必要があるように、認証トークンにも正しくて正当なものであることを確認するための独自の通信基準があります。主要な認証トークン基準はSAML(Security Assertion Markup Language)です。WebページがHTML(Hypertext Markup Language)で書かれているように、認証トークンはSAMLで書かれています。

アクセス管理戦略におけるSSOの役割

SSOは、ユーザーのアクセスを管理する1つの側面に過ぎません。アクセス制御、権限管理、アクティビティログ、組織内のシステムでのユーザーの行動を追跡して管理するほかの手段と組み合わせる必要があります。ただし、SSOはアクセス管理の重要な要素です。ユーザーの本人認証ができなければ、システムはユーザーのアクションを許可することも制限することもできません。

CloudflareはSSOソリューションと統合するか?

Cloudflare Accessは、アプリケーションやWebサイトへのユーザーのアクセスを管理して保護します。VPNの代わりとしての役割を果たすことができます。Cloudflare Accessは、ユーザーの本人認証を行い、割り当てられたアクセス権限を付与するために、SSOプロバイダーと統合します。Cloudflare Accessは、Cloudflare for Teamsプロダクトスイートの一部です。