Salesforce
概要
| サービス概要 | |
|---|---|
| APIドキュメント | SCIM を使用した Salesforce ユーザー ID の管理 |
SCIMを使用して、Salesforceのユーザーをプロビジョニングして管理できる機能を提供します。
対応するのは以下の機能です。
- アカウントの作成・削除
- 割当の付与・剥奪
- グループ(Regular)
- 権限 (Profile)
- 権限 (Permission Set)
- ロール
業務アセットの作成
以下の情報が必要になります。
- ネームスペース
- クライアントID
- クライアントシークレット
- リフレッシュトークン
ネームスペース
- URLの一部になります。
- 以下のURLの場合は、 になります。
クライアントID・クライアントシークレット
- ホーム画面の右上にある歯車アイコンから設定画面に遷移する
- 検索欄にアプリケーションと入力して、アプリケーションマネージャーに遷移する
- 右上の新規接続アプリケーションを選択する
- 接続アプリケーションを作成を選択する
- 任意で以下の項目を設定する
- 接続アプリケーション名
- API 参照名
- 取引先責任者 メール
- OAuth 設定の有効化にチェックを入れる
- Web サーバーフローの秘密が必要にチェックが入っているかを確認する(デフォルトで入っている想定)
- OAuth 設定で以下の項目を設定する
- コールバック URL
- 選択した OAuth 範囲
- API を使用してユーザーデータを管理 (api)
- いつでも要求を実行 (refresh_token, offline_access)
- サポートされる認証フローに Proof Key for Code Exchange (PKCE) 拡張を要求
- 更新トークンフローの秘密が必要
以下の項目はデフォルトでチェックが入っているが、必須ではない。
- 保存ボタンを押してアプリケーションを作成する
- アプリケーションマネージャー画面で作成したアプリケーションで参照を選択する
- コンシューマーの詳細を管理を選択する
- 確認コードが求められるので受信した確認コードを入力する
- コンシューマー鍵がクライアントID、コンシューマーの秘密がクライアントシークレットになる
コンシューマーの詳細を管理に遷移できなくなった場合
コンシューマーの詳細を管理に何度も行って、確認コードの送信を頻繁に行うとロックがかかることがあります。その際は1時間ほど待つとロックが解除されます。
- 参考:確認コードを受信できない
認証用URL
Salesforceの認可サーバー(認証エンドポイント)を変更する場合に使用します。
通常は本番環境(login.salesforce.com)が使用されますが、Sandbox環境などを利用する場合にはこのフィールドに切り替え先の認証用URLを入力してください。
※カスタムドメインには対応していません。
- 認可サーバを変更する場合(例:sandbox環境)接続画面を開き、「認証URL」フィールドに test.salesforce.com を入力してください。
その他のフィールドについては、通常どおり入力を進めてください。

リフレッシュトークン
- 以下のURLをブラウザで実行する
- client_id:クライアントID
- redirect_uri:コールバック URL
- アクセスの許可の許可をすると、codeが発行される


発行されたcodeの有効期限は15分になりますので、期限切れになったらcodeを発行し直してください。
参考:‣
- ターミナルで以下を実行すると、レスポンスにrefresh_token(リフレッシュトークン)が含まれている
- code:上記で取得したcode
- client_id:クライアントID
- client_secret:クライアントシークレット
- redirect_uri:コールバック URL
同期する項目
カスタム項目の同期方法
- Salesforce 組織ID(18桁)の取得
- Salesforce の管理画面より
- 組織IDが15桁の場合、以下の変換ツールで18桁形式に変換し、控えてください:
[組織プロファイル → 組織情報] にアクセスし、組織IDを確認・控えてください。
※ 画像:組織IDはURLにも表示されます(例:黄色枠線で表示)。

- 同期対象のカスタム項目名(API参照名)の取得
- Salesforce のサイドバーから、
- 「ユーザ項目」画面を開き、画面下部の「ユーザカスタム項目」セクションまでスクロールします。
- 同期対象のカスタム項目を確認し、「API参照名」 の値を控えてください。
[ビルド → カスタマイズ → ユーザ → 項目] を選択します。
- YESOD 側での URN の指定
カスタム項目を SCIM 経由で同期する際は、API参照名の前に以下の形式の URN を付与してください:
例:
参考画像

