目次 [hide]
SSOとは
SSO(Single Sign On:シングルサインオン)とは、ひとつのシステムへのログインが成功すればほかの複数のシステムには自動で認証してくれるもののことを指します。つまり一つのID、パスワードで複数のシステムにログインできるようになります。そのSSOを実現するためにはおもにエージェント方式、リバースプロキシ方式、代理認証方式、フェデレーション認証方式の4つの認証方式があります。本記事ではSSOの認証方式について、仕組みやメリット、デメリットについて解説します。
SSOについて詳しくはこちらの記事をご覧ください。
「シングルサインオン(SSO)とは何か?」今さら訊けないSSOの解説
(かもめエンジニアリングのサイトへ遷移します)
エージェント方式
エージェント方式とは
エージェント方式では、ウェブシステムの機能を提供しているサーバであるウェブサーバやアプリケーションサーバに認証を行ってくれるエージェントモジュールを組み込みます。このエージェントモジュールがブラウザとアプリケーションの間に入り、認証サーバが認証成功情報を格納して認証済みcookieを発行してSSOを可能にします。具体的なSSOの流れとしては
① 初回ログイン時に認証サーバを介してログイン
② 認証サーバが認証済みcookieを発行
③ アプリケーションにアクセス
④ エージェントが認証済みcookieを確認
⑤ 4で確認が取れたらログイン状態でレスポンスを返す となります。
エージェント方式のメリット
- 既存ネットワークに変更を加えないでSSOを実現できる
- トラフィックが集中するわけではないため同時使用のユーザ数が多くても対応可能
- エージェントモジュールを組み込みさえすれば拡張が可能
エージェント方式のデメリット
- SSO環境に組み込みたいウェブシステムすべてのサーバにエージェントモジュールをインストールしなければならない。
- 特に古いウェブシステムやアプリケーションだと、エージェントモジュールがサーバに対応していない場合がある
- クラウドサービスだと自社で勝手にエージェントをインストールすることができないのでクラウドサービスでのSSOが難しい
代理認証方式
代理認証方式とは
代理認証方式とは、使用する端末にエージェントをインストールすると対象のウェブシステムやアプリケーションの「ID・パスワードを入力してください」というログイン画面を検知して、専用のサーバによって人が入力する代わりに自動で入力を完了するSSOの方式です。代理認証方式単体で用いられるだけでなく、エージェント方式、リバースプロキシ方式と組み合わせて利用されることや、特にIDaaSではフェデレーション認証方式と併用されることがあります。
代理認証方式のメリット
- エージェント方式ではSSOできないレガシーシステムにもSSOできる
- アプリケーションのサーバに改修が不要
代理認証方式のデメリット
- エージェントの導入が必要
- ID情報を専用サーバとアプリケーション側で常時一致させていなければならない
リバースプロキシ方式
リバースプロキシ方式とは
リバースプロキシ方式はWebシステムとアクセスする端末との間にリバースプロキシを設置してシステムへのアクセスの際にリバースプロキシを経由してログインする方式です。エージェント方式で組み込んでいたエージェントの機能をリバースプロキシサーバに集約するといったイメージです。そのためエージェント方式に比べて導入の際のコストが低いというメリットがあります。
リバースプロキシ方式のメリット
- 導入の際のコストがエージェント方式と比較して低い
- エージェントの導入が難しいシステムにも対応が可能
- 特定のOSに依存することがない
リバースプロキシ方式のデメリット
- リバースプロキシを経由するようなネットワークの設計が必要
- 負荷が集中してしまう
フェデレーション認証方式(SAML認証)
フェデレーション認証方式とは
クラウドサービスの普及によって注目されている認証方式です。Active Directoryはドメイン内でのSSOを提供しているディレクトリサービスとして人気でしたが、クラウドサービスは自社ドメイン外であるためSSO対象に含めることができませんでした。このような中で異なるドメイン間でも直接パスワードなどの情報を渡すことなく、共通のプロトコルでやり取りすることでSSOが実現できます。認証を管理するサービスをIdP(Identity Provider)といい、SSOの対象とするサービスをSP(Service Provider)といいます。
SAMLの詳細はこちらの記事をご覧ください。
SSOの実現に必要な「SAML」とは?
(かもめエンジニアリングのサイトへ遷移します)
フェデレーション認証方式のメリット
- それまで難しかったクラウドサービスのSSOがプロトコルに対応していれば簡単にできる
- ユーザ情報が安全な形でやり取りされる
フェデレーション認証方式のデメリット
- プロトコルに対応していないとSSO対象にできない
- 既存システムをプロトコルに対応させる場合改修が必要
まとめ
SSOの認証方式には大きく分けてサーバサイドに変更を加えるエージェント方式、リバースプロキシ方式、クライアント側に変更を加える代理認証方式、そして、クラウドサービスが流行するにあたって普及が進んでいるフェデレーション方式の4種類がありました。どの認証方式にもメリットがある一方で一つの認証方式だけで完璧ということはありません。自社でSSOを実現させるにはどの方式がベストなのかの検討が必要になります。かもめエンジニアリングは長年認証にかかわってきた専門家です。お問い合わせはこちらからどうぞ。