Office 365やGoogle Appsと同様に、Salesforce CRM/Force.comでも社内のActive DirectoryをID基盤として利用できる。その環境を構築してシングル・サインオン(SSO)を実現する方法と動作確認の手順を解説する。
第1回ではクラウド・サービスとのアイデンティティ連携に関する技術要素および基本的な考え方について解説し、第2回、第3回、第4回では実際にOffice 365およびGoogle Appsと社内のActive Directory(AD)の連携に関する環境構築の方法と、社内外のPCやスマートフォンからの実際の利用方法を解説した。今回から2回に渡って、セールスフォース・ドットコム提供のSaaS/PaaSであるSalesforce CRM/Force.comと社内ADとの連携方法、およびユーザー情報を動的に配信するジャスト・イン・タイム・プロビジョニングの実装方法について解説する。
なお、AD FS 2.0とSalesforce CRMのシングル・サインオン(SSO)環境の構築方法については、以前に「Windowsで構築する、クラウド・サービスと社内システムのSSO環境 第3回」で解説しているが、読者の作業を本稿だけで完結していただくため、もう一度繰り返して解説しておく。
現在Salesforce CRMには Enterprise/Unlimited/Database.com/Developerなど各種エディションが提供されている。今回は無償トライアル版が提供されているEnterpriseエディションおよびDeveloperエディション(Force.com)を利用する。
それぞれトライアル版は、以下のWebページよりサインアップを行うと利用できるようになる。
今回はSalesforce CRMへのシングル・サインオンを実現する手順を解説する。次回は、初回サインオン時に動的にユーザーを作成するジャスト・イン・タイム・プロビジョニングの実装、およびSalesforce CRM/Force.com自体をID管理基盤としてほかのサービスと連携するIDプロバイダ/認証プロバイダ機能について一部解説する。
Salesforce CRMへのログイン認証を社内AD DSと連携させるためには、AD FS 2.0を使ったSAML連携のための環境が必要となる。そのためには大きく分けて次の2つの作業が必要だ。
では、順番に設定を行っていく。
ここではSalesforce CRMに管理者アカウントでログインし、シングル・サインオンの有効化とIdP(アイデンティティ・プロバイダ)としてのAD FS 2.0の登録を行う。なお、前回解説したGoogle Appsとは違い、AD FS 2.0側の設定を行う前にSalesforce CRM側の設定を行う。Salesforce CRMはSAML 2.0のメタデータ(構成情報)提供に対応しており、AD FS 2.0側はSalesforce CRMで作成したメタデータをインポートすることで簡単に設定を行うことが可能なためだ。
まず、「https://login.salesforce.com/」へアクセスし、サインアップ時に指定した管理者IDとパスワードでログインする。その後、アカウントの[設定]より[管理者設定]−[セキュリティのコントロール]−[シングルサインオン設定]の順にメニューを開く。
[編集]ボタンをクリックすると[SAML を有効化]というチェックボックスが表示されるので、チェックを入れてオンにする。すると以下の設定項目が表示されるので、それぞれに社内のAD FS 2.0に関する情報を入力する。なお、IDプロバイダの証明書にはAD FS 2.0のトークン署名証明書をエクスポートしたものを利用する。エクスポートの手順については前回の画面「トークン署名証明書のエクスポート」を参照していただきたい。
(6)の「SAML のユーザ ID 種別」は、AD FS 2.0から発行されるSAMLトークンの中に含まれるユーザーIDと、Salesforce CRMのユーザー・オブジェクトのどの属性をマッチングしてユーザーのひも付けを行うか、という設定である。今回は[統合 ID]が一致していることでユーザーのひも付けを行う。また(7)の「SAML のユーザ IDの場所」は、AD FS 2.0から発行されるSAMLトークン(XML形式)の中のどの要素にユーザーID情報が含まれるか、という設定である。今回はNameIdentitfier要素にユーザーIDを含めるようにAD FS 2.0を設定する(その手順は後述の要求規則の編集部分で解説する)。
ここまで設定を行い、[保存]ボタンをクリックすると[メタデータのダウンロード]というボタンが表示されるので、ここでPC上の任意のフォルダへメタデータをダウンロードしておく。
次に、このファイルを使ってAD FS 2.0側の証明書利用者信頼の設定を行う。
前回までに利用したAD FS 2.0の環境に、新しくSalesforce CRM用の証明書利用者信頼を追加する。AD FS 2.0管理コンソールの左ペインより[証明書利用者信頼]を開き、右の操作ペインから[証明書利用者信頼の追加]をクリックし、証明書利用者信頼の追加ウィザードを起動する。
ウィザード内では以下の情報を入力する。
ページ | 項目 | 入力/選択値 | |
---|---|---|---|
データ ソースの選択 | この証明書利用者についてのデータを取得するために使用するオプション | [証明書利用者についてのデータをファイルからインポートする]を選択 | |
フェデレーション メタデータ ファイルの場所 | 先ほどダウンロードしたメタデータを指定 | ||
表示名の指定 | 表示名 | 「salesforce」(任意の名称) | |
発行承認規則の選択 | この証明書利用者の発行承認規則の初期動作 | [すべてのユーザーに対してこの証明書利用者へのアクセスを許可する]を選択 | |
証明書利用者信頼の追加ウィザードにおける設定項目 |
ウィザードの「データ ソースの選択」では、先ほどダウンロードしておいたメタデータをインポートする。これにより細かい設定をする必要がなくなり、非常に簡単に設定を完了できる。
証明書利用者信頼の追加ウィザードが完了すると[要求規則の編集]ダイアログが開くので、次は社内AD上の属性値をSalesforce CRMへ渡すための識別子(名前ID)とひも付ける作業を行う。Salesforce CRM上の識別子は統合ID(メール・アドレス形式)を利用するため、ひも付けを行いたいSalesforce CRM上のユーザーの統合IDの値を社内ADのメール・アドレス属性に設定することとする。
[要求規則の構成]ダイアログから起動する発行変換規則の追加ウィザードで、設定すべきページとその設定値は以下の通りである。
ページ | 項目 | 入力/選択値 | |
---|---|---|---|
規則の種類の選択 | 要求規則テンプレート | [LDAP 属性を要求として送信]を選択 | |
要求規則の構成 | 要求規則名 | 「NameIdentifier」(任意の名称) | |
属性ストア | [Active Directory]を選択 | ||
LDAP 属性 | [E-Mail-Addresses]を選択 | ||
出力方向の要求の種類 | [名前ID]を選択 | ||
発行変換規則の追加ウィザードにおける設定項目 |
ここまででAD FS 2.0の設定は完了である。次は、実際にひも付けるユーザーの準備をSalesforce CRMおよびAD DSの双方に対して行う。
先ほど解説した通り、社内AD上のユーザー・アカウントにおけるメール・アドレス属性の値とSalesforce CRM上の統合ID属性の値が一致することでID連携を行うため、それぞれのユーザーの作成と情報の編集を行う。
まず、AD DSで連携対象のユーザーのプロパティを開き、メール・アドレス属性(電子メール属性)をメモしておく。未記入の場合は改めてメール・アドレスを設定する。
次にSalesforce CRM側で、ログイン後に表示される画面で[管理者設定]の[ユーザの管理]−[ユーザ]より[新規ユーザ]メニューを開き、下表のようにユーザーを作成する。
カテゴリ | 項目 | 入力/選択値 | |
---|---|---|---|
一般情報 | 姓 | 「織田」(姓を指定) | |
名 | 「信長」(名前を指定) | ||
別名 | 「織田」 | ||
メール | 「nobunagao@<ドメイン名>」(メール・アドレスを指定) | ||
ユーザ名 | 「nobunagao.sfdc@<ドメイン名>」 ※メール・アドレス形式だが、上の項目のメール・アドレスとは違う値を入力する必要がある(実際にメールが届く必要はない) |
||
ユーザライセンス | [Chatter External]を選択 | ||
プロファイル | [Chatter External User]を選択 | ||
シングルサインオン情報 | 統合 ID | 「nobunagao@<ドメイン名>」 ※AD DSのメール・アドレス属性の値と同じ値を設定する |
|
Salesforce CRMユーザーの作成時の設定項目 姓名などはAD DS側のユーザーに合わせて指定すればよい。 |
ここまでの設定で社内AD DSとSalesforce CRM上にひも付け可能な状態のユーザーが作成できたため、実際にシングル・サインオンの動作を確認することが可能となる。
では、実際に社内のAD FS 2.0で認証を受けてSalesforce CRMへログインするシングル・サインオン動作を確認する。今回は、社外のPCからWebブラウザでSalesforce CRMへアクセスし、AD FSプロキシで社内のAD DSのユーザー名とパスワードを入力して認証を受ける形での動作確認を実施した。
なお、Salesforce CRMはGoogle Appsなどとは異なり、先にIdP(AD FS 2.0)で認証を受けてからサービス(Salesforce CRM)へアクセスすることでシングル・サインオンを実現する。そのため、最初にAD FS 2.0のIdP Initiated Sign Onのページへアクセスし、ログインするサービスを選択した上で認証を受ける必要がある。
https://<AD FS 2.0サーバのアドレス>/adfs/ls/IdpInitiatedSignOn.aspx
なお、エンドユーザーに展開する際は毎回このサービスの選択をさせるのは不便なので、サービスを特定するLoginToRpパラメータをあらかじめ付加したURLを利用することも可能である。
https://<AD FS 2.0サーバのアドレス>/adfs/ls/IdpInitiatedSignOn.aspx?LoginToRp=salesforce
今回は社外PCからAD FSプロキシを経由したアクセスなので、Windows統合認証ではなくフォーム認証を行う。
認証が正常に完了すると自動的にSalesforce CRMへリダイレクトされ、ログインも行われる。
今回は、社内ADとSalesforce CRMへのシングル・サインオンを行うための設定と実際の動作について解説した。次回は、Salesforce CRM上に動的にユーザーを作成するジャスト・イン・タイム・プロビジョニングの設定とその動作確認、そしてSalesforce CRM/Force.comのIDプロバイダ/認証プロバイダ機能について解説する。
■更新履歴
【2013/04/17】公開当初、AD FS 2.0のIdP Initiated Sign OnのページURLを「https://<AD FS 2.0サーバのアドレス>/adfs/ls/IdpInitiated.aspx〜」と記していましたが、正しくは「https://<AD FS 2.0サーバのアドレス>/adfs/ls/IdpInitiatedSignOn.aspx〜」でした。お詫びして訂正いたします。
Copyright© Digital Advantage Corp. All Rights Reserved.