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