データの対応付け

学習の目的

このモジュールを完了すると、次のことができるようになります。

  • Salesforce と AD 間でデータを転送する方法を説明する。
  • Salesforce へのアクセスを どの AD ユーザに許可するか判断する方法を説明する。
  • 変換スクリプトの利点を説明する。
  • AD と Salesforce の属性を対応付ける方法を説明する。
  • AD グループを Salesforce の権限に対応付ける方法を説明する。

要はデータの対応付け

Identity Connect では、AD に管理されているユーザから Salesforce ユーザを作成します。

初めて同期する前に、Salesforce に取り込む AD の属性を選択します。Identity Connect のデフォルトの対応付けを受け入れることもできれば、各自のニーズに合わせて調整することもできます。Identity Connect にはツールが用意されており、各自がその使い方を選択します。

対応付けるデータには、ユーザ、属性、権限があります。実行できる操作は、次のとおりです。

  • Identity Connect に、Salesforce ユーザを AD のどこで探すかを指示する。
  • AD からどの属性を取得するかを選択する。Salesforce で管理する属性は削除します。Salesforce ユーザオブジェクトにカスタム属性を追加している場合は、その管理方法を制御できます。
  • 権限を割り当てます。権限の割り当てルールを定義したら、それ以降は権限について考える必要がありません。素晴らしいですよね。

準備が大変そうと思うかもしれませんが、準備作業を事前調査のようなものと考えてみてください。計画には努力を要しますが、スムーズな業務に向けた道筋が整います。

そしてデータの同期

Identity Connect で Salesforce ユーザを作成するときは、AD のユーザへのリンクが作成されます。

各 Salesforce ユーザは実際のところ、AD に保存されているユーザデータへのリンクです。Identity Connect は実質的に AD の情報を使用して、Salesforce に「仮想」ユーザデータベースを構築します。

Identity Connect は初めて同期するときに、AD の指定した場所にアクセスして、Salesforce ユーザを作成します。それ以降、その指定した場所を監視します。AD の既存のユーザが変更されたり、指定した場所に新しいユーザが追加されたりすると、Identity Connect の次回の同期時に Salesforce が変更を取得します。

Salesforce ユーザの選択

AD から Salesforce ユーザを作成するために、Salesforce に取り込むユーザを選択します。Jedeye には銀河系の各所に従業員がいますが、Salesforce を必要とするのは誰でしょうか?

Identity Connect コンソールの [Data Source (データソース)] タブで、Salesforce ユーザを探す場所を Identity Connect に指示します。

Identity Connect の [Data Source (データソース)] タブ

ベースコンテキストおよび検索条件

Identity Connect コンソールで、「検索の開始地点」を意味するベースコンテキストを設定します。次に、範囲を絞り込む検索条件を設定します。

ベースコンテキスト

AD はツリー構造で編成されています。そのため、ベースコンテキストを使用する場合は、AD のユーザ、グループ、リソース (コンピュータやデバイスなど) が属するブランチへのパスを指定します。このパスは、すべての Salesforce ユーザおよびグループを包含する広範なものにする必要があります。

初心者にとって、ベースコンテキストの構文は直観的ではありません。Identity Connect に AD ツリー全体を検索させたい場合は、ベースコンテキストをドメインの名前 (DC=domainprefix,DC=domainsuffix 形式) に設定します。jedeye.tech ドメインのベースコンテキストは dc=jedeye,dc=tech になります。

ドメインの下位を検索する場合は、ベースドメインをドメイン内の組織単位 (OU) の名前に設定します。たとえば、Jedeye Tech の営業組織を検索するには、ベースコンテキストを ou=sales,dc=jedeye,dc=tech とします。

[Data Source (データソース)] タブで、Identity Connect が directory.salesforceidentity.info ドメインの stddemo 組織を検索します。

ユーザおよびグループの検索条件

Salesforce ユーザおよびグループを検索するためにアクセスする場所を Identity Connect に指示しました。ここでは、検索条件を使用して範囲を絞り込みます。

[User Filter (ユーザ条件)] で、Salesforce と同期させるユーザを指定します。たとえば、すべてのユーザを選ぶことも、AD の特定のグループに属するユーザに限定することもできます。次の例では、AD のリソースからコンピュータが除外されます。
(!objectClass=Computer))

