クラウドサービスへのシングルサインオン ~ Salesforceとの連携

CodeZine / 2013年2月13日 14時0分

図21:OpenAMのログアウトページ

 OpenAMは、シングルサインオン(以下SSO)を実現するオープンソースソフトウェア(以下OSS)です。旧Sun Microsystems社により開発された商用製品がベースとなっているため、高品質で多機能です。全世界で多くの導入実績があり、安定性と信頼性の高さが証明されています。本連載では、OpenAMとSSOに関する技術について解説します。また実際にOpenAMをインストールし、社内アプリケーションやクラウドサービスに対してSSOをしてみます。

■はじめに

 第4回は、OpenAMを使用してクラウドサービスにSSOする方法について解説します。クラウドサービスへのSSOには、SAMLやOAuthなどの認証プロトコルを使用するのが一般的です。今回はSAMLを使用してSalesforceへSSOします。Salesforceでは開発や検証の目的で、無料の「Developer Edition」を提供しているので、これを利用して動作確認します。

■対象読者

SSOとOpenAMについてより理解したい方 OpenAMの導入を検討している方 SAMLによるクラウドサービスへのSSOについて理解したい方 SalesforceなどのクラウドサービスへのSSOを検討している方 ■SAMLによるSSOの概要

 設定に入る前に、SAMLの概要とSAMLによるSSOの設定方法について簡単に説明します。

●SAMLとは

 SAMLは、インターネット上に点在するサービスへのSSOを可能にする標準プロトコル(通信規約)です。ユーザは、この規約に従って実装されたサービスに対して、ベンダやネットワークの枠を超えてSSOをすることができます。

図1:SAMLによるSSO


 SAMLのメッセージは、XML形式でHTTPなどに付加されて、サーバ間でやりとりされます。SAML認証時のHTTPリクエストやレスポンスのボディ部にある<samlp:~>タグで囲まれている部分がSAMLのメッセージです。この中に認証の結果や、ユーザの属性(IDや所属組織)、アクセス権限などの情報が含まれており、各サーバはこれを解析して認証やアクセス制御を行います。

●SAMLを利用したSSOの設定

 SAMLでは、サービスを提供するサーバを「サービスプロバイダ(SP)」、SPからの要求に対して認証を行い、ユーザの属性情報を返すサーバを「アイデンティティプロバイダ(IdP)」といいます。

 SAMLを利用してSalesforceへSSOするためには、Salesforce、OpenAMをそれぞれSP、IdPに設定し、両者の間で証明書を交換する必要があります。これはユーザ情報を共有するサーバ間で事前に信頼関係を結ぶことが、SAMLによるSSOの前提となっているためです。この信頼関係を「トラストサークル」といいます。

図2:トラストサークルの構成


 トラストサークルの設定に加えて、SalesforceとOpenAMのユーザをマッピングをするための設定が必要になります。例えば、Salesforceユーザの「統合ID」とOpenAMユーザの「ID(uid)」が一致する場合に同一ユーザとみなす、というようにユーザ属性の対応付けを行う必要があります。

■設定の概要

 設定のおおまかな流れは以下のようになります。

事前準備(Salesforce Developer Editionの登録など)
(Salesforce、OpneAMのそれぞれで以下を実施) 証明書の取得 連携用ユーザの作成 SSO設定(相手の証明書の取り込みを含む)  すべて完了すると、トラストサークルが構成され、SSOが可能になります。

 OpenAMのインストールが完了していない方は、「OpenAMのインストール - OpenAMで始めるシングルサインオン(2)」を参照してインストールを行ってください。またOpenAMサーバのシステムクロックは、Network Time Protocol(NTP)を使用して、インターネット上の正しい時刻に同期させるようにしてください(※1)。

※1
 SAMLメッセージは、発行時のタイムスタンプから一定時間を超過した場合、無効になります。Salesforceでは3分間のクロック誤差を許容していますが、できるだけ正確に時刻を合わせておいた方が良いです。





CodeZine

トピックスRSS

ランキング