kyufu23’s diary

とある情報系専門学生のブログ

SSO方式について

 

この記事はITC Advent Calendar(2) 6日目の記事です。

 

https://adventar.org/calendars/2640

 

正確には7日目になりますが寝て起きたら日付が変わったと

判断する人間ですので大丈夫かなと。(本当にすみません

 

 早速ですがIT初心者が調べたことについて備忘録的に書きます。

 

SSOとは?

シングルサインオン(英語:Single Sign-On、略称:SSO)のこと。

一度のユーザ認証処理によって独立した複数のソフトウェアシステム上のリソースが使えるようになる。

そのためユーザはシステムごとにユーザIDとパスワードの組を入力する必要がなくなる。 

 

通常、業務システムやクラウドなど何らかのシステムやWebサービスを用いるときには、その都度IDとパスワードを入力するなどして本人認証を行うが、パスワード管理や入力が面倒。こうした問題を解消する目的で利用されるSSOだが、利便性の高さと裏腹に当然ながら総括される最初の認証ポイントにセキュリティ上の脆弱性があると全体に影響が及び大変だとなる。

そこでSSO導入ポイントについてまずは大別して4つの実現方式を簡単に紹介

 

SSO実現方式を大きく分けて4つ

  1. エージェント方式
  2. リバースプロキシ方式
  3. 代理認証方式
  4. フェデレーション方式

 

1つ目:エージェント方式

サーバーやアプリサーバーにSeciossLink(セシオスリンク)など、「エージェント」と呼ばれる仲介役のソフトウェアを導入する方式。エージェントがブラウザとアプリの通信の間に入って認証状態を確認する仕様で、ユーザー情報はHTTPリクエストに付加されて連携される。システムがこの情報を取得してセッションを管理することにより、個別のパスワードが不要となる。基本的に導入時はウィザードに従ってデータ入力を行えば、SSOをすぐに実現。

メリット:

  • ネットワーク構成を変更せずに導入できる
  • 拡張性に優れている

デメリット:

 

2つ目:リバースプロキシ方式

ブラウザとサーバーの間にエージェントソフトウェアがインストールされた専用の「リバースプロキシ」サーバーを設置、これを経由させてSSOを実現。webブラウザからのアクセスを「リバースプロキシ」サーバが受け、後ろのwebアプリケーションサーバに中継する。

メリット:

デメリット:

  • すべてのアプリケーションへのアクセスが「リバースプロキシ」サーバを経由するように、ネットワーク構成の変更が必要
  • 「リバースプロキシ」サーバの負荷分散が必須となるため、ロードバランサの導入も考える必要がある

 

3つ目:代理認証方式

対象アプリのログインページに対し、ユーザーの代わりに認証情報を送信、ログインを自動的に完了させる方式。アプリが古いものであったり、パッケージソフトの仕様からSSO対応が不可能であったりする場合に有効な方法で、前述の2方式のいずれかと組み合わせて利用する。

メリット:

  • IDaaSと組み合わせる事で簡単にシングルサインオン対象にできる
  • Webアプリケーションやクラウドサービスのサービス事業者側で特別な改修がいらない
  • Webアプリケーションではない、サーバ/クライアントアプリケーションにも対応できる

デメリット:

  • クライアント側にエージェントをインストールする必要がある
  • Webアプリケーションやクラウドサービスによっては、代理認証に対応できない事もある
  • 事前にID管理製品などで情報連携を行っておく必要があるほか、アプリの管理認証情報と、ID管理製品が管理する認証情報が完全に同期していなければならないほど、導入にあたりクリアすべき条件がある

 

4つ目:フェデレーション方式

ユーザーはサービスの利用前にIDプロバイダからの認証を受けて、トークンを受け取りこれを通じた連携アクセスで複数のサービスやアプリを利用可能する方式。

メリット:

  • SSOサーバ及びクラウドサービスの設定のみで実現可能という容易さ
  • 海外のメジャーなクラウドサービスが数多く対応してる
  • 標準プロトコルSAMLOpenID Connectなどに対応するだけでSSO実現可能

デメリット:

 

SSO導入の際の選定基準

導入の際に、どの方式がフィットするのかは、組織の規模、社内webアプリケーションの数、パブリッククラウドの数、社内セキュリティポリシーにより変える。

 

1、社員数が多い大きな組織の場合

就業開始時刻に同時ログイン数が多い場合、エージェント方式をオンプレミス(クラウドの対義語)のSOS製品が好ましい。リバースプロキシ方式の場合、認証サーバへのアクセスが集中しトラフィック回避のためロードバランサが必須となる。

2、中堅規模で社内webシステムが多い場合

各Webシステムに都度エージェントを設定する事が困難な場合、リバースプロキシ方式が好ましい。国内でSSOの検討要望が多いボリュームゾーンです。オンプレが良いか、IDDaSが良いかの、比較検討が進んでいるそう。

3、100名以下のベンチャー系の場合

社内にWebシステムがほとんど無く、パブリッククラウドを積極的に利用している場合、フェデレーション方式代理認証方式のハイブリッド好ましい。オンプレのシングルサインオンはコスト的に見合わないので、IDaaSが主軸となる。

 

 

最後に、どんな形にしろ調べたこと、知ったことなどを何かにまとめるのは流し読みしそうなとこにまで目が届き良い勉強になるなと思いました。プログラミング言語などの勉強の際も実際にキーボード叩いて勉強していこうと思います。最後まで読んでいただきありがとうございます。