SSOについて
single-sign-on
1度認証を受けた後は、利用可能なサーバやサービスを認証なしで利用できる仕組み。
メリット
- 利便性の向上
- 業務効率の向上
- 管理者の負担軽減パスワード管理など
デメリット
- パスワード流出時のリスクが高い
種類
SSOの種類は1つだけではない!
- リバースプロキシ:社外から社内業務サーバにアクセスする
- ケルベロス認証:社外から社内業務サーバにアクセスする
- SAML:異なるドメイン間SSOしたい時に使われる。ネットショッピングなど
プロキシについては、プロキシとはにまとめています。
リバースプロキシを利用したSSO
ユーザーはリバースプロキシサーバにアクセスして、リバースプロキシサーバの認証機能によって認証します。
問題がなければ社内のサーバにアクセス。
リバースプロキシサーバを経由して通信させることによって、社内のリソースに1度の認証でアクセスできるようになります。
プロキシサーバの多くはHTTPSの代理をするので、対象のサーバはWEBベースのシステムである必要があります。
最近はWEBアプリで大体の範囲でカバーができる
メール:Webメール
ファイル操作:WebDAV
業務サーバ:Webブラウザで操作
ケルベロス認証
LAN内においてまずケルベロスサーバで認証を行いOKがもらえれば、その後の業務サーバへのアクセスは認証なしで利用できる
SAML
なぜSAMLが必要か?
以前はリバースプロキシを通じて社内リソースにアクセスしていましたが、多数のクラウドサービスが普及したことで、これらのサービスを利用することが一般的になりました。この変化に伴い、多くのクラウドサービスのIDとパスワードを一元管理する仕組みが必要になり、そのための新技術が開発されました。
XML仕様のマークアップ言語。
SSLが使える前提である。
Webサイトやサービスの間でSAMLの情報を交換することで、1度の認証で複数のサービスが利用可能になる。
⇒SAMLによるSSOが実現できる
IDP:認証を受け持つWebアプリ
SP:実際に利用するWebアプリ
Assertion:SAMLで使う情報が含まれるトークン
・認証 どのような手段でいつ認証されたか
・属性 ユーザー名、組織名など
・認可 ユーザーのアクセス権
SAMLを使ったSSOの流れ(Azure ADの場合)
ポイント
- IdPで発行されるアサーションには、IdPの秘密鍵で電子署名されている。
- SPは公開鍵を使って電子署名を検証する。
- IdPとSPはお互いにPKIの仕組みを使って信頼関係を結んでいる。
- IdPとSPはそれぞれ直接通信せず、必ずWebブラウザを経由して通信が発生している。
- IdPとSPが直接通信する必要がないので、ドメインが異なっていてもOK!
Discussion