シングルサインオン

2021-12-17 (金) 13:40:41

シングルサインオンとは

名称

  • SSO

概要

  • 複数の認証が必要なシステムにおいて、一度認証すると、他のシステムでは再度認証のプロセスを経ることなくシステムを利用できるようにする仕組み。

SSOのメリット・デメリット

SSOのメリット

  • ユーザの認証情報(ユーザIDとパスワードなど)を一元管理することができる。
    • システム毎にユーザの認証情報を管理する煩雑さから解放される。
    • システム毎に認証機能を実装する必要がなくなる。(コスト低減)

SSOのデメリット

  • 不正な認証が行われた場合、不正アクセスした者がすべてのサービスを利用できる状態になる。(リスクが一ヶ所に集中する)

SSOの方式(同一ドメイン内)

エージェント型

  • Cookieを使ってサーバ間でユーザの識別情報を交換(共有)する方式
  • Webサーバにインストールするエージェントソフトウェアが認証サーバにアクセスして認証処理を行う
  • 認証のプロセス
    • ログインする際にユーザが入力した認証情報(ユーザIDとパスワードなど)をエージェントが認証サーバにアクセスして認証を行い、認証済であることを判別するための識別情報をCookieに入れてユーザに返す
    • 他のシステムにアクセスする際は、ユーザのCookieの識別情報をエージェントが認証サーバにアクセスして認証を行う
  • エージェントの働き
    • エージェントは認証フィルタのような役割を持つ
    • Cookieを使って認証済かどうかを判断する
      • 未認証のユーザに対しては、認証を要求する
      • 認証済みのユーザに対しては、ユーザの権限に応じてURL単位のアクセス制御を行う
    • アクセス制御ポリシーに基づきユーザのアクセス可否を判断し、アクセス可能な場合はコンテンツをユーザに返す
  • 適用ケース
    • WebアプリケーションがSAMLに未対応、Webアプリケーション上にモジュールを配置することが可能な場合

リバースプロキシ型

  • リバースプロキシサーバによって、ユーザ認証を集約化(共有)する方式
  • すべてのWebサーバへのアクセスを、ユーザとWebアプリケーションの間に設置したリバースプロキシが受けてユーザ認証を行う
  • Cookieを使う
  • 適用ケース
    • WebアプリケーションがSAMLに未対応、Webアプリケーション上にモジュールを配置することが不可能な場合

代理認証型

SSOの方式(異なるドメイン間)

IdPとSP

IdP

  • Identiy Provider
  • IDとパスワードを使って認証するサービス
  • 認証したことをSPに通知する機能を持つ

SP

  • Service Provider
  • 認証自体はIdPに任せ、認証されたという情報(認証アサーション)をIdPから受け取る機能を持つ

ID管理

ID連携

Apacheのモジュール

  • mod_auth_tkt -エージェント型のSSOを実現する認証モジュール。SPがIdPにすでに認証済みかどうかをチケットを使って判別し、認証済みであればユーザIDをREMOTE_USERに設定することで、SSOを実現する。

クロスドメインSSO

  • 異なるDNSドメイン間をまたがるSSO

関連用語