データの対応付け
学習の目的
このモジュールを完了すると、次のことができるようになります。
- 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 コンソールで、「検索の開始地点」を意味するベースコンテキストを設定します。次に、範囲を絞り込む検索条件を設定します。
ベースコンテキスト
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 に指示しました。ここでは、検索条件を使用して範囲を絞り込みます。
(!objectClass=Computer))
[Group Filter (グループ条件)] で、対応付けおよび変更の監視の対象となる AD グループを制限します。
検索条件の作成を好む人々に役立つヒントをご紹介します。検索条件に LDAP 正規表現 (regex) も入力します。つまり、すべての Salesforce グループが標準の命名規則に従っている場合は、regex を使用して適切なユーザーやグループを動的に含めることができます。
ユーザー属性の選択
AD と Salesforce は同じユーザー属性をいくつか共有していますが、同じ名前は使用していません。そのため、AD の属性に対応する Salesforce 属性を指定します。これが属性の対応付けです。
以下は、[Mapping (対応付け)] にある標準の [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 ユーザーの居住地がオーストラリアに変更されます。
ある属性を AD の属性と同期させたくない場合は、属性の横にある をクリックして削除します。属性を対応付けから削除すると、Identity Connect が同期時に Salesforce の値を置換しなくなります。
カスタム属性がある場合はどうでしょうか? デフォルトでカスタム属性は表示されません。けれども、Identity Connect に Salesforce 組織からカスタム属性を取得させることができます。[Add Attribute (属性を追加)] をクリックすると、[Salesforce] 列にカスタム属性が表示されます。
[Default (デフォルト)] 列
[Default (デフォルト)] 列は、ユーザーの対応する AD 属性が空の場合に、Salesforce 属性を自動入力するためのものです。たとえば、AD のユーザーには EmailEncodingKey 属性がない場合、Identity Connect は Salesforce の [EmailEncodingKey] 属性を「UTF-8」として [Default (デフォルト)] 列に自動入力します。
対応付けのすごさを実感し始めたのではないでしょうか? 2 つのデータストア間の属性を対応付けるだけで、大きく前進することができます。
[Transform Script (変換スクリプト)] 列
では、[Transform Script (変換スクリプト)] 列を見てみましょう。この列では、AD 属性を変換して Salesforce の値を作成するためのちょっとしたプログラミングロジックを追加できます。変換スクリプトは省略可能ですが、次の例から極めて便利な場合があることがわかります。
ここではご覧のとおり、Salesforce の [Username] 属性が AD の [sAMAccountName] 属性に対応付けられています。
source.substring(0,8);
AD の sAMAccountName 値は demoadmin であるため、Salesforce の別名は demoadmi になります。
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 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 の「営業マネージャー」グループには、リードを管理する追加権限があるリードマネージャー向けの権限セットを作成します。
ユーザーの選択
属性や権限の対応付けだけでなく、Salesforce ユーザーを AD ユーザーに対応付けるルールを定義できます。
[Sync (同期)] タブから、AD ユーザーを Salesforce ユーザーに結び付けるルールを定義します。次に、ユーザーを手動で対応付けます。なぜなら、すでに Salesforce ユーザーが多数いる場合には、この方法で各 Salesforce ユーザーをその既存の AD ユーザーに結び付けることができます。
もう 1 つの方法は、AD グループを作成して、Identity Connect に Salesforce ユーザーを探す場所を指示することです。AD で、「このグループに属する AD ユーザーのみから Salesforce ユーザーを作成する」というルールを使用して「Salesforce ユーザー」グループを作成できます。
Identity Connect の設定において、対応付けのプロセスは特に時間のかかるものですが、その努力は最大限に報われます。最初に時間をかけておけば、長期的な見返りがあります。