セキュリティと API
ユーザプロファイルおよび権限セット構成
組織の Salesforce システム管理者は、プロファイルおよび権限セットを設定し、ユーザをそれらに割り当てることによって、ユーザが使用できる機能やビューを制御します。API にアクセスし、コールを発行してコール結果を受信するには、ユーザに「API 対応」権限が与えられている必要があります。クライアントアプリケーションは、ログインユーザの権限を介してアクセス権限を付与されるこれらのオブジェクトおよび項目のみを照会したり更新したりできます。
プロファイルを作成、編集、または削除するには、[設定] から、[クイック検索] ボックスに「プロファイル」と入力し、[プロファイル] を選択します。権限セットを作成、編集、または削除するには、[設定] から、[クイック検索] ボックスに「権限セット」と入力し、[権限セット] を選択します。
セキュリティトークン
- Salesforce は、ユーザのプロファイルにログイン時間の制限が設定されているかどうかを確認します。ユーザのプロファイルにログイン時間の制限が指定されている場合、それ以外の時間にログインを試みようとすると、拒否されます。
- ユーザに「ユーザインターフェースログインの多要素認証」権限がある場合は、Salesforce ログインプロセスで、ユーザ名とパスワード以外の ID 検証方法も用意するようユーザに促します。ユーザのアカウントが Salesforce Authenticator モバイルアプリケーションなどの検証方法にまだ接続されていない場合は、Salesforce では、方法を登録するようユーザに促します。
- ユーザに「API ログインの多要素認証」権限があり、認証アプリケーションがアカウントに接続されている場合、ユーザは認証アプリケーションで生成される確認コード (TOTP) を入力する必要があります。ユーザが標準のセキュリティトークンを使用している場合、Salesforce はエラーを返します。
- Salesforce は次に、ユーザのプロファイルに IP アドレス範囲の制限が定���されているかどうかを確認します。定義されている場合、その IP アドレス範囲外からのログインは拒否されます。[すべての要求でログイン IP アドレスの制限を適用] セッション設定が有効になっている場合、クライアントアプリケーションからの要求も含め、ページ要求ごとに IP アドレス制限が適用されます。
- プロファイルベースの IP アドレス制限が設定されていない場合、Salesforce は、ユーザのログイン元のデバイスが、以前 Salesforce へのアクセスに使用されたかどうかを確認します。
- Salesforce が認識するデバイスやブラウザからユーザがログインしている場合は、ログインが許可されます。
- 信頼できる IP アドレスのリストに含まれる IP アドレスからのログインであれば、ログインは許可されます。
- Salesforce で認識された信頼できる IP アドレス、デバイス、またはブラウザからユーザがログインしていない場合、ログインはブロックされます。
- ユーザインターフェース経由でアクセスする場合、ユーザは、Salesforce Authenticator (バージョン 2 以降) を使用して検証するか、確認コードを入力するように求められます。
- API またはクライアントアプリケーション経由でアクセスする場合、ユーザプロファイルに「API ログインの多要素認証」権限が設定されているときは、認証アプリケーションで生成された TOTP 確認コードをユーザが入力します。
この権限が設定されていない場合、ユーザはログインパスワードの末尾にセキュリティトークンを追加する必要があります。セキュリティトークンは Salesforce から生成されるキーです。たとえば、パスワードが mypassword で、セキュリティトークンが XXXXXXXXXX の場合は、ログイン時に「mypasswordXXXXXXXXXX」と入力します。また、クライアントアプリケーションによっては、別個にセキュリティトークン用の項目があります。
セキュリティトークンを取得するには、Salesforce ユーザインターフェースを通じてパスワードを変更するか、セキュリティトークンをリセットします。ユーザがパスワードを変更するか、セキュリティトークンをリセットすると、Salesforce がユーザの Salesforce レコードのメールアドレス宛に新しいセキュリティトークンを送信します。セキュリティトークンは、ユーザがセキュリティトークンをリセットするか、パスワードを変更するか、またはパスワードがリセットされるまで有効です。
トークンの詳細は、Salesforce ヘルプの「セキュリティトークンのリセット」を参照してください。
ユーザのパスワードが変更されると、そのユーザのセキュリティトークンは自動的にリセットされます。リセット後にログインするには、ユーザが、生成されたセキュリティトークンをパスワードの末尾に追加する必要があります。または、ユーザの IP アドレスを組織の信頼できる IP アドレスのリストに追加した後で、新しいパスワードを入力します。
- 「API 限定ユーザ」権限のないプロファイルに一時的にユーザを割り当てます。ユーザプロファイルと権限についての詳細は、「ユーザ権限およびアクセス」を参照してください。
- セキュリティトークンを手動でリセットするようにユーザに要求します。
- 「API 限定ユーザ」権限のあるプロファイルにユーザを再割り当てします。
シングルサインオン (SSO) が有効になっており、プロファイルに IP アドレス制限が設定されている場合、API またはデスクトップクライアントにアクセスするユーザは、IP アドレスが組織の信頼できる IP アドレスのリストまたはプロファイルに記載されていない限りログインできません。代理認証機関は通常、「シングルサインオンを使用する」権限を持つユーザのログインロックアウトポリシーを処理します。ただし、セキュリティトークンを使用できる場合は、ログインロックアウト設定によって、ロックアウトされるまでの無効なセキュリティトークンを使ってログイン試行できる回数が規定されます。詳細は、Salesforce ヘルプの「ログイン制限の設定」と「パスワードポリシーの設定」を参照してください。
共有
共有とは、あるユーザやグループに対する参照、更新のアクセス権限がデフォルトのアクセスレベルによって付与されていない場合に、他のユーザが、所有するレコードを読み書きできる該当のアクセス権限を付与するアクティビティのことを指します。すべての API コールは共有モデルの影響を受けます。
次の表は、アクセスレベルの種類について説明しています。
| API 値 | Salesforce ユーザインターフェースの表示ラベル | API 選択リストの表示ラベル | 説明 |
|---|---|---|---|
| 非公開 | 非公開 | レコードの所有者と階層内でそのロールの上位にある User のみが、レコードの参照と編集を実行できます。 | |
| 参照のみ | 参照のみ | すべての User および Group はレコードを参照できますが、編集はできません。レコードの所有者と階層内でそのロールの上位にあるユーザのみが、そのレコードを編集できます。 | |
| 参照/更新 | 参照/更新 | すべての User および Group はレコードの参照と編集ができます。 | |
| 参照/更新/所有権の移行 | 参照/更新/所有権の移行 | すべての User および Group はレコードの参照、編集、削除、移行ができます。(組織の共有設定では、ケースとリードにのみ使用できます)。 | |
| フルアクセス | 所有者 | すべての User および Group はレコードの参照、編集、移行、削除、共有ができます。(組織の共有設定では、キャンペーンにのみ使用できます)。 | |
| 親レコードに連動 | 親レコードに連動 | (取引先責任者のみ)。すべての User および Group は、参照、編集、削除などの操作を取引先責任者に対して実行できます。この操作ができるかどうかは、ユーザがその取引先責任者に関連付けられているレコードに対して同様の操作ができるかどうかに基づいています。 |
すべてのアクセスレベルを、すべてのオブジェクトに設定できるわけではありません。各オブジェクトの項目表を参照して、設定できるアクセスレベル、該当するオブジェクトに固有の共有についての詳細を確認してください。
一般的な共有についての詳細は、Salesforce ヘルプを参照してください。
オブジェクトおよび項目の暗黙的な制限
特定のオブジェクトは、Salesforce ユーザインターフェースでのみ作成または削除できます。その他のオブジェクトは参照のみです。クライアントアプリケーションは、こうしたオブジェクトに create()、delete()、または update() を実行できません。同様に、一部のオブジェクト内の特定の項目は、create() には指定できますが、update() には指定できません。その他の項目は参照のみです。クライアントアプリケーションは、create() コールまたは update() コールで項目値を指定できません。詳細は、「オブジェクトの基本」の各オブジェクトの説明を参照してください。
Salesforce AppExchange パッケージの API アクセス
- 開発者が API にアクセスするコンポーネントを含む AppExchange パッケージを作成する場合、開発者はこれらのコンポーネントの API アクセスを制限することができます。
- 管理者が AppExchange パッケージをインストールする場合、管理者はアクセスを受け入れることも拒否することもできます。アクセスを拒否すると、インストールがキャンセルされます。
- 管理者がパッケージをインストールすると、管理者は API にアクセスするパッケージのコンポーネントの API アクセスを制限することができます。
パッケージの API アクセスの編集は、Salesforce ユーザインターフェースで実行します。詳細は��Salesforce ヘルプの「パッケージの API アクセスおよびダイナミック Apex アクセスの管理」を参照してください。
パッケージの API アクセスは、パッケージ内のコンポーネントから発生する API 要求に影響を与えます。API 要求がアクセスできるオブジェクトを指定します。パッケージの API アクセスが定義されていない場合、API 要求がアクセス権限を割り当てられているオブジェクトは、ユーザの権限によって決まります。
パッケージの API アクセスでは、ユーザに付与された権限を超える操作は実行できません。パッケージの API アクセスでは、ユーザの権限で実行可能な内容を限定していくことしかできません。
パッケージの [API アクセス] の設定で [制限あり] を選択した場合に影響を受ける項目は、次のとおりです。
- パッケージの API アクセスは、次のユーザ権限を上書きします。
- Apex 開発
- アプリケーションのカスタマイズ
- HTML テンプレートの編集
- 参照のみ項目の編集
- 請求情報の管理
- コールセンターの管理
- カテゴリの管理
- カスタムレポートタイプの管理
- ダッシュボードの管理
- レターヘッドの管理
- パッケージライセンスの管理
- 公開ドキュメントの管理
- 公開リストビューの管理
- 公開レポートの管理
- 公開テンプレートの管理
- ユーザの管理
- 所有権の移行
- チーム再割り当てウィザードの使用
- 設定・定義を参照する
- ウィークリーデータのエクスポート
- [参照]、[作成]、[編集]、および [削除] アクセスがオブジェクトの API アクセス設定で選択されていない場合、たとえ「すべてのデータの編集」権限および「すべてのデータの参照」権限を持つユーザであっても、パッケージコンポーネントのオブジェクトへのアクセス権はありません。
- Restricted API アクセスが有効になっているパッケージでは、新規ユーザを作成できません。
- Salesforce は、アクセスが [制限あり] になっている AppExchange パッケージからの Web サービスへのアクセスと executeanonymous 要求を拒否します。
- ワークフロールールと Apex トリガは、パッケージの API アクセスに関係なく起動されます。
- 1 つのコンポーネントが、ある組織内の複数のパッケージに含まれる場合、API アクセスは、そのアクセス設定に関係なく、その組織のすべてのパッケージ内にあるそのコンポーネントについて制限されません。
- 制限のあるアクセスをパッケージに選択した後で、Salesforce が新しい標準オブジェクトを導入すると、デフォルトでは、新しい標準オブジェクトへのアクセスが付与されません。新しい標準オブジェクトを含めるよう、制限のあるアクセス設定を変更する必要があります。
- パッケージをアップグレードするときは、たとえ開発者が指定したものであっても、API アクセスの変更は無視されます。このようにして、アップグレードをインストールするシステム管理者に完全な制御権があることを保証します。インストールするユーザはインストール中の各アップグレードで、パッケージのアクセスの変更を慎重に検討し、すべての受け入れ可能な変更に注意する必要があります。これらの変更は無視されるため、システム管理者は、アップグレードをインストールした後で、受け入れ可能な変更を手動で適用する必要があります。
- Sコントロールは、Salesforce が提供するもので、Salesforce 内にインラインで表示されます。このように緊密に統合されているため、インストール済みのパッケージ内の Sコントロールがその権限をユーザのフルアクセス権にまでエスカレーションする場合があります。パッケージをインストールする組織のセキュリティを保護するため、Sコントロールには、次のような制限があります。
- 開発中の (つまり、AppExchange からインストールしたものではない) パッケージの場合、Sコントロールは、API アクセスがデフォルトの [無制限] になっているパッケージにのみ追加できます。パッケージに Sコントロールを追加すると、[制限あり] の API アクセスを有効にすることはできません。
- インストールしたパッケージについては、パッケージに Sコントロールが含まれる場合でも、アクセス制限を有効にできます。ただし、アクセス制限は、Sコントロールについては限定的な保護しか行いません。Salesforce は、Sコントロールセキュリティのアクセス制限を使用する前に、Sコントロール内の JavaScript を理解することをお勧めします。
- インストール済みパッケージの API アクセスが [制限あり] になっていると、アップグレード済みバージョンに Sコントロールがない場合にのみ、アップグレードが成功します。アップグレードされたバージョンに Sコントロールがある場合は、現在インストール済みのパッケージの API アクセスを [無制限] に変更する必要があります。
パッケージへの API アクセスを管理するには、Salesforce ヘルプの「パッケージの API アクセスおよびダイナミック Apex アクセスの管理」を参照してください。