「SSO(シングルサインオン)」とは?
一つのID、パスワードを用いてパスワード認証を行って、複数のWebサービスやクラウドにアクセスすることができる仕組みです。
昨今は、様々なシステムがあるので、都度パスワードを入力する手間がかかったり、他人にハッキングされないようにすることが至上命令になっています。
ユーザーに同じパスワードを使い回すことを助長することになって問題ないの?
ほぼ心配ありません。ユーザー名、パスワードはできるだけ別のものを使うように促されていますが、ほとんどのユーザーが同じユーザー名とパスワードを使いませしているのが現状です。
やはり、人間の記憶力には限界があるので、どうしても異なるIDやパスワードは管理しきれませんし、むしろ色んなIDやパスワードを使う場合は、忘れてしまうのでどこかに記録しなければならなくなり、それがセキュリティホールになったりするのです。一つのユーザー名、パスワードを強固に管理するのが人間の記憶の仕組み上最適というわけですね。
シングルサインオンの歴史
元々、10年以上前からオンプレミス型のシステムにて使われていました。そんなに新しい概念ではないのですね。
昨今は、シングルサインオンもクラウド化されており、「IDaaS(アイダース)」と呼ばれています。
シングルサインオンの種類
- エージェント方式
- リバースプロキシ方式
- 代理認証方式
- フェデレーション方式
エージェント方式
オンプレミス型のシステムで利用されていますし、現在でも多いです。Webサーバーに認証を代行するモジュールをインストールすることです。
Webに、リクエストをして、Webサーバが受け取り、Webサーバ内の 「エージェント」がSSOサーバに、ユーザーログイン状態/アクセス権限を問い合わせ、認証状態を確認する方式です。
同時アクセス数が、数万人単位の大規模システムでは好まれます。
リバースプロキシ方式
オンプレミス型のシステムで利用されていました。
まずは、ブラウザと、Webアプリの間に「リバースプロキシサーバ」を立てます。
その、リバースプロキシサーバーに対して「エージェントソフト」を導入することで、そのソフトがシングルサインオンの仕組みを代行します。
この方式では、認証サーバーへのアクセスが集中しないように、ロードバランサが必須になってしまいますので、利用者が多い場合はこの方式は避けます。
代理認証方式
IDaaSのシステムでよく利用されています。
Webアプリのログインページに対して、ユーザーの代わりにID/パスワードを送信し、自動的に代理入力することによってログインを済ませます。
Auth0
クラウド型のIDaaSベンダが作っている製品です。コードレスでお手軽に導入でき、様々なサービスとの連携を簡単に行うことが可能です。
Auth0については、詳しくは下記の記事で解説しています。
フェデレーション方式
IDaaSのシステムでよく利用されています。
クラウドサービス間で、パスワードではなく、「チケット」というものを受け渡しすることによって、シングルサインオンを実現します。
下記のように多くのサービスが対応しています。
- Office365
- G Suite
- Salesforce
- box
主に使われるプロトコルは下記の二つです。
- SAML
- OpenID Connect
デメリット
モバイルアプリやWeb APIにはなかなか対応できないという問題点があります。
一般的なエンタープライズ向け
AD、LDAP認証を行い、CookieやHTTPヘッダーなど認証情報を埋め込むなどして、Webアプリケーションへの認可を行うもの。
デメリット
独自のプロトコルを使用しており、実装が難しく非常に時間がかかってしまいます。
SAMLとは?
「Security Assertion Markup Language」の略です。
異なるネットワークドメイン間で、ユーザー認証を行うためのXMLをベースとした規格で、企業の持つAD等の情報を使って「シングルサインオン」を実現します。
バージョン
バージョン | 策定年月 |
---|---|
1.0 | 2002年 |
2.0 | 2005年3月 |
SAMLの特徴
- ユーザー情報の付与も行うことができ、認証だけでなく、どの機能を使うかという認可まで行うことができます。
SAMLの全体像
SP(要は、あなたがSAMLを導入したいサービス)
SAMLによる認証機能を導入するシステムです。
IdP(Identity Provider)
認証情報を提供するシステムです。
IdPの例としては、下記のようなサービスがあります。
- Auth0
- SalesforceのFederation
- Google AppsのFederation
認証情報
デジタル署名されたXML文書を通じて交換されます。
SAMLがあることによるメリット
SPと、IdP間の連携の際に、情報の形式や書式を変換する手間を省くことができます。
この記事へのコメントはありません。