割当種別
グループ(Queue)
「ユーザーの管理」→「キュー」ページで設定できる項目です。キューはリードやケースを一時的に保管しておく待ち行列として利用するものです。
割当からキューへのアクセス権限を割り当てることができます。
グループ(Queue)動的な割当種別です
- グループ(Queue)はSalesforce側にキューが存在する時のみ割当種別として取り込みができます
- Salesforceの管理画面でキューが存在する状態で業務アセットを接続するか、同期をすることで割当種別として取り込まれます
- Salesforceのデフォルトではキューは存在しません
- 一度取り込んだ後、Salesforce側でキューを削除して同期をしなおすと割当種別からも削除されます
グループ(Queue)の割当種別が削除されるとタスク実行ログの内容も表示されなくなります
- Salesforce側にキューがない状態で接続、同期を行うとグループ(Queue)が割当から削除されます
- 削除されるとタスク実行ログにも表示されなくなります
- 削除後に改めてキューを作成して割当の取り込みを行ったとしても別物扱いとなるため、過去のタスク実行ログは表示されません

権限 (Profile)
ユーザーの編集画面の「ユーザーライセンス」「プロファイル」を指定できます。
ユーザーライセンスごとに選択できるプロファイルが決まっています。
( = プロファイルを1つ選ぶとそれに対応するユーザーライセンスが1つ自動で決まる)
- アカウント作成時は一番優先度が低い割当が設定されます。
- Salesforceの仕様上、選択されているユーザーライセンスによってはプロファイルを設定しない(プロファイルなし)という選択が可能ですが、現状YESODを通じてプロファイルを設定しないようにすることはできません。必ずいずれかのプロファイルを指定する必要があります。 (プロファイルなしの設定ができるようにしたい場合は開発にご相談ください)

権限セット
「ユーザーの管理」→ 「権限セット」ページで設定できる項目です。
Salesforceの各種機能のアクセス権をまとめて管理し、割り当てたユーザーにその権限セットで管理している権限をまとめて付与します。(ユーザーのプロファイルを変更することなくユーザーの機能アクセス権を拡張するもの)
APIの仕様上、一度いずれかの項目を付与すると、すべての権限セットを完全に剥奪することができなくなります。
- 2つ以上付与されている場合、1つまで減らすことは可能です。
- 1つだけ付与されている状態でその権限セットを剥奪することはできません。
- 最後の権限セットを剥奪したい場合、タスクをスキップしてSalesforceの管理画面から剥奪操作を行なってください。
- アカウントの削除タスクと権限セットの剥奪タスクをまとめて一括実行した場合、剥奪のタスクは実行せずに完了状態に変更します。(削除タスクのみが実際に実行される)
- 最後の1件の時には以下のようなエラーが表示されます。

- 割り当てたライセンスによって付与できる権限セットが異なります。 ライセンスで対応していない権限セットを割り当てようするとエラーが発生します。

付与されていないといけないライセンスは権限セットの詳細画面で確認できます。


ロール
ユーザーの編集画面の「ロール」を指定できます。

アカウントの作成
Salesforceに同一のログイン名のアカウントが存在するかに応じて以下のような挙動になります。
| 同一のユーザー名で アカウントが停止している アカウントがSalesforceに存在する | そのアカウントを有効にして情報を更新する |
|---|---|
| 同一のユーザー名で アカウントが有効になっている アカウントがSalesforceに存在する | そのアカウントの情報を更新する |
| 同一のユーザー名で アカウントがSalesforceに存在しない | アカウントを新規作成する |
アカウントの削除
Salesforceのアカウントの使用状態を無効に設定します(ユーザーの完全削除ではありません)
同期する項目
SalesforceはSCIM準拠になります。以下にある項目が同期可能です。
