シングルサインオン(SSO)とは
シングルサインオン(Single Sign-On、SSO)とは、ユーザーが一度の認証プロセスを経るだけで、複数の独立したソフトウェアシステムやサービスへのアクセスを可能にする仕組みです。これにより、ユーザーはシステムごとに異なる
IDと
パスワードを記憶し、入力する手間から解放されます。
また、
アイデンティティ管理の連邦化によって、異なる組織や管理ドメインに属するWeb
サーバーに対しても、同じ
IDと
パスワードで
ログインできるようになります。これは、認証結果をクレデンシャル(SAMLアサーションやOpen
ID Connectの
IDトークンなど)で共有することで実現されます。
必ずしも一度の認証プロセスとならない実装の場合には、「Reduced sign-on」という用語が用いられることもあります。
シングルサインオンのメリット
従来の環境では、ユーザーは複数のアプリケーションを利用する際に、それぞれのシステムで
IDと
パスワードを入力する必要がありました。例えば、ある
コンピューターに
ログインした後、グループウェアや他の
サーバー上のアプリケーションを使用するたびに、再度
ログインしなければなりませんでした。これは、複数の
IDと
パスワードを管理するユーザーにとって大きな負担となります。
シングルサインオンを導入することで、ユーザーは一組の
IDと
パスワードを覚えるだけで、必要なすべての機能にアクセスできるようになります。また、システム管理者やアプリケーション開発者は、
パスワードなどの認証情報の一元管理が可能となり、認証機能の開発や管理の負担を軽減できます。
シングルサインオンの課題
セキュリティレベルが異なる複数のWeb
サーバーに対して、同じ
IDと
パスワードを使用させることには、セキュリティ上のリスクが伴う場合があります。異なるセキュリティ要件を持つシステム間で認証情報を共有する際には、慎重な設計と実装が必要です。
シングルサインオンの実装方式
シングルサインオンを実現するための具体的な実装方式には、以下のようなものがあります。
イントラネット環境
イントラネット内のファイル
サーバーに対してシングルサインオンを実現するための方式としては、以下のものがあります。
ケルベロス認証: Windowsネットワークにおける「Integrated Windows Authentication」にも実装されています。
イントラネット内のWebサーバーに対してシングルサインオンを実現する方式としては、以下のものがあります。
リバースプロキシ型: リバースプロキシを介して認証処理を行う方式です。ディジタル証明書を使用する場合もあります。
エージェント型: Webサーバーに「エージェント」と呼ばれる専用ソフトウェアを導入し、ディレクトリサービスから統合管理を行う方式です。HTTP cookieが利用されます。
連邦化されたアイデンティティ環境
連邦化されたアイデンティティで複数のWebサーバーに対して「Reduced sign-on」を実現する方式には、以下のものがあります。
SAMLに基づくアイデンティティプロバイダ(IdP): SAMLアサーションによって認証結果を伝えます。
OpenIDに基づくアイデンティティプロバイダ(IdP): OpenIDのIDトークンによって認証結果を伝えます。
関連技術
アイデンティティ管理: ユーザーのアイデンティティ情報を管理するための包括的な概念。
アイデンティティプロバイダ (IdP): ユーザー認証を行い、認証結果を提供するサービス。
ディレクトリ・サービス: ユーザーや
リソースの情報を一元的に管理するサービス。
Keychain: macOSに搭載されているシングルサインオンシステム。
Microsoft アカウント: マイクロソフトのサービスで利用されるアカウント。
OpenID: 分散型認証のためのオープンスタンダード。
Security Assertion Markup Language (SAML): 認証および認可データを交換するためのXMLベースの標準。
これらの技術と組み合わせることで、より安全で効率的なシングルサインオン環境を構築することができます。