オープンソース

OpenAM〜シングルサインオン〜

OpenAMとは、シングルサインオン(SSO)を実現することのできるソフトウェアです。OpenAMは、Sun Microsystemsが開発した製品をOpenSSOとしてオープンソース化したものです。その後、ForgeRock社が開発を引き継ぎOpenAMと名称を変更しましたが、ForgeRock社はOpenAMを再度製品化しました。現在は、最新版のOpenAMはオープンソースとして提供されておらず、先行きは不透明です。ただ、いくつかの商用サポートベンダーによって、OpenAMの公開とサポートは継続されています。

シングルサインオン(SSO)とは

シングルサインオン(SSO:Single Sign On)は、1回の認証を行うだけで、様々なシステムを利用可能にする技術です。現在、私たちはインターネットや所属する組織の中で、いくつものシステムを使用しています。そして、各システムにユーザ名とパスワードのような認証があり、利用するたびに認証を行う必要があります。これは、非常に煩雑で不便です。それを解決するために考案されたのがシングルサインオン(SSO)という考え方です。

シングルサインオンが実現されているシステムでは、ユーザは一度認証を受けると、様々なサービスやアプリケーションを認証なしで利用することができます。そのため、サービスやアプリケーションごとにユーザ名やパスワードを管理する必要がなく、非常に便利にシステムを利用することができます。また、システムの管理者は、誰がどのサービスに接続をできるのかを一元的に管理ができるようになります。

OpenAMとシングルサインオン

しかし、このようなシステムは、簡単には実現できません。別々の企業や開発者が開発したソフトウェアの認証を一元的に取り扱うのは、非常に難しいためです。そのため、様々な認証形態に対応したシングルサインオンの技術を開発する努力と、新たに作成するサービスやアプリケーションを最初からシングルサインオンで実現しやすいインタフェースを持たせようという2つの努力がなされています。

OpenAMは、様々な認証形態に対応したシングルサインオン(SSO)のシステムです。一方、シングルサインオンを実現しやすくするために、SAMLやOpenIDのような規格が定めらています。OpenAMは、どちらの規格にも対応しながら、従来のアプリケーションにも対応できるシングルサインオンのソフトウェアです。

OpenAMの主な特徴

OpenAMには、次のような特徴があります。

  • シングルサインオンを実現するソフトウェアとしては、OpenAMがデファクトスタンダードである
  • OpenAMの開発には日本人も参加し、日本国内でも多くの導入実績がある
  • 大規模システムにも対応できる
  • LDAPActiveDirectoryなどの既存の認証情報とOpenAMを連携してシングルサインオンを実現できる
  • 既存の様々な認証方式に対応するために、OpenAMは複数のシングルサインオンの形式に対応している
  • OpenAMはSAMLやOpenIDにも対応し、新たなサービスやアプリケーションにも対応できる
  • アクセス制御機能があり、管理者はOpenAMでサービスの利用を一元管理できる
  • 一定期間使われていなければ、認証を解除するタイムアウト機能を持っている
  • 一人のユーザが同時に複数ログオンを保持することを禁止できる
  • 認証のログを記録することができる

OpenAMの5つの認証方式

OpenAMのもっとも大きな特徴は、多くの認証方式に対応していることです。ここでは、OpenAMが採用している認証方式のいくつかを紹介します。

エージェント型(チケット型)

サービスを提供するサーバに、OepnAMエージェントを導入しOpenAMと連携することで、シングルサインオン(SSO)を実現します。単純な方式ですが、全サーバにエージェントを導入することが難しく、小規模な構成に向いています。

OpenAMのエージェント型構成

OpenAMのエージェント型構成

リバースプロキシ型

利用者とサービスを提供するサーバの間に、リバースプロキシを設置し、OpenAMエージェントを利用して連携します。サービスを提供するサーバには修正が必要ありません。ただし、すべての通信がリバースプロキシを経由して行われるため、性能の保持や冗長性の確保などを考慮した設計が必要となります。

OpenAMのリバースプロキシ型構成

OpenAMのリバースプロキシ型構成

代理認証型

サービスのログインページに対して、ユーザーの代わりにOpenAMサーバから、ID+パスワードを送信することで、シングルサインオンを実現する方式です。エージェント方式、もしくは、リバースプロキシ方式と組み合わせて利用します。

