オープンソース

シングルサインオン(SSO)を構築するおすすめOSSとIDaaSの機能比較

昨今、クラウド上のサービスを利用する機会が増加したことにより、最近になってシングルサインオンの仕組みが再び注目されています。その理由の1つは、多数のサービスのアカウントを別々に管理し、それぞれのパスワードを記憶しておくことは、非常に煩雑で、パスワードを忘れてしまう恐れがあるからです。シングルサインオンの技術を活用し認証の要求を減らすことで、利用者の業務効率を上げるだけでなく、パスワードの安全性も強化することができます。この記事では、シングルサインオンを実現する方法として注目されているOSSとIDaaSを使った方法を比較し、それぞれの方法を選択すべき状況について解説します。

目次

シングルサインオンとは

シングルサインオン(SSO; Single Sign On)とは、1回のユーザー・パスワードの認証を行うことで、様々なシステムの認証を使用できるようにする技術です。一般的に、アプリケーションやクラウドサービスは個別の方法で認証を行っています。そのため、ユーザは利用するアプリケーションやサービスごとにIDとパスワードを管理する必要があり、それぞれにログイン処理を行う必要があります。シングルサインオンを導入し認証を統合させておくと、ユーザ名とパスワードの入力はシングルサインオンのシステムに1回だけ行えば良くなります。その都度システムにログインする必要がなくなるため、ユーザは多くのパスワードを自社のシステムごとに管理する必要がなくなり、ログインする際の手間も減ります。

シングルサインオン導入イメージ

また、シングルサインオンの技術を活用することで、組織の中で使っていたIDとパスワードを使ってクラウドサービスの認証が行えるようになることも、利用する社員にとって大きなメリットです。例えば、社内で利用しているActiveDirectoryとクラウドサービスを連携すれば、管理者はユーザ管理が非常に簡単になります。

シングルサインオンを実現するには

シングルサインオンを実現する仕組みとして、シングルサインオン専用の製品を使う方法、OSSを使う方法、IDaaSと呼ばれるクラウドサービスを使う方法の大きく分けて3つがあります。ただ、1つ目のシングルサインオンの製品は非常に高額なものが多く、コスト面で利用が躊躇されます。そのため、最近ではOSSとIDaaSが注目されています。以下では、シングルサインオンを実現する各種のOSSとIDaaSを紹介します。

OpenAM

OpenAMは、Sun Microsystems社が開発したOpenSSOをオープンソース化した、シングルサインオン(SSO)のソフトウェアです。非常に高機能で、多くの認証方式に対応しています。そのため、オンプレミスの独自製作のアプリケーションからインターネット上のサービスまで、幅広いアプリケーションにシングルサインオンのシステムを取り込むことができます。OpenAMの開発には日本人も参加し、日本国内でも多くの導入実績があります。シングルサインオンのソフトウェアとしては、デファクトスタンダード的な位置づけでもあります。

ただし、現在の最新版のOpenAMはオープンソースとして提供されていません。しかし、いくつかの商用サポートベンダーによって、OpenAMの公開とサポートは継続されています。

OpenAMログイン画面

機能

OpenAMは、非常に高機能なソフトウェアで、様々な認証方式に対応しているのが特徴です。

対応する認証方式

次のように、多くの認証方式に対応しています。そのため、多くのアプリケーションに対応することが出来ます。オンプレミスの独自製作のアプリケーションからインターネット上のサービスまでを、幅広くシングルサインオンのシステムに取り込むことができます。

エージェント型認証方式

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

リバースプロキシ型認証方式

利用者とサービスを提供するサーバの間にリバースプロキシを設置し、OpenAMエージェントを利用して連携します。性能の保持や冗長性の確保などを考慮した設計が必要となります。

代理認証方式

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

SAML認証方式

SAML(Security Assertion Markup Language)は、シングルサインオンを実現するためによく使われる規格です。SAMLでは、サービスプロバイダと認証プロバイダの間で強固な信頼関係を結ぶ必要があります。そのため、セキュリティ強度が高いのが特徴です。

OpenID Connect認証方式

