よくある質問・用語集

  • もっと調べる
  • どうやって使う?

OpenAMとは

OpenAMとは、シングルサインオンを実現するためのソフトウェアである。シングルサインオンを実現するためのソフトウェアとしては、OpenAMはデファクトスタンダードであるとも言われている。また、OpenAMはSAMLのIdP(Identity Provider)としても利用することができる。OpenAMは、基本的にはオープンソースソフトウェアであるが、歴史的な事情から複雑な状態になっている。

OpenAMの歴史

OpenAMは、以前はOpenSSOとよばれていた。OpenSSOは、Sun Microsystemsが開発していた。しかし、Sun MicrosystemsがOracleに買収されたことから開発が中止になった。その後、ForgeRockが開発とサポートを継続を表明した。OpenAMは、ForgeRockがサポートするOpenSSOのフォークである。

残念ながら、ForgeRockはOpenAMのコミュニティを継続せず閉鎖した。ただし、それ以降も、いくつかのベンダーがオープンソース版の公開とサポートを継続している。

OpenAMの機能

OpenAMは、次の3つのシングルサインオンの機能を実現できる。

  • 認証〜システムに接続するユーザが正しいかどうかを、OpenAMが確認します。
  • 認可〜システムに接続するユーザが、どの情報にアクセスできるかをOpenAMで集中制御します。
  • フェデレーション〜OpenAMで認証したユーザの情報を、アプリケーションに連携します。

ユーザの認証

シングルサインオンのシステム内で認証が発生したときに、OpenAMとアプリケーションが連動して認証処理を行う。認証に必要な情報は、OpenAM内部で管理することもできるが、ActiveDirectoryやLDAPなどの外部の認証システムと連携することもできる。また、OpenAMではワンタイムパスワード(OTP)を使った認証を行うこともできる。

ユーザの認可

OpenAMでは、シングルサインオンのシステムを利用しようとするユーザが、どのアプリケーションを利用できるかを集中管理することができる。OpenAMでは、認可対象となるアプリケーションはリソースと呼ばれ、URLで管理する。また、OpenAMでは、これからアクセスしようとしているリソースに対する利用の認可を、フォルダやファイルの単位で細かく行うことができる。また、時間帯によって認可の条件を変更することも可能である。OpenAMでは、リソースはグループ単位で管理することができる。

フェデレーション

OpenAMで認証したユーザの情報を、アプリケーションに連携することができる。そのため、アプリケーションはユーザのメールアドレスや部署などの属性を、OpenAMから受け取ることができる。OpenAMでは、OpenAM内にユーザ情報として保管されているものと、ActiveDirectoryやLDAPなどに登録されている情報を引き渡すことができる。ただし、フェデレーションによりデータの連携を受けるアプリケーションは、SAMLやOAUTH2.0などに対応している必要がある。

OpenAMの認証機能

OpenAMの最も大きな特徴は、様々な認証方式をサポートすることである。主な方式は、次の6つである。

  • エージェント型

    シングルサインオンの対象となるアプリケーションに、OpenAMと連携するエージェントを組込む方法。

  • リバースプロキシ型

    クライアントのアプリケーションのアクセスを、リバースプロキシ経由にする方式。
    リバースプロキシには、アプリケーションに対応するエージェントを組み込み、OpenAMと連携する。

  • 代理認証型

    OpenAMが、ユーザの代わりに認証を行なう方式。

  • SAML認証型

    OpenAMが、シングルサインオン用のプロトコルであるSAMLを使って認証を行う方式。

  • OpenID Connect認証型

    OpenAMが、シングルサインオン用のプロトコルであるOpenID Connectを使って認証を行う方式。

  • Kerberos認証型

    Windowsの認証の仕組みを利用してOpenAMがシングルサインオンを実現する方式。

OpenAMとクラウドサービス用のIdP

クラウドサービスでは、SAML認証が使われることが多い。その場合、クラウドサービスの内部で個別に認証情報を持つこともできるが、利用者にとってサービス毎にパスワードを管理するのは煩雑である。そのため、SAMLのような共通の認証プロトコルを使うことが増えている。

SAML認証をサポートするクラウドサービスでは、利用者側でIdPを用意することで、様々なサービスの認証情報を一元管理することができるようになる。

OpenAMは、このSAMLのIdPとして利用することもできる。OpenAMをLDAPやActiveDirectoryなどの認証サーバと連携することで、企業内で利用しているIDとパスワードを、クラウドサービスでも使えるようになる。

なお、OpenAMをSAMLのIdPとして利用するための仮想アプライアンスサーバなども販売されている。

OpenAMの注意点

OpenAMは、様々な認証方式をサポートしている。しかし、残念ながら、すべてのアプリケーションの認証を無修正で完全にサポートできるほど万能ではない。エージェント型認証は、アプリケーションを改変し、OpenAMに対応できるようにすることを前提としている。また、OpenAMの既存の認証方式では対応できないアプリケーションがある場合には、そのアプリケーションに対応した認証モジュールを開発するなどの作業が必要になる。

OpenAMを使って認証を一元化する場合には、OpenAMや認証サーバに障害が発生すると、すべてのシステムにアクセスできなくなる。そのため、冗長性を確保することは必須である。

こうした理由から、OpenAMの導入はハードルが高い。そのため、事実上、専門的に扱っているベンダーへ構築を依頼する必要がある。

OpenAMのインストール

OpenAMは、以前はオープンソースソフトウェアであった。そのため、過去のソースコードを入手することは可能である。しかし、ForgeRockがコミュニティを閉鎖してから、セキュリティパッチなどが公開されていない。そのため、ネット上に公開されているソースコードがあっても既に安全なソースコードとは言えない。したがって、OpenAMをインストールして利用するには、日本国内で商用サポートを行っているベンダーから入手するのが安全である。

また、OpenAMをインストールし、様々な認証機能を使い分けてシングルサインオンのシステムを 構築することは非常に難しい。そのため、専門の業者に依頼する必要がある。

OpenAMと多要素認証

シングルサインオンを実現すると、一つのユーザとパスワードで様々なシステムにアクセスできるようになる。しかし、逆に言うと、そのユーザとパスワードが漏洩すると、すべてのシステムにアクセスできるようになってしまう。

そのため、OpenAMの導入時には、OpenAMに対して行う一回の認証をよりセキュアにするため、シングルサインオンや証明書認証などの多要素認証を導入することを検討することが多い。

OpenAMの優位性

シングルサインオンのソリューションとしては、RedHatが開発したOSSのkeycloakやIDaaSが注目されている。「シングルサインオン(SSO)を構築するおすすめOSSとIDaaSの機能比較」でも紹介されているように、これらのソリューションに対してのOpenAMの優位性は明確である。

  • OpenAMは、SAML、OpenID connectをサポートしていないアプリケーションに対してシングルサインオンを実現するための様々な仕組みを備えている
  • OpenAMは、オンプレミス環境に設置でき、オンプレミスのサービスにもシングルサインオンを提供できる

デージーネットのサービス

デージーネットでは、OpenAMを使ったシングルサインオンのシステムの構築を行っている。もともと、認証サーバやクラスタなどの技術が得意なことから、システム構築にあたっても、止まらないシングルサインオンのシステムを作ることを重視している。OpenAMの利用にあたっては、OpenAMのサポートを行っている会社の1つであるかもめエンジニアリング社と業務提携し、ソフトウェアのサポートやカスタマイズまで広い範囲でサポートができる体制をとっている。また、システムのコストを抑えるため、アプライアンス版の利用も推奨している。

多くのサポートベンダーは、あくまでソフトウェアのサポートに徹しているが、デージーネットではOpen Smart Assistanceのサービスと組み合わせて、シングルサインオンのシステム全体を総合的にサポートする。

【カテゴリ】:認証  オープンソースソフトウェア  

  • もっと調べる
  • どうやって使う?

【共催セミナー】研修管理・運用の負担を軽減 学習管理システム(LMS)紹介セミナー

日程: 5月23日(木)Webセミナー「BigBlueButton」を使用します。
内容: 社内研修の課題を解決できる学習管理システム(LMS)について紹介します。
ご興味のあるかたはぜひご参加ください。

セミナー申込

関連用語

OpenAMに関連するページ(事例など)

OpenAMとは先頭へ