SAML/OpenID Connect認証型(フェデレーション型)

シングルサインオンを実現するための規格としては、SAMLとOpenID Connect(OIDC)がよく使われています。OpenAMはどちらの規格にも対応していて、連携が可能です。

  • SAML

    SAMLは、XMLをベースとして、異なるシステム間でユーザ認証を行うための標準規格です。GoogleApps、Salesforce、サイボウズなどで採用されています。SAMLでは、サービス提供者(サービスプロバイダ)は、認証プロバイダと呼ばれる共通の認証基盤を利用して認証を行います。また、ユーザの属性情報のサービス利用の認可をするためのプロトコルも定義されています。

    SAMLの規格では、サービスプロバイダと認証プロバイダの間で強固な信頼関係を結ぶ必要があります。そのため、セキュリティ強度が高いのが特徴です。一方で、サービスやアプリケーションを開発する場合には、難易度が高く、開発コストが掛かります。

    OepnAMはSAMLの認証サーバ(IdP)として働きます。

  • OpenID Connect

    OpenID Connectは、インターネット上の様々なクラウド・サービスで利用が進んでいる認証規格です。OpenID Connectでは、一般的な共有鍵方式を使ってセキュリティを保持し、処理も軽量です。そのため、開発もしやすく、FacebookやGoogleをはじめとする様々なインターネット上のクラウド型サービスで使われています。OpenAMは、OpenID Connectの認証サーバとして働きます。

Kerberos認証型

WindowsのActiveDirectoryやLinuxとOpenAMを連携する場合に利用します。

OpenAMとアクセス制御

シングルサインオンのメリットの一つとして、ユーザがどのサービスを利用できるのかを集中管理することがあげられます。OpenAMにも、アクセス制御の機能があります。OpenAMのアクセス制御では、対象となるリソース(URLとリクエスト種別)に対して、誰からのアクセスを許可・禁止するかを定義したポリシーを定義することができます。OpenAMのアクセス制御には、次のような特徴があります。

  • 管理者は、OpenAMの管理コンソールからポリシーを定義することができる
  • OpenAMで管理するアプリケーションをグループ化して、グループ単位で管理ができる
  • 対象となるリソースをURLで指定するため、OpenAMではサービスやアプリケーションの単位だけでなく、フォルダやファイルの単位でも制御ができる
  • OpenAMに対して認証を行った方式や時間などでも制御ができる

デージーネットのOpenAMへの対応

デージーネットでは、OSSを使ったシングルサインオンシステムの構築を行っています。デージーネットは、サーバの冗長化負荷分散の技術を得意としています。そのため、OpenAMをリバースプロキシ型や代理認証型で使う場合でも、システムの可用性に十分に配慮したシステム構築を行います。また、逆に、そこまでの可用性が必要ない場合には、OpenAMの機能を搭載した安価なアプライアンスサーバを使った構成もご提案しています。

OpenAMの利用にあたっては、OpenAMのサポートを行っている会社の1つであるかもめエンジニアリング社と業務提携し、ソフトウェアのサポートやカスタマイズまで広い範囲でサポートができる体制をとっています。また、システムのコストを抑えるため、アプライアンス版の利用も推奨しています。

なお、現在のOpenAMは、ForgeRock社がコミュニティを閉鎖したためオープンソースとして提供されていません。いくつかの商用サポートベンダーによってOpenAMの公開とサポートは継続されていますが、今後の先行きは不透明です。また、OpenAMは非常に高機能なソフトウェアです。設定可能な項目が多く複雑で、導入も容易ではありません。多くの機能を持っているため、導入時に検討すべきことも多く、構築には専門的な知識が必要です。そのため、デージーネットでは、シングルサインオンを実現するソフトウェアとしてKeycloakを推奨しています。

デモのお申込み

もっと使い方が知りたい方へ
OpenAMの操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。OpenAMのデモをご希望の方は、下記よりお申込みいただけます。

デモをご希望の方

デモの申し込みイメージ


「OpenAM」OSS情報

OpenAM〜シングルサインオン(SSO)を実現するOSS〜の先頭へ