OpenID Connect(OIDC)も、SAML同様、シングルサインオンでよく使われる規格です。トークンと呼ばれる記号を使い、アクセスの認可やID情報のやりとりを行います。証明書の作成では、SSL/TLSで使われているのと同じ非対称暗号化方式が使われます。一般的な共有鍵方式を使ってセキュリティを保持し、処理も軽量です。SAMLと並んで、対応している製品やサービスがたくさん存在しています。

Kerberos認証方式

Kerberos認証方式は、WindowsのActiveDirectoryやLinuxとOpenAMを連携する場合に利用します。Kerberosとは、サーバとクライアント間を確認のために使用するプロトコルです。Microsoftの「ActiveDirectory」が推奨する認証方式でもあります。

OpenAMの概要画面

また、OpenAMは、Google Authenticatorと連携した二要素認証の機能を提供しています。Google Authenticatorと連携することで、ネットワーク上の様々なWebアプリケーションにワンタイムパスワードによる認証を導入することができます。

ユーザIDとパスワードの管理

利用するユーザIDとパスワードのデータベースは、自前で別に持つこともできます。しかし、LDAPやActiveDirectoryなど、既存のシステムと連携することも可能です。

アクセス制御

ユーザが利用可能なアプリケーションを集中管理することができます。サービスやアプリケーションの単位だけでなく、各フォルダやファイルの単位でも制御ができます。また、一人のユーザが同時に複数ログオンを保持することを禁止できます。認証のログを記録することも可能です。

課題や注意点・デメリット

OpenAMは、非常に高機能なソフトウェアです。デメリットとして設定可能な項目が多く複雑で、導入も容易ではありません。様々な種類のWebアプリケーションに対応するための多くの機能を持っていますが、逆に言えば導入時に検討すべきことも多く、構築には専門的な知識が必要です。そのため、オープンソースソフトウェアではありますが、導入には比較的費用が掛かります。また、現在は最新版のOpenAMはオープンソースソフトウェアとして提供されていません。オープンソース版のOpenAMをサポートするベンダーは複数ありますが、今後の先行きは不透明です。

OpenAM詳細情報 お問合せ

Keycloak

Keycloakは、RedHatが開発している比較的新しいシングルサインオンのソフトウェアです。RedHatから提供される商用サポート版を選択することもできます。開発元がRedHatであることは、将来の開発やサポートの点では、非常に安心だと考えられます。Keycloakは、OpenAMなどの他のSSOのオープンソースソフトウェアと比較すると非常に新しいソフトウェアです。

Keycloakログイン画面

機能

OpenAMに比べると、利用可能な認証方式が限られています。そのため、対応できるアプリケーションも限定的です。ただし、その分だけシンプルであり、OpenAMに比べて導入のハードルも低いのが特徴です。

対応する認証方式

以下の認証方式をサポートしています。

SAML 2.0認証方式 / OpenID Connect認証方式

SAMLとOpenID Conenctは、シングルサインオンを実現するための認証の規格です。そのため、これに対応している製品やサービスもたくさんあります。

OAuth 2.0認証方式

OAuth 2.0認証方式では、クライアントは、リソースオーナーにアクセストークンを発行してもらい認証を受けます。

Kerberos認証方式

Kerberos認証方式では、Active DirectoryとKeycloakを組み合わせて連携させてKerberos認証を行い、チャットシステムなどのウェブサービスとKeycloakをOpenID Connectにて連携することができます。これにより、クライアントマシンでブラウザとしてMicrosoft Edge、Google Chrome、Firefoxを使用し、ウェブシステムにユーザ名やパスワードの入力なしでログインできるようなります。

WebAuthn

WebAuthnとは、WEBアプリケーションやWebサービスで認証(Authentication)を行うための規格です。FIDO2(Fast Identity Online 2)認証フレームワークに基づいて構築されており、公開鍵暗号化を使用して安全で信頼性の高い認証プロセスを作成します。

Keycloakの概要画面

デージーネットでは、Office365やAWS、G Suite、Slackなど、様々なサービスとの連携ができることを確認しています。詳しくは、「Keycloakと連携可能なサービス/ソフトウェア」を参照してください。

ユーザIDとパスワードの管理

