はじめに
第4回は、OpenAMを使用してクラウドサービスにSSOする方法について解説します。クラウドサービスへのSSOには、SAMLやOpenIDなどの認証プロトコルを使用するのが一般的です。今回はSAMLを使用してSalesforceへSSOします。Salesforceでは開発や検証の目的で、無料の「Developer Edition」を提供しているので、これを利用して動作確認します。
対象読者
- SSOとOpenAMについてより理解したい方
- OpenAMの導入を検討している方
- SAMLによるクラウドサービスへのSSOについて理解したい方
- SalesforceなどのクラウドサービスへのSSOを検討している方
SAMLによるSSOの概要
設定に入る前に、SAMLの概要とSAMLによるSSOの設定方法について簡単に説明します。
SAMLとは
SAMLは、インターネット上に公開されているサービスへのSSOを可能にする標準プロトコル(通信規約)です。ユーザは、この規約に従って実装されたサービスに対して、ベンダやネットワークの枠を超えてSSOをすることができます。
SAMLのメッセージは、XML形式でHTTPリクエストやレスポンスに付加されて、サーバ間でやりとりされます。SAML認証時のHTTPリクエストやレスポンスのボディ部にある<samlp:~>タグで囲まれている部分がSAMLのメッセージです。この中に認証の結果や、ユーザの属性(IDや所属組織)、アクセス権限などの情報が含まれており、各サーバはこれを解析して認証やアクセス制御を行います。
SAMLを利用したSSOの設定
SAMLでは、サービスを提供するサーバを「サービスプロバイダ(SP)」、SPからの要求に対して認証を行い、ユーザの属性情報を返すサーバを「アイデンティティプロバイダ(IdP)」といいます。
SAMLを利用してSalesforceへSSOするためには、SalesforceをSPに、OpenAMをIdPに設定し、両者の間で証明書を交換する必要があります。これはユーザ情報を共有するサーバ間で事前に信頼関係を結ぶことが、SAMLによるSSOの前提となっているためです。この信頼関係を「トラストサークル」といいます。
トラストサークルの設定に加えて、SalesforceとOpenAMのユーザをマッピングをするための設定が必要になります。例えば、Salesforceユーザの「統合ID」とOpenAMユーザの「ID(uid)」が一致する場合に同一ユーザとみなす、というようにユーザ属性の対応付けを行う必要があります。
設定の概要
設定のおおまかな流れは以下のようになります。
- 事前準備(Salesforce Developer Editionの登録など)
(Salesforce、OpneAMのそれぞれで以下を実施) - 証明書の取得
- 連携用ユーザの作成
- SSO設定(相手の証明書の取り込みを含む)
すべて完了すると、トラストサークルが構成され、SSOが可能になります。
OpenAMのインストールが完了していない方は、「OpenAMのインストール - OpenAMで始めるシングルサインオン(2)」を参照してインストールを行ってください。またOpenAMサーバのシステムクロックは、Network Time Protocol(NTP)を使用して、インターネット上の正しい時刻に同期させるようにしてください(※1)。