[Group Filter (グループ条件)] で、対応付けおよび変更の監視の対象となる AD グループを制限します。

検索条件の作成を好む人々に役立つヒントをご紹介します。検索条件に LDAP 正規表現 (regex) も入力します。つまり、すべての Salesforce グループが標準の命名規則に従っている場合は、regex を使用して適切なユーザやグループを動的に含めることができます。

ユーザ属性の選択

AD と Salesforce は同じユーザ属性をいくつか共有していますが、同じ名前は使用していません。そのため、AD の属性に対応する Salesforce 属性を指定します。これが属性の対応付けです。

以下は、[Mapping (対応付け)] にある標準の [Attributes (属性)] タブを示しています。ややこしそうに見えるかもしれませんが大丈夫です。列ごとに説明していきます。

Identity Connect の [Attributes (属性)] タブ

[Salesforce] 列および [Active Directory] 列 

[Salesforce] 列と [Active Directory] 列を見てみましょう。Identity Connect には、名前や住所など一般的な属性の対応付けが標準搭載されています。Identity Connect で同期を行うと、Salesforce ユーザが現在 AD にある値を取得します。

[Salesforce] 列の「Country」が、[Active Directory] 列の AD の「c」属性に対応付けられていることがわかります。Identity Connect が初めて同期を行うときに、AD ユーザがカナダに居住していれば、Salesforce ユーザも居住地がカナダになります。このユーザがオーストラリアに転居すると、同ユーザの AD の「c」属性がオーストラリアに更新されます。Identity Connect が次回同期するときに、この Salesforce ユーザの居住地がオーストラリアに変更されます。

Country 属性の対応付け

ある属性を AD の属性と同期させたくない場合は、属性の横にある [属性の削除] アイコン をクリックして削除します。属性を対応付けから削除すると、Identity Connect が同期時に Salesforce の値を置換しなくなります。

[Attributes (属性)] タブから属性を削除

カスタム属性がある場合はどうでしょうか? デフォルトでカスタム属性は表示されません。けれども、Identity Connect に Salesforce 組織からカスタム属性を取得させることができます。[Add Attribute (属性を追加)] をクリックすると、[Salesforce] 列にカスタム属性が表示されます。

[Add Attribute (属性を追加)] ボタン

[Default (デフォルト)] 列

[Default (デフォルト)] 列は、ユーザの対応する AD 属性が空の場合に、Salesforce 属性を自動入力するためのものです。たとえば、AD のユーザには EmailEncodingKey 属性がない場合、Identity Connect は Salesforce の [EmailEncodingKey] 属性を「UTF-8」として [Default (デフォルト)] 列に自動入力します。

[Default (デフォルト)] 列

対応付けのすごさを実感し始めたのではないでしょうか? 2 つのデータストア間の属性を対応付けるだけで、大きく前進することができます。

[Transform Script (変換スクリプト)] 列

では、[Transform Script (変換スクリプト)] 列を見てみましょう。この列では、AD 属性を変換して Salesforce の値を作成するためのちょっとしたプログラミングロジックを追加できます。変換スクリプトは省略可能ですが、次の例から極めて便利な場合があることがわかります。

ここではご覧のとおり、Salesforce の [Username] 属性が AD の [sAMAccountName] 属性に対応付けられています。

[Username] 属性

Salesforce の別名は、ユーザ名の最初の 8 文字です。[Alias] の行に、AD の sAMAccountName 属性の最初の 8 文字を自動入力する簡単な JavaScript スクリプトを追加します。この場合は、source が AD の sAMAccountName 属性を参照します。
source.substring(0,8);

AD の sAMAccountName 値は demoadmin であるため、Salesforce の別名は demoadmi になります。

[Alias] 属性

JavaScript に慣れている場合は、大胆な魔法を起こす変換スクリプトを作成できます。

Salesforce の権限の割り当て

AD では、AD グループを使用してユーザに権限が付与されます。Salesforce では、プロファイル、権限セット、ロール、公開グループを使用します。Identity Connect を使用すると、AD の権限を Salesforce の権限に対応付けることができます。

ユーザが AD グループに追加または削除されると、Salesforce の対応付けられたプロファイル、権限セット、ロール、公開グループに自動的に追加または削除されます。

