◆ SSO(Single Sign On)とは
SSO(シングルサインオン)とは、一度のユーザ認証によって独立した複数のソフトウェアシステム上の
リソースが利用が可能になる仕組みのことです。SSOサーバにより、SSOのサービスを提供してくれます。
通常、ユーザ認証はシステムごとに行われるため、複数のシステムを利用する場合はその都度ユーザIDと
パスワードを入力する必要がありますが、SSOの仕組みを利用すれば一度のユーザ認証で複数のシステム
を利用することができるようになります。
◆ Active DirectoryとSSO
SSO(シングルサインオン)の仕組みは、Windows ServerのActive Directoryでも使用されています。
Active Directoryで認証されたクライアントPCは、ドメインに参加しているサーバ上のデータにアクセス
する際にユーザ名とパスワードを入力することなくアクセスできます。Active Directoryでは、ドメイン
コントローラがKerberos(ケルベロス)という認証プロトコルを使用することでSSOを実現しています。
Active Directoryによるシングルサインオンは、ドメインの範囲内でのみ実現可能ですが、クラウドの環境
においても、マイクロソフトのAzure AD(Azure Active Directory)のクラウドベースの認証サービスで
クラウドアプリケーションへのアクセスを一元管理して、SSOを実現しています。
SSOの実装は、Active Directoryによるケルベロス認証以外に、WebアプリケーションのためのSSOとして
エージェント方式、リバースプロキシ方式があります。シームレスな認証を実現するSAML認証も実装の1つ。
◆ SSOサーバ:エージェント方式
エージェント方式では、システムを構成するサーバにエージェントと呼ばれるソフトウェアをインストールし
利用する方式です。SSOを利用したい全てのWebアプリケーションサーバにエージェントをインストールする
必要があることからコストが高くなるデメリットがありますが、特定のサーバへの負荷を分散させられます。
◆ SSOサーバ:リバースプロキシ方式
リバースプロキシ方式では、ユーザからの認証要求をSSOサーバが受付します。認証後はSSOサーバから
各Webシステムに接続して認証の代行を行います。プロキシとして動作するSSOサーバへの負荷が高くなる
点はデメリットですが、既存Webシステムへの変更点が少ないことから導入がスムーズな点はメリットです。
※ エージェント型、リバースプロキシ型のどちらも、認証が成功したクライアントPCに対して認証済みCookieを発行しています。
◆ SAML(Security Assertion Markup Language)認証とは
SAML認証は、IdP(Identity Provider)とSP(Service Provider)の2つの構成要素でSSOを実現します。
SAMLでは、複数の独立したシステムの間で利用者の認証要求や認証の可否、認可された権限などについて
情報をやり取りするデータ形式を定めています。
SAML認証は、IdP(ID管理と認証を行うIDプロバイダ)で保証されたユーザ認証情報を利用することにより
連携する各種サービスへのシングルサインオンが可能になっています。IdPにおける代表的なサービスとして
トラスト・ログインやoneloginなどがあります。
|