利用するユーザIDとパスワードのデータベースは、自前で持つこともできます。しかし、LDAPやActiveDirectoryなど、既存のシステムと連携することも可能です。例えば、KeycloakをIdPとして導入することで、Windowsログインで使っているIDとパスワードをそのままインターネット上のサービスでも利用できるようになります。

アクセス制御

ロールベースの認証制御を行うことができます。さらに、管理コンソールから詳細なポリシーを定義することで、より細かなアクセス制御を実装することもできます。

可用性と性能

OpenAMと比べてシンプルなため、高速に動作します。また、冗長性や負荷分散などにも対応することができます。

注意点・ポイント

Keycloakは、比較的低価格で導入することができるソフトウェアです。そのため、小規模なシステムや予算が限られる場合等に適しています。しかし、Keycloakの導入を検討する場合には、次の点に注意が必要です。

  • Keycloakは、比較的新しく、まだ発展途上のオープンソースソフトウェアです。
  • 認証方式が限られているので、利用したい対象のアプリやツールに対応できるのかは調査や検証が必要です。

Keycloak構築事例 Keycloak詳細情報 お問合せ

IDaaS

IDaaSは、ID管理を行うクラウド上のサービスです。シングルサインオンの機能だけでなく、二要素認証やユーザのアクセス制御など、様々なID管理に対応しています。インターネット上の複数のサービスを、1つのIDとパスワードで管理することができ非常に便利です。

機能

IDaaSの提供事業者によっても機能が異なります。多くの事業者では、次のような機能を提供しています。

  • シングルサインオン
  • LDAPやActiveDirectoryなどの外部との連携
  • SAML、OpenID Connectなどのプロトコルへの対応
  • アクセス制御

デメリット

インターネット上のWebサービスですので、オンプレミスにあるサーバの認証は一元化できません。また、利用ユーザ数によって課金されますので、ユーザ数が多い場合には、OSSのKeycloakを使ったシステムの構築・サポートを利用した方が安価になり良い場合があります。

オープンソースソフトウェアとIDaaSの比較まとめ

あらかじめ用途や運用、または環境によって、利用しやすく適切なソフトウェアやサービスを選択する必要があります。

OpenAMを選ぶべき状況

  • オンプレミスのアプリケーションも一元管理したい
  • SAMLやOpenID Connectに対応していないアプリケーションも、シングルサインオンにしたい
  • 実績や安定性を重視したい

Keycloakを選ぶべき状況

  • オンプレミスのアプリケーションも一元管理したい
  • アプリケーションは、SAMLやOpenID Connectに対応している
  • できるだけシンプルでリーズナブルに導入したい

IDaaSを選ぶべき状況

  • アプリケーションは、SAMLやOpenID Connectに対応している
  • オンプレミスのアプリケーションとの連携は必要ない
  • 利用者の人数が少ない

シングルサインオンのシステムは、停止するとすべてのサービスが使えなくなってしまうという課題があります。そのため、システムの冗長性をきちんと確保する対策が必要です。万一障害が発生した場合のサポート体制も非常に重要です。そして、安全性の向上やセキュリティ対策についても一緒に考える必要があります。一般的には、ユーザ名とパスワードが漏洩するリスクに備えて、安全に利用するためにワンタイムパスワードの導入や、多要素認証との連携などを行い、セキュリティを強化することが多いです。

デージーネットの取り組み

デージーネットでは、ISPのシステム構築などで、システムの二重化、認証サーバの構築やサポートの実績を数多く持っています。こうした経験を生かして、お客様の状況に合わせて、OpenAM、Keycloakなど、お客様に最適なソリューションを提案します。また、構築・導入のコンサルティングや、お客様のご要望に合わせた最適なサーバーを構築するサービス、構築後に安心してお使い頂くためのサポートやメンテナンスのサービスを行っています。

導入後のサポートでは、システム全体のサポ―トを行います。Q&A対応やインストールしたOSSやソフトウェアに対するセキュリティ情報を提供し、障害の発生時に障害の回避、原因の調査を行います。必要な場合には、OSSソースコードレベルの調査やOSSコミュニティとの連携なども行います。システムの導入をご検討の方は、お気軽にご相談ください。

おすすめOSSとIDaaSの機能比較

シングルサインオン(SSO)を構築するおすすめOSSとIDaaSの機能比較の先頭へ