シングルサインオン(SSO)の概要
**シングルサインオン(Single Sign-On, SSO)**とは、一度の認証(ログイン)で、複数の独立したシステムやアプリケーションにアクセスできるようになる仕組みです。これにより、ユーザーはシステムごとにIDとパスワードを入力する手間が省け、利便性が向上します。また、システム管理者にとっても、ユーザー管理の負担軽減やセキュリティ強化(パスワードの使い回し防止など)といったメリットがあります。
SSOの主な実現方式には以下のようなものがあります。
- エージェント方式: 各アプリケーションサーバーに「エージェント」と呼ばれるソフトウェアをインストールし、エージェントが認証連携を行います。
- リバースプロキシ方式: ユーザーからのアクセスをリバースプロキシサーバーが受け付け、認証処理を行います。認証が成功すると、リバースプロキシがユーザーに代わって各アプリケーションサーバーにアクセスします。
- 代理認証方式: 認証サーバーがユーザーの代わりに、各アプリケーションサーバーに対してIDとパスワードを送信して認証を行います。
ID連携(IDフェデレーション)
従来のSSOは、Cookieを利用したものが多く、同一ドメイン内や閉じたネットワーク環境での利用が主流でした。しかし、クラウドサービスの普及に伴い、異なる組織やドメイン間でユーザー認証情報を連携させる必要性が高まりました。これが**ID連携(Identity Federation)**です。
ID連携は、ユーザーが一度認証を受けると、その認証情報を信頼できる他のサービスプロバイダーと共有し、再認証なしでアクセスできるようにする仕組みです。これにより、企業内外の様々なクラウドサービスをシームレスに利用できるようになります。
ID連携において主要なプロトコルには以下のようなものがあります。
- SAML (Security Assertion Markup Language): XMLベースの認証・認可情報を交換するためのプロトコルです。主にWebベースのSSOで利用され、企業内のシステムとクラウドサービス間の連携によく用いられます。
- OAuth 2.0 (Open Authorization): ユーザーのパスワードをサービスプロバイダーに渡すことなく、特定の情報へのアクセス権限(認可)を安全に委譲するためのプロトコルです。認証機能は直接提供しませんが、ユーザーの同意に基づいてAPIアクセスを許可する際に広く利用されます。
- OpenID Connect (OIDC): OAuth 2.0を拡張し、認証機能を追加したプロトコルです。OAuth 2.0の認可フレームワーク上で、ユーザーの認証情報(IDトークン)を提供します。GoogleやFacebookなどのソーシャルログインで広く利用されており、よりシンプルでモダンな認証連携を実現します。