ブログ記事
シングル サイン オン(SSO)の仕組み
さまざまな導入オプションを備えたシングル サイン オンは、ほぼ全てのユース ケースに適合します。シングル サイン オンがITセキュリティで人気のツールであることが実証された理由を見ていきましょう。
シングル サイン オンとは
SSOとも呼ばれるシングル サイン オンは、一セットのログイン認証情報(例:ユーザー名やパスワード)でユーザーがさまざまなアプリケーション、Webサイト、サービスにアクセスできるようにする認証の一種です。他のアクセス制御オプションとは異なり、シングル サイン オンは企業規模に関わらずどの企業組織でも使用できます。これにより、複数回のログインや無数のパスワードを覚える手間が省けます。
シングル サイン オンの仕組み
シングル サイン オンは、複数の信頼できるドメイン間の連携されたID管理(IDフェデレーション)に基づきます。信頼できるドメインは、ユーザーを認証するためにローカル システムで使用されます。
シングル サイン オンではSAMLやOauth、OpenIDなどのオープン標準を用いて、サードパーティ製サービス(例:Webサイト、アプリケーション)がユーザーのアカウント情報をパスワード非公開のまま使用できるようにします。メール アドレスやユーザー名などのユーザーに関する情報を含むトークンとして、ID情報を送信できます。
以下はシングル サイン オンのプロセスの概要です。
- ユーザーがウェブサイトまたはアプリケーションを開いた時に、ログイン状態ではない場合、シングル サイン オンを選択できるログイン画面が表示されます。
- ユーザーは、サインイン フォームにログイン認証情報を入力します。
- ウェブサイトまたはアプリケーションがシングル サイン オン トークンを生成し、シングル サイン オン システムに認証リクエストを送信します。
- シングル サイン オン システムは、信頼できるドメインを確認して、ユーザーが認証されているかどうかを判断します。
- ユーザーが認証されていない場合、ログイン認証情報を用いて認証を行うために、ログイン システムに送信されます。
- ユーザーが認証されている場合、正常に認証されていることを承認するトークンがウェブサイトまたはアプリケーションに返送され、ユーザーにアクセス権限が付与されます。
ユーザーが誤った認証情報を入力した場合、再入力が求められます。通常、認証に複数回失敗した場合は、一定期間ブロックされ、認証試行回数が多すぎる場合は、完全にロックアウトされることもあります。
シングル サイン オン トークン
シングル サイン オン トークンとは、シングル サイン オンのプロセス中に、データや情報の集合体をシステム間でやり取りするために使用されるデジタルファイルです。ユーザー名やメールアドレスなどのユーザー識別情報、およびトークンを送信するシステムに関する情報が含まれています。
トークンが信頼できるソースから発行されたものであることを保証するには、デジタル署名されている必要があります。最初のシングル サイン オンの設定プロセスで、デジタル証明書が交換されます。
シングル サイン オンとセキュリティ
シングル サイン オンはアクセスを簡素化し、ユーザーや管理者の頭痛の種となるユーザー名とパスワードの増殖という問題を解消できるため、特に何百、何千ものアプリケーションを使用するような企業では広く利用されています。しかし、シングル サイン オンにリスクがないわけではありません。
シングル サイン オンを導入する組織は、ワンセットの認証情報によって、複数のアプリケーションやプロセスへの未認証のアクセスが可能になることもあるため、リスクを考慮し、リスク軽減を図る必要があります。シングル サイン オンに関して一般的なセキュリティ上の懸念事項には、以下のようなものがあります。
- アカウント乗っ取り
- データ侵害(データ漏洩、データ損失、金銭的損失につながる恐れあり)
- なりすまし
- セッション乗っ取り
シングル サイン オンと並行して実施できる、悪用を防止するための2つの効果的なセキュリティ対策は、アイデンティティ ガバナンスと多要素認証(MFA)です。
アイデンティティ ガバナンス
アイデンティティ ガバナンスとは、管理者がシングル サイン オンアクセスをより適切に管理と制御できるようにするポリシーベースのイニシアチブです。アイデンティティ ガバナンスは、どの従業員がどのシステムやデータにアクセスしているかについて包括的な可視性を提供するとともに、脆弱な認証情報、不適切なアクセス、ポリシー違反を検出します。
ユーザーのシングル サイン オン認証情報が侵害された疑いがある場合、管理者はアイデンティティ ガバナンス ツールを使用して、さまざまなレベルのアクセスの変更、取り消し、削除を行います。
多要素認証(MFA)
シングル サイン オンと併せて多要素認証または2要素認証(2FA)を実装することで、信頼できるドメインのセキュリティを維持することができます。これは、アクセス権を得る際に、シングル サイン オンの認証情報に加えて、追加の本人確認が必要となるためです。最大限の保護を実現するために、シングル サイン オンでリンクされたすべてのアカウントに多要素認証を導入できます。
シングル サイン オンの実装方法
シングル サイン オン実装についての目標を設定します。
ユーザーと要件を決定します。
既存の能力を評価し、ギャップを特定します。
アクセス制御とその他の要件を定義します。
組織のITアーキテクチャがシングル サイン オンをサポートできることを確認し、不備に対処するための調整を行います。
主要な基準を満たすソリューションのリストを作成します。
最適なソリューションを特定するためのオプションの評価を実施します。
ITおよびセキュリティ チームと協力し、シングル サイン オンの実装がユーザーおよびITの双方の要件を満たすことを確認します。
SSOのタイプ
企業向けシングル サイン オン
E-SSOとも呼ばれるエンタープライズ シングル サイン オンは、エンタープライズ アプリケーション インテグレーション(EAI)環境で実装されます。エンタープライズ シングル サイン オンを利用すると、オンプレミスかクラウドホストかに関わらず、ユーザーはワンセットのサインイン認証情報ですべてのアプリケーションにアクセスすることができます。
エンタープライズ シングル サイン オンでは、ユーザーが最初にログインする時に管理者が認証情報を取得し、それ以降の他のアプリケーションやシステムへのログインにはそれが自動的に使用されます。エンタープライズ シングル サイン オンでは、ユーザー名とパスワードを一元管理することで、管理者はユーザー名とパスワードの管理作業にかかる時間から解放されます。管理者が設定した制御内容に応じて、ユーザーは管理者のサポートなしでも、一定時間アプリケーションへのアクセスが許可されるようになります。
フェデレーション方式シングル サイン オン
フェデレーション方式シングル サイン オンは、業界標準のSSOプロトコルを使用して、ユーザーが認証の壁に妨げられることなくウェブサイトにアクセスすることを許可します。複数のグループを中央認証システムの下で統合することで、標準のシングル サイン オンを拡張します。フェデレーション方式シングル サイン オンは、単一企業内、または異なる企業間の複数のシステムにアクセスできるようにするために使用できます。
モバイル シングル サイン オン
モバイル シングル サイン オンを使用すると、1つのIDで複数の連携されたモバイル アプリケーションにアクセスできるようになります。アクセス トークンはモバイル端末のOSのキーチェーンに保存され、アクティブなセッションを認識できるようにします。
スマート カード シングル サイン オン
スマート カード シングル サイン オンは、デジタル トークンやソフトウェアに頼るのではなく、物理的なカードを使用してユーザー認証を行います。スマート カード シングル サイン オンは、初回ログイン時にユーザーがカードに保存された認証情報を使用する必要があります。カードから情報を取得するにはカードリーダーが必要であり、カードには磁気ストライプまたは非接触型データ転送方式のいずれかが使用されている必要があります。
ウェブ シングル サイン オン
ウェブ シングル サイン オンを使用すると、ユーザーは1回のログインで複数の連携されたウェブサイトにアクセスすることができます。ユーザーが1つのプロパティにログインすると、他のウェブサイトに移動しても認識され、認証され、信頼されます。
ウェブ シングル サイン オンは、一般的にウェブサイトからアクセスするアプリケーションで使用されています。ウェブ シングル サイン オンを設定するには主に2つの技術が用いられています。
シングル サイン オンは、ウェブ アプリケーション内または保護されたアプリケーションのエージェント内で管理されます。この方式の大きな課題は、シングル サイン オン エージェント用にアプリケーションを修正する必要があること、そしてアプリケーションがユーザーのウェブ ブラウザから見えるようにしなければならないことです。
シングル サイン オンは、リバース プロキシを使用してアプリケーション内の認証データを管理し、ウェブ サーバーから独立してシングル サイン オン プロセスを機能させることができます。この場合、リバース プロキシは仲介者として機能し、アクセスを管理してシングル サイン オン プロセスを行えるようにします。
シングル サイン オン ソリューションの選択
シングル サイン オン ソリューションを選択する際の考慮事項は、組織やユース ケースによって異なりますが、評価プロセスに組み込むべき基本事項としては、以下のようなものがあります。
組織に関する考慮事項
- そのシングル サイン オン ソリューションは、組織のユース ケースに対応していますか?
- そのソリューションは、シングル サイン オンを必要とするITリソース(アプリケーション、デバイス、ネットワークなど)をサポートしていますか?
- そのシングル サイン オン ソリューションは、適切な短期間で実装でき、置き換える際の混乱や負担がIT部門の許容範囲ですか?
- そのシングル サイン オン ソリューションは、今後予想される要件に対応するための拡張が可能でしょうか?
- そのシングル サイン オン ソリューションは、他のセキュリティ システムと問題なく併用できますか?
シングル サイン オンの機能に関する考慮事項
- 多要素認証(MFA)のサポート、アダプティブ認証、自動強制認証、LDAP経由などの認証オプション
- インターネット プロトコル(IP)アドレスのブラックリスト化やホワイトリスト化、総当たり攻撃への対応の設定、ユーザー再認証などの行動解析と対応
- ISO 27017、ISO 27018、ISO 27001、SOC 2 Type 2などのセキュリティ基準、および法律(GDPRなど)への準拠
- Microsoft Entra ID (旧称 Azure Active Directory)やGoogle Directoryなど、選択したアイデンティティ プロバイダーを使用してデプロイを可能にする連携機能
- カスタマイズ可能なパスワード有効期限、パスワードの複雑性、有効期限の通知など、パスワード検証関連の柔軟なオプション
- モバイル端末への即時のサポートを可能にする、モバイル対応のシングル サイン オン機能
- SAML言語アプリケーションへの事前構築されたカスタム接続
- JSON Web Token(JWT)、Kerberos、Open Authorization(Oauth)、OpenID Connect(OIDC)、SAMLなどのオープン標準プロトコルを使用した認証
- 適切なライフサイクル管理アプリケーション プログラミング インターフェース(API)のサポートや、主要プラットフォーム向けソフトウェア開発キット(SDK)など、開発者向けのサポート
シングル サイン オンのメリット
- プロビジョニングや廃止などを含めた、ウェブサイト、アプリケーション、その他のアカウントへのアクセスのプロセスの一元化
- リソースへのアクセスの簡素化による生産性の向上
- アクセスしやすさの向上による、企業が推進するアプリケーションの採用の拡大
- あらゆる種類のアクセス関連データに対し堅牢なアクセス制御を提供することによる、ユーザーアクセス権限監査の容易化
- 複数アカウントに強力なパスワードを選択する労力からユーザーを解放
- 組織のデータセキュリティ規制の遵守を支援
- ユーザーあたりのパスワード数の最小化によるセキュリティ体制の強化
- アプリケーションやウェブサイトへの安全なアクセスを維持
- アプリケーションが他のサービスでユーザーを認証することの実現
- 不適切なパスワード設定の習慣化によるリスクを最小化
- IT管理者による社内サーバー上のユーザー アクティビティ監視を改善することでシャドーITを防止
- より良い顧客体験を提供
- パスワードの問題に関するITヘルプデスクへの問い合わせを減らすことでコストを削減
- サーバーやネットワークストレージからログイン認証情報を削除することでサイバーリスクを軽減
- パスワードのセキュリティを強化
SSOプロトコル
シングル サイン オンは、以下に挙げるようなさまざまなオープン標準やプロトコルを使用して、ユーザーの認証情報を検証および認証します。
JSON Web Token(JWT)
JSON Web Token、またはJWTは、消費者向けアプリケーションで広く使用されているシングル サイン オン プロトコルです。このオープン標準(RFC 7519)は、シングル サイン オン用の情報をJSONオブジェクトとして安全に送信するために使用されます。
Kerberos
チケットベースの認証システムであるKerberosは、複数のエンティティが暗号化を使用して相互に身元を認証することを可能にし、識別情報への未認証のアクセスを防止します。Kerberosをシングル サイン オン機能に使用すると、認証情報の検証の後、チケット付与チケットが発行され、認証済みのユーザーがアクセスする必要のある他のアプリケーション用のサービス チケットの取得に使用されます。
オープン認可(Oauth)
Oauth、すなわちオープン認可を使用すると、パスワードを入力しなくても、アプリケーションは他のウェブサイトからユーザー情報にアクセスできます。Oauthはパスワードの代わりに使用され、パスワードで保護された情報へのアクセス許可を得ることができます。ユーザー パスワードを要求する代わりに、アプリケーションはOauthを使用して、パスワードで保護されたデータへのアクセス権許諾をユーザーから得ます。
OIDC(OpenID Connect)
OpenID Foundationにより標準化され、Oauth 2.0フレームワークをベースとするOpenID Connect(OIDC)は、分散型のアプローチでシングル サイン オンを実現する認証方式です。OIDCでは、ウェブサイトまたはアプリケーションがユーザーの認証情報を認証します。OpenID Connectは、サードパーティのアイデンティティ プロバイダーにトークンを渡すのではなく、ウェブサイトまたはアプリケーションがユーザー認証に必要な追加情報を要求します。
SAML(Security Assertion Markup Language)
SAML言語は、XMLを使用してシングル サイン オン サービスと識別情報を交換するために、ウェブサイトやアプリケーションが使用するプロトコルです。SAMLを使用すると、ユーザーはネットワークに一度ログインするだけで、そのネットワーク上のすべてのアプリケーションへのアクセス権が付与されます。
SAMLベースのシングル サイン オン サービスを使用すると、アプリケーションはユーザー認証情報をシステム上に保存する必要がないため、他の選択肢よりも柔軟性も安全性も高くなります。また、LDAPでのシングル サイン オンの実装を試みる際に、IT管理者が直面する問題にも対応できます。
シングル サイン オンのユース ケース
シングル サイン オンと多要素認証
シングル サイン オンと多要素認証を併用することで、認証をシンプルかつ安全に行うことができます。この組み合わせにより、アプリケーションやウェブサイトへのアクセシビリティを向上させ、管理者がアクセス権の付与や管理に費やす時間を削減することができます。
シングル サイン オンとLDAP
一般的にユーザー認証情報の保存に使用されるLDAPのシングル サイン オン機能は、複数のアプリケーションにわたるLDAPデータベースの管理に使用できます。
リモート チームのためのシングル サイン オン
リモート ワークの普及により、シングル サイン オンはほぼすべてのITリソースにまで利用が広がりました。シングル サイン オンが広く利用されているのは、他のアイデンティティ アクセス管理システムより優れているからです。これは、アクセス認証と認可に対し、OSやプラットフォームに依存しない、プロトコル駆動型のクラウドベースのアプローチを提供します。
シングル サイン オンはユーザーと管理者の認証を容易にします
シングル サイン オンは、ワークフローを簡素化し、ユーザーと管理者の生産性を向上させる技術です。複数の導入オプションにより、シングル サイン オンはほぼすべてのユース ケースに適合させることができます。パスワードの無秩序な増殖や脆弱性を排除することで、シングル サイン オンはITセキュリティの分野で評価の高いツールであることを証明されています。