オープンソース

サーバー構築のデージーネットTOP > OSS情報 > OSS紹介 >OpenAM〜シングルサインオン(SSO)を実現するOSS〜

サーバー構築のデージーネットTOP > OSS情報 > シングルサインオン >OpenAM〜シングルサインオン(SSO)を実現するOSS〜

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

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

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

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

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

OpenAMとシングルサインオン

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

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

シングルサインオン(SSO)のための規格

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

SAML(Security Assertion Markup Language)

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

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

OpenID Connect(OIDC)

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

OpenAMの特徴

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

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

OpenAMの6つの認証方式

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

【OepnAM認証方式1】エージェント型(チケット型)

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

OpenAMのエージェント型構成

OpenAMのエージェント型構成

【OepnAM認証方式2】リバースプロキシ型

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

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

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

【OepnAM認証方式3】代理認証型

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

【OepnAM認証方式4】SAML認証型

SAMLを使ってシングルサインオンを実現します。GoogleApps、Salesforce、サイボウズなどと連携する場合に利用します。OepnAMはSAMLの認証サーバとして働きます。

【OepnAM認証方式5】OpenID Connect認証型

OpenID Connectとの連携によりシングルサインオンを実現します。GoogleIDやFacebookIDと連携する場合に利用します。OpenAMがOpenID Connectの認証サーバとして働きます。

【OepnAM認証方式6】Kerberos認証型

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

OpenAMとアクセス制御

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

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

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

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

OSS情報「OpenAM」

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