著者:田中麻維
大手電機メーカー系のSierに入社後、インフラエンジニアとしてLinuxサーバーの構築や保守・運用、ソフトウェアの開発業務を経験。アイティベル入社後は、IT領域の執筆などを行う。
昨今のクラウドサービスの利用増加に伴い、企業では従業員のID・パスワードを管理する負担が大きくなっています。この負担を軽減できる仕組みが、シングルサインオンです。
企業でシングルサインオンを導入する際には、さまざまな準備が必要になります。まずは、シングルサインオンの特徴やメリットなどの、基本的な知識を押さえておくと良いでしょう。
本記事では、シングルサインオンのメリットや実装方法を紹介します。シングルサインオンを運用する際の注意点も詳しく解説しますので、企業のセキュリティ担当者は参考にしてください。
1. シングルサインオンとは
シングルサインオン(SSO=Single Sign On)とは、一度のユーザー認証で複数のシステムにログインできる仕組みのことです。
通常、複数のシステムを利用する際は、システムごとにユーザー認証を進める必要があります。そのため、複数回ログイン情報を入力する手間がかかる、ID・パスワード管理の複雑化といった問題がありました。
この問題を解決するのが、シングルサインオンです。1つのID・パスワードでログインできるため、利用者はログイン時に都度情報を入力する手間が省けます。また、IDやパスワードを一元管理できるため、従業員のID・パスワード管理を担っている情報システム部門の負担を軽減することにもつながります。
シングルサインオンの認証方式
シングルサインオンの認証方式は、下記の5つに分けられます。
SAML認証(フェデレーション)方式
SAML(Security Assertion Markup Language)認証方式は、IDプロバイダ(IdP=Identity Provider)が保証したユーザーの認証情報を使った認証方式です。
代理認証(フォームベース)方式
代理認証(フォームベース)方式は、ユーザーに代わってシステムがログイン情報を入力する方式です。
リバースプロキシ方式
リバースプロキシ方式では、クライアントとWebアプリケーションのサーバーの間に、通信を中継するリバースプロキシサーバを設置します。認証は、このリバースプロキシサーバを経由して実施します。
エージェント方式
エージェント方式は、対象となるWebアプリケーションにエージェント型ソフトをインストールし、そのエージェントを介して認証させる方式です。
透過型方式
透過型方式は、ユーザーがWebアプリケーションへのアクセスを試行した際に、ログイン情報を送る方式です。
これらのシングルサインオンの認証方式については、下記の記事で詳しく解説しています。認証方式の仕組みやメリットを詳しく知りたい方は、こちらを参考にしてください。
2.シングルサインオンのメリット
シングルサインオンを利用するメリットは、下記のとおりです。
- ユーザーエクスペリエンスの向上
- パスワードの簡素化
- アカウントのセキュリティ強化
- 管理負担の軽減
- 生産性の向上
- コスト削減
それぞれの内容を詳しく解説します。
ユーザーエクスペリエンスの向上
先述したとおり、シングルサインオンを利用すれば、ユーザーは一度のログインで複数のサービスにアクセスできます。サービスごとにログイン操作を繰り返す必要がなくなるため、時間を節約することが可能です。シームレスなアクセスが可能になり、ストレスを感じずにWebアプリケーションやクラウドサービスを利用できます。
パスワードの簡素化
シングルサインオンを導入すれば、ユーザーはパスワードを1つ覚えるだけで済みます。複雑なパスワードをサービスごとに使い分ける必要がなく、パスワード管理の簡素化が可能です。パスワード管理が容易になることで、パスワード忘れやパスワードをリセットする頻度を減らせます。
アカウントのセキュリティ強化
シングルサインオンの導入は、アカウントのセキュリティ強化にもつながります。シングルサインオンを導入する際は、多要素認証をはじめとする強力な認証手段で統一するのが一般的です。強力なパスワードポリシーを一元管理できるので、各サービスで個別にセキュリティ対策を講じるよりも、強力なセキュリティを確保できます。
管理負担の軽減
シングルサインオンの導入は、管理負担を軽減し、管理作業の効率化にも貢献します。管理者は、ユーザーのアカウントやパスワード、権限などの情報を一元管理することが可能です。管理の手間を大幅に軽減し、ユーザーの追加や削除、権限変更といった作業も容易に行えます。
生産性の向上
シングルサインオンを利用すれば、企業全体の生産性を向上させることもできるでしょう。ログインのプロセス(各サービスにログインする時間、アプリケーション間での切り替えなど)が簡略化されることで、業務の効率化が実現できます。その結果、各ユーザーがこれまで着手できなかった業務に集中するようになれば、企業全体の生産性向上も可能になるでしょう。
コスト削減
シングルサインオンを導入すれば、パスワードリセットやアカウント関連のサポートが減少します。サポートチームの負担軽減につながり、ITサポートに関わるコストを大幅に削減することが可能です。
3. シングルサインオンのセキュリティリスクと対策
シングルサインオンには、さまざまなメリットがある一方で、セキュリティリスクも存在します。この章では、シングルサインオンのセキュリティリスクについて解説します。
セキュリティリスクに対する対策方法も紹介しますので、参考にしてください。
単一の認証ポイントに対する攻撃リスク
シングルサインオンは、単一の認証ポイントに依存しています。そのため、このポイントが攻撃されるだけで、複数のWebアプリケーションやクラウドサービスに影響が及ぶリスクがあります。単一の認証ポイントに対する攻撃を防ぐには、下記の対策が有効です。
多要素認証
多要素認証は、知識情報・所持情報・生体情報の3つの内、2つ以上の情報を組み合わせて認証する方式です。たとえば、パスワードに加えて、生体認証や一時的な認証コードなどを組み合わせることで、認証強度を高められます。
強力なパスワードポリシー
強力なパスワードポリシーを設定する方法も有効です。複雑で推測されにくいパスワード(大文字と小文字、数字、特殊文字などを組み合わせたもの)を設定し、定期的にパスワードを変更します。古いパスワードの使い回しをなくすことで、セキュリティ向上につながります。
アクセス制限
特定のIPアドレスや地理的な場所からのアクセスを制限することも有効な対策です。アクセス制限を設定し、不正アクセスを防止することで、シングルサインオンの安全性を強化できます。
セッション管理のリスク
シングルサインオンには、セッション管理のリスクが存在します。シングルサインオンのセッションが不適切に管理されると、セッションハイジャックやセッションフィックスなどの攻撃が発生する恐れがあります。セッション管理のリスクを減らすには、下記の対策が有効です。
セッションタイムアウト
セッションタイムアウトとは、一定期間ユーザーが操作しない場合において、自動的にセッションを終了させる機能のことです。自動的にログアウトさせることで、第三者による不正なセッションを防止できます。
セッションの暗号化
セッションIDの暗号化も、セッション管理のリスク軽減につながります。セッションIDを暗号化すれば、悪意のある第三者がセッションを乗っ取ることを防止できます。
サービス停止のリスク
シングルサインオンには、サービス停止のリスクもあります。シングルサインオンのサービスが停止すれば、ユーザーは普段利用しているWebアプリケーションやクラウドサービスにログインできなくなります。
サービス停止のリスクを減らすには、シングルサインオンのサービスを選定する際に、提供事業者のサービス稼働率や保証制度を確認しておくと良いでしょう。万が一サービスが停止した際の対応策についても、事前に確認して整理しておくことが重要です。
ユーザー認証の信頼性を向上させる方法
シングルサインオンのユーザー認証精度が低ければ、悪意のある攻撃者が不正に認証を突破する可能性が考えられます。ユーザー認証の信頼性を向上させるには、下記の対策が有効です。
強力な認証プロトコルを採用する
ユーザー認証の信頼性を向上させるには、強力な認証プロトコルを利用するのがおすすめです。OIDC(OpenID Connect)やSAML(Security Assertion Markup Language)などの信頼性の高い認証プロトコルを使用すると良いでしょう。
異常検出システムを実施する
異常なログイン試行や不審な活動を検出するシステムを導入するのも一つの手です。異常検出システムを導入し、異常があった際に即座に対応できる体制を構築します。
セキュリティ意識を持たせる教育を実施する
シングルサインオンを安全に利用するためには、従業員のセキュリティ意識も重要です。セキュリティ教育を実施し、従業員のセキュリティ意識を高めましょう。
4. シングルサインオンの実装方法
シングルサインオンは、企業のビジネス環境に合わせて導入・実装しなければなりません。ここでは、シングルサインオンを実装する技術的な要件や導入する手順、環境に応じた運用方法について解説します。
技術的な要件
シングルサインオンを実装する際に必要な技術的な要件は、下記のとおりです。
- ユーザー情報を一元管理できるActive DirectoryやLDAP(Lightweight Directory Access Protocol)
- TLS証明書(通信の暗号化とサーバーの認証)
- SAML(Security Assertion Markup Language)、OAuth、OpenID Connect(OIDC)などの認証プロトコル
- SSOソリューション(Auth0やOneLogin、Oktaなど)
シングルサインオンを導入する手順
シングルサインオンを導入する手順は、下記のとおりです。
手順1:SSOソリューションの選定
まずは、市場で提供されているSSOソリューションの中から、自社のビジネス要件や予算に適したサービスを選定しましょう。
手順2:ディレクトリサービスの統合
続いて、選定したSSOソリューションと、LDAPやActive Directoryを統合します。これにより、従業員のアカウント情報がSSOシステムに同期されます。
手順3:認証プロトコルの設定
使用する認証プロトコル(SAMLやOAuth、OIDCなど)を設定し、認証フローを定義します。
手順4:アプリケーションの登録
シングルサインオンに対応するアプリケーションを、SSOサーバーに登録しましょう。必要なメタデータ(エンドポイントURL、証明書など)も併せて設定します。
手順5:ユーザーの権限設定
ユーザーごとにアクセス権限を設定し、どのアプリケーションにアクセスできるかを定義しましょう。
手順6:多要素認証の設定
必要に応じて、多要素認証も設定します。多要素認証を設定すれば、セキュリティをより強固にすることが可能です。
手順7:テストとデプロイ
最後に、シングルサインオンの設定をテストします。正常に動作することを確認したら、本番環境にデプロイしましょう。
マルチクラウド環境での運用方法
ここでは、マルチクラウド環境でシングルサインオンを運用する方法を紹介します。AWSやAzure、Google Cloudなど、複数のクラウドプロバイダを使う場合は、まず各クラウドプロバイダでSSO設定を実施しましょう。
それぞれ同じディレクトリサービスや認証プロトコルを使用して、統合することがポイントです。各クラウドプロバイダのIDプロバイダを相互に信頼するように設定し、ユーザーが一度の認証で複数のクラウドサービスにアクセスできるようにします。
異なるタイプのアプリケーションを利用している場合の運用方法
ここでは、異なるアプリケーションを利用している場合の運用方法を紹介します。SaaS(Software as a Service)やオンプレミスのアプリケーション、カスタムアプリケーションなど、企業内で多様なアプリケーションを利用している場合は、APIゲートウェイを使います。
APIゲートウェイでこれらのアプリケーションを連携することで、既存のアプリケーションに対してシングルサインオンを適用できるでしょう。特定のアプリケーションが標準的なSSOプロトコルに対応していない場合は、カスタムコネクタを開発し、SSOに対応させなければなりません。
5. シングルサインオンを導入する際の比較ポイント
最後に、シングルサインオンを導入する際の比較ポイントを紹介します。以下で紹介するポイントを比較することで、自社に適したシングルサインオン製品を選定できるでしょう。
ポイント1:既存システムとの連携性
シングルサインオンを導入する際は、既存システムと連携できるかを事前に確認することが重要です。既存のディレクトリサービス(Active Directory、LDAPなど)や、認証プロトコル(SAMLやOAuth、OIDC)との互換性を確認しましょう。既存システムとスムーズに統合できるか、APIやコネクタの提供状況なども確認する必要があります。
ポイント2:オンプレミス型かクラウド型か
シングルサインオンの製品は、大きくオンプレミス型とクラウド型の2つに分けられます。
オンプレミス型の場合、自社の利用状況に合わせてカスタマイズできるメリットがある一方で、初期費用が高くなりやすいのがデメリットです。
クラウド型は、短期間で導入できるメリットがありますが、ユーザー数が多ければ多いほど月額費用の負担が大きくなります。
ポイント3:マルチデバイス対応
シングルサインオン製品が、マルチデバイス対応となっているかも確認しましょう。さまざまなデバイスで使えるシングルサインオン製品は、働く場所が多様化している現代のビジネス環境にマッチしています。PCやスマートフォン、タブレットなど、各デバイスでのユーザーエクスペリエンスが一貫しているか、使いやすいかも確認します。
ポイント4:セキュリティ機能
シングルサインオンを導入する際は、どのようなセキュリティ機能を提供しているかも確認しましょう。多要素認証を採用しているか、どの認証方法(SMSやアプリ、生体など)を採用しているか、ログイン履歴や異常検出のための監査ログ機能が充実しているかを確認します。
ポイント5:管理機能
シングルサインオン製品では管理機能が充実しているか、使いやすいかどうかも確認する必要があります。ユーザーの追加や削除、アクセス権の設定、レポート機能などが充実しているか、操作しやすいかを確認しましょう。
無料トライアルを利用すれば、導入前に操作性を確認することが可能です。無料トライアルを実施しているシングルサインオン製品であれば、操作性を確かめてから導入を検討すると良いでしょう。
ポイント6:コスト
初期導入費用やランニングコストを、事前に把握しておくと良いでしょう。メンテナンスやサポートにかかる費用も事前に確認することが重要です。
ポイント7:カスタマイズ性
シングルサインオンの導入後に、特定のビジネスニーズに対応するためのカスタマイズが必要なケースがあります。カスタマイズ性に優れているか、柔軟な設定が可能かどうかも確認しましょう。APIの提供状況や開発者向けツールが充実しているかも併せて確認します。
ポイント8:サポート体制
サポート体制が充実しているシングルサインオン製品を選べば、導入後のトラブルシューティングやシステムのアップデートを円滑に実施できます。サポート時間やサポート方法(電話やメール、チャットなど)、サポート内容を確認しておきましょう。
まとめ
今回は、シングルサインオンのメリットや実装方法、運用する際の注意点について解説しました。
シングルサインオンは、一度のユーザー認証で複数のシステムにログインできる仕組みです。シングルサインオンを利用する主なメリットは、下記のとおりです。
- ユーザーエクスペリエンスの向上
- パスワードの簡素化
- アカウントのセキュリティ強化
- 管理負担の軽減
- 生産性の向上
- コスト削減
ID・パスワード管理の負担を軽減するためにも、ぜひ導入を検討してください。