AD から Salesforce の権限を割り当てるには、Salesforce の権限に対応する AD グループを選択します。

プロファイルの対応付け

Identity Connect コンソールで、プロファイルの対応付けのタブを選択します。[Salesforce] 列に、組織で定義されているすべてのプロファイルがリストされます。プロファイルごとに、AD の 1 つ以上のグループに関連付けることができます。この例では、Identity Connect システム管理者からなる AD グループ「IC Admins」は、Salesforce システム管理者プロファイルを取得します。Identity Connect ユーザからなる AD グループ「IC Users」は、Salesforce 標準ユーザプロファイルを取得します。

プロファイルの対応付け

プロファイルの対応付けで重要なことは、すべてのユーザにデフォルトの Salesforce プロファイルが設定されるようにすることです。ご存知のとおり、Salesforce ユーザには、ごく基本的なデータアクセスを指定するためのプロファイルが必要です。そのため、ユーザがここにリストされているどの AD グループにも属していない場合は、デフォルトプロファイルを指定します。こうすれば、すべてのユーザにプロファイルが設定されます。

ロールの対応付け

コンソールのロールのタブから、Salesforce のロールに対応付ける AD グループを選択します。たとえば、Salesforce の「役員」というロールを、「エグゼクティブ」という AD グループに対応付けます。

Identity コンソールのロールのタブ

権限セット

Identity Connect コンソールの権限セットのタブには、Salesforce 組織で定義した権限セットが表示されます。Salesforce の権限セットに対応付ける AD グループを選択します。

権限セット

Salesforce グループから AD グループへの対応付け

[SF Group to AD Group (Salesforce グループから AD グループ)] タブでは、すべての Salesforce グループを AD グループに対応付けることができます。たとえば、Salesforce の「従業員」というグループを AD の「従業員」グループに対応付けます。[SF Group to AD Group (Salesforce グループから AD グループ)] をクリックすると、Salesforce で作成したすべてのグループがリストされます。Salesforce グループを 1 つ以上の AD グループに関連付けます。

[SF Group to AD Group (Salesforce グループから AD グループ)] が表示されなくても心配いりません。このタブは、プロファイルの対応付けを少なくとも 1 つ作成した後に表示されます。

対象を絞った権限セットの使用によるプロファイル数の軽減

プロファイルに工夫を凝らして数を増やさないようにするには、権限セットを使用します。権限セットを使用すると、ユーザの主な職務に関係なく、論理グループ別にアクセス権を付与できます。たとえば、「営業ユーザ」というプロファイルが設定されたユーザが何人かいるとします。このプロファイルが割り当てられているユーザは、リードを参照、作成、編集できます。ですが、このうち数人だけはリードを削除および移行することができます。

この場合の対応付けについて説明します。AD に「営業」というグループと、「営業マネージャ」という別のグループがあるとします。この 2 つのグループは一連の基本的な権限が同じであるため、どちらのグループにも Salesforce の「営業ユーザ」プロファイルを割り当てます。このプロファイルが割り当てられているユーザは、リードを参照、作成、編集できます。次に、AD の「営業マネージャ」グループには、リードを管理する追加権限があるリードマネージャ向けの権限セットを作成します。

メモ

メモ

エンタイトルメントを適切に対応付けるために、AD システム管理者に協力してもらい、AD グループをはじめとする AD のディレクトリ構造を理解してください。

ユーザの選択

属性や権限の対応付けだけでなく、Salesforce ユーザを AD ユーザに対応付けるルールを定義できます。

[Sync (同期)] タブから、AD ユーザを Salesforce ユーザに結び付けるルールを定義します。次に、ユーザを手動で対応付けます。なぜなら、すでに Salesforce ユーザが多数いる場合には、この方法で各 Salesforce ユーザをその既存の AD ユーザに結び付けることができます。

ユーザ関連付けタブ

もう 1 つの方法は、AD グループを作成して、Identity Connect に Salesforce ユーザを探す場所を指示することです。AD で、「このグループに属する AD ユーザのみから Salesforce ユーザを作成する」というルールを使用して「Salesforce ユーザ」グループを作成できます。

Identity Connect の設定において、対応付けのプロセスは特に時間のかかるものですが、その努力は最大限に報われます。最初に時間をかけておけば、長期的な見返りがあります。