- OpenAM〜シングルサインオン〜
- ここでは、シングルサインオン(SSO)を実現することのできるソフトウェア、「OpenAM」を紹介します。
- OpenAMと認証システム
- ここでは、OpenAMを導入するに当たって検討すべき認証システムの課題について解説します。
- OpenAMと多要素認証
- ここでは、OpenAMと多要素認証について説明します。
OpenAMとは、シングルサインオン(SSO)を実現することのできるソフトウェアです。OpenAMは、Sun Microsystemsが開発した製品をOpenSSOとしてオープンソース化したものです。その後、ForgeRock社が開発を引き継ぎOpenAMと名称を変更しましたが、ForgeRock社はOpenAMを再度製品化しました。現在は、最新版のOpenAMはオープンソースとして提供されておらず、先行きは不透明です。ただ、いくつかの商用サポートベンダーによって、OpenAMの公開とサポートは継続されています。
シングルサインオン(SSO:Single Sign On)は、1回の認証を行うだけで、様々なシステムを利用可能にする技術です。現在、私たちはインターネットや所属する組織の中で、いくつものシステムを使用しています。そして、各システムにユーザ名とパスワードのような認証があり、利用するたびに認証を行う必要があります。これは、非常に煩雑で不便です。それを解決するために考案されたのがシングルサインオン(SSO)という考え方です。
シングルサインオンが実現されているシステムでは、ユーザは一度認証を受けると、様々なサービスやアプリケーションを認証なしで利用することができます。そのため、サービスやアプリケーションごとにユーザ名やパスワードを管理する必要がなく、非常に便利にシステムを利用することができます。また、システムの管理者は、誰がどのサービスに接続をできるのかを一元的に管理ができるようになります。
しかし、このようなシステムは、簡単には実現できません。別々の企業や開発者が開発したソフトウェアの認証を一元的に取り扱うのは、非常に難しいためです。そのため、様々な認証形態に対応したシングルサインオンの技術を開発する努力と、新たに作成するサービスやアプリケーションを最初からシングルサインオンで実現しやすいインタフェースを持たせようという2つの努力がなされています。
OpenAMは、様々な認証形態に対応したシングルサインオン(SSO)のシステムです。一方、シングルサインオンを実現しやすくするために、SAMLやOpenIDのような規格が定めらています。OpenAMは、どちらの規格にも対応しながら、従来のアプリケーションにも対応できるシングルサインオンのソフトウェアです。
OpenAMには、次のような特徴があります。
OpenAMのもっとも大きな特徴は、多くの認証方式に対応していることです。ここでは、OpenAMが採用している認証方式のいくつかを紹介します。
サービスを提供するサーバに、OepnAMエージェントを導入しOpenAMと連携することで、シングルサインオン(SSO)を実現します。単純な方式ですが、全サーバにエージェントを導入することが難しく、小規模な構成に向いています。
利用者とサービスを提供するサーバの間に、リバースプロキシを設置し、OpenAMエージェントを利用して連携します。サービスを提供するサーバには修正が必要ありません。ただし、すべての通信がリバースプロキシを経由して行われるため、性能の保持や冗長性の確保などを考慮した設計が必要となります。
サービスのログインページに対して、ユーザーの代わりにOpenAMサーバから、ID+パスワードを送信することで、シングルサインオンを実現する方式です。エージェント方式、もしくは、リバースプロキシ方式と組み合わせて利用します。
シングルサインオンを実現するための規格としては、SAMLとOpenID Connect(OIDC)がよく使われています。OpenAMはどちらの規格にも対応していて、連携が可能です。
SAMLは、XMLをベースとして、異なるシステム間でユーザ認証を行うための標準規格です。GoogleApps、Salesforce、サイボウズなどで採用されています。SAMLでは、サービス提供者(サービスプロバイダ)は、認証プロバイダと呼ばれる共通の認証基盤を利用して認証を行います。また、ユーザの属性情報のサービス利用の認可をするためのプロトコルも定義されています。
SAMLの規格では、サービスプロバイダと認証プロバイダの間で強固な信頼関係を結ぶ必要があります。そのため、セキュリティ強度が高いのが特徴です。一方で、サービスやアプリケーションを開発する場合には、難易度が高く、開発コストが掛かります。
OepnAMはSAMLの認証サーバ(IdP)として働きます。
OpenID Connectは、インターネット上の様々なクラウド・サービスで利用が進んでいる認証規格です。OpenID Connectでは、一般的な共有鍵方式を使ってセキュリティを保持し、処理も軽量です。そのため、開発もしやすく、FacebookやGoogleをはじめとする様々なインターネット上のクラウド型サービスで使われています。OpenAMは、OpenID Connectの認証サーバとして働きます。
WindowsのActiveDirectoryやLinuxとOpenAMを連携する場合に利用します。
シングルサインオンのメリットの一つとして、ユーザがどのサービスを利用できるのかを集中管理することがあげられます。OpenAMにも、アクセス制御の機能があります。OpenAMのアクセス制御では、対象となるリソース(URLとリクエスト種別)に対して、誰からのアクセスを許可・禁止するかを定義したポリシーを定義することができます。OpenAMのアクセス制御には、次のような特徴があります。
デージーネットでは、OSSを使ったシングルサインオンシステムの構築を行っています。デージーネットは、サーバの冗長化や負荷分散の技術を得意としています。そのため、OpenAMをリバースプロキシ型や代理認証型で使う場合でも、システムの可用性に十分に配慮したシステム構築を行います。また、逆に、そこまでの可用性が必要ない場合には、OpenAMの機能を搭載した安価なアプライアンスサーバを使った構成もご提案しています。
OpenAMの利用にあたっては、OpenAMのサポートを行っている会社の1つであるかもめエンジニアリング社と業務提携し、ソフトウェアのサポートやカスタマイズまで広い範囲でサポートができる体制をとっています。また、システムのコストを抑えるため、アプライアンス版の利用も推奨しています。
なお、現在のOpenAMは、ForgeRock社がコミュニティを閉鎖したためオープンソースとして提供されていません。いくつかの商用サポートベンダーによってOpenAMの公開とサポートは継続されていますが、今後の先行きは不透明です。また、OpenAMは非常に高機能なソフトウェアです。設定可能な項目が多く複雑で、導入も容易ではありません。多くの機能を持っているため、導入時に検討すべきことも多く、構築には専門的な知識が必要です。そのため、デージーネットでは、シングルサインオンを実現するソフトウェアとしてKeycloakを推奨しています。
「Keycloak〜シングルサインオンを実現する注目のOSS〜」へ