この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

セキュリティと API

組織の Salesforce データにアクセスするクライアントアプリケーションは、Salesforce ユーザインターフェースで使用されるものと同じセキュリティ保護を受けます。API を使用して Salesforce にアクセスするコンポーネントが含まれている Force.com AppExchange 管理パッケージをインストールした組織は、追加の保護を使用できます。

ユーザ認証

クライアントアプリケーションは、組織の有効な資格情報を使用してログインする必要があります。サーバは、これらの資格情報を認証し、有効な場合は、クライアントアプリケーションに次の情報を提供します。

  • Web サービスに対するすべての後続コールが認証されるよう、セッションヘッダーに設定する必要がある sessionId
  • クライアントアプリケーションの Web サービス要求の URL アドレス (serverUrl)

Salesforce は、Transport Layer Security (TLS) プロトコルおよび frontdoor.jsp のみをサポートします。暗号鍵の長さは、128 ビット以上でなければなりません。

ユーザプロファイルおよび権限セット構成

組織の Salesforce 管理者は、プロファイルおよび権限セットを設定し、ユーザをそれらに割り当てることによって、さまざまな機能やビューの使用を制御します。API にアクセスするには (コールを発行してコール結果を受信するには)、ユーザに「API 対応」権限が割り当てられている必要があります。クライアントアプリケーションは、ログインユーザの権限を介してアクセス権限を付与されるこれらのオブジェクトおよび項目のみをクエリしたり更新したりできます。

プロファイルを作成、編集、または削除するには、Salesforce ユーザインターフェースで、[設定] から、[クイック検索] ボックスに「プロファイル」と入力し、[プロファイル] を選択します。権限セットを作成、編集、または削除するには、[設定] から、[クイック検索] ボックスに「権限セット」と入力し、[権限セット] を選択します。

Web サービス WSDL ファイルは、組織の利用可能なすべてのオブジェクトおよび項目を返します。

メモ

セキュリティトークン

ユーザがユーザインターフェース、API、または Salesforce for Outlook、Connect Offline、Connect for Office、データローダなどのデスクトップクライアントを使用して Salesforce にログインした場合は、Salesforce がそのログインが正当かどうかを次の方法で確認します。
  1. ユーザのプロファイルにログイン時間帯の制限が設定されているかどうかを確認します。ユーザのプロファイルにログイン時間帯の制限が設定されている場合、指定された時間帯以外のログインは拒否されます。
  2. ユーザに「ユーザインターフェースログインの 2 要素認証」権限がある場合は、ログイン時に Salesforce が 2 つ目の認証を行うようユーザに求めます。ユーザのアカウントが Salesforce Authenticator などのモバイル認証アプリケーションにまだ接続されていない場合は、Salesforce がユーザにまずアプリケーションに接続するよう求めます。
  3. ユーザに「API ログインの 2 要素認証」権限があり、認証アプリケーションをアカウントに接続済みの場合は、ユーザが標準のセキュリティトークンを使用すると、Salesforce がエラーを返します。ユーザは、標準のセキュリティトークンではなく、認証アプリケーションで生成された確認コード (時間ベースのワンタイムパスワード) を入力する必要があります。
  4. Salesforce は次に、ユーザのプロファイルに IP アドレスの制限が設定されているかどうかを確認します。ユーザのプロファイルに IP アドレスの制限が設定されている場合、指定された IP アドレス以外の IP アドレスからのログインは拒否されます。[すべての要求でログイン IP アドレスの制限を適用] セッション設定が有効になっている場合、クライアントアプリケーションからの要求も含め、ページ要求ごとに IP アドレス制限が適用されます。
  5. プロファイルベースの IP アドレス制限が設定されていない場合は、過去に Salesforce へのアクセスに使用されたデバイスからユーザがログインしているかどうかを確認します。
    • Salesforce が認識するデバイスやブラウザからユーザがログインしている場合は、ログインが許可されます。
    • 信頼できる IP アドレスのリストに含まれる IP アドレスからのログインであれば、ログインは許可されます。
    • 信頼できる IP アドレスからのログインでも、Salesforce が認識するデバイスやブラウザからのログインでもない場合は、ログインがブロックされます。
ログインがブロックされるか、API ログインの失敗エラーが返された場合は、Salesforce がユーザの ID を検証する必要があります。
  • ユーザインターフェースを使用してアクセスする場合は、Salesforce Authenticator (バージョン 2 以降) を使用して検証するか、確認コードを入力するようユーザに求められます。

    ユーザが Salesforce に初めてログインするときは、確認コードを要求されません。

    メモ

  • API またはクライアントを使用してアクセスする場合は、ユーザがログインパスワードの末尾にセキュリティトークンを追加する必要があります。また、ユーザプロファイルに「API ログインの 2 要素認証」が設定されている場合は、ユーザが認証アプリケーションで生成された確認コードを入力します。

    セキュリティトークンは Salesforce から自動生成されるキーです。たとえば、パスワードが mypassword で、セキュリティトークンが XXXXXXXXXX の場合は、ログイン時に「mypasswordXXXXXXXXXX」と入力する必要があります。また、クライアントアプリケーションによっては、別個にセキュリティトークン用の項目があります。

    セキュリティトークンを取得するには、Salesforce ユーザインターフェースを通じてパスワードを変更するか、セキュリティトークンをリセットします。ユーザがパスワードを変更するか、セキュリティトークンをリセットすると、Salesforce がユーザの Salesforce レコードのメールアドレス宛に新しいセキュリティトークンを送信します。セキュリティトークンは、ユーザがセキュリティトークンをリセットするか、パスワードを変更するか、またはパスワードがリセットされるまで有効です。

    新しい IP アドレスから Salesforce にアクセスする前に、[私のセキュリティトークンのリセット] を使用して信頼できるネットワークからセキュリティトークンを取得しておくことをお勧めします。

    ヒント

トークンの詳細は、Salesforce オンラインヘルプの「セキュリティトークンのリセット」を参照してください。

ユーザのパスワードが変更されると、そのユーザのセキュリティトークンは自動的にリセットされます。ユーザが自動生成されたセキュリティトークンをパスワードの末尾に追加するまで、または管理者が IP アドレスを信頼できる IP アドレスのリストに追加した後で新しいパスワードを入力するまで、ログインがブロックされます。

組織でシングルサインオン (SSO) が有効になっており、プロファイルに IP アドレス制限が設定されている場合、API またはデスクトップクライアントにアクセスするユーザは、IP アドレスが信頼できる IP アドレスのリストまたはプロファイルに記載されていない限り、Salesforce にアクセスすることはできません。また、委任された認証権限は通常、「シングルサインオンを使用する」権限を持つユーザのログインロックアウトポリシーを処理します。組織でセキュリティトークンを使用できる場合は、組織のログインロックアウト設定によって、Salesforce からロックアウトされるまで無効なセキュリティトークンを使ってログイン試行できる回数が規定されます。詳細は、オンラインヘルプの「ログイン制限の設定」と「パスワードポリシーの設定」を参照してください。

共有

Salesforce ユーザインターフェースでは、共有とは、あるユーザやグループに対する参照、更新のアクセス権限が組織のデフォルトのアクセスレベルによって付与されていない場合に、他のユーザが所有するレコードを読み書きできる該当のアクセス権限を付与するアクティビティのことを指します。すべての API コールは共有モデルの影響を受けます。

次の表は、アクセスレベルの種類について説明しています。

API 値 Salesforce ユーザインターフェースの表示ラベル API 選択リストの表示ラベル 説明
None 非公開 非公開 レコードの所有者と階層内でそのロールの上位にある User のみが、レコードの参照と編集を実行できます。
Read 参照のみ 参照のみ すべての User および Group はレコードを参照できますが、編集はできません。レコードの所有者と階層内でそのロールの上位にあるユーザのみが、そのレコードを編集できます。
Edit 参照/更新 参照/更新 すべての User および Group はレコードの参照と編集ができます。
ReadEditTransfer 参照/更新/所有権の移行 参照/更新/所有権の移行 すべての User および Group はレコードの参照、編集、削除、移行ができます。(組織の共有設定では、ケースとリードにのみ使用できます)。
All フルアクセス 所有者 すべての User および Group はレコードの参照、編集、移行、削除、共有ができます。(組織の共有設定では、キャンペーンにのみ使用できます)。
ControlledByParent 親レコードに連動 親レコードに連動 (取引先責任者のみ) すべての User および Group は、参照、編集、削除などの操作を取引先責任者に対して実行できます。この操作ができるかどうかは、ユーザがその取引先責任者に関連付けられているレコードに対して同様の操作ができるかどうかに基づいています。

すべてのアクセスレベルを、すべてのオブジェクトに設定できるわけではありません。各オブジェクトの項目表を参照して、設定できるアクセスレベル、該当するオブジェクトに固有の共有についての詳細を確認してください。

一般的な共有についての詳細は、Salesforce オンラインヘルプを参照してください。

API を使用して、レコードの共有エントリを定義する AccountShareOpportunityShare などのオブジェクトを作成および更新できます。

メモ

オブジェクトおよび項目の暗黙的な制限

特定のオブジェクトは、Salesforce ユーザインターフェースでのみ作成または削除できます。その他のオブジェクトは参照のみです。クライアントアプリケーションは、こうしたオブジェクトに create()delete()、または update() を実行できません。同様に、一部のオブジェクト内の特定の項目は、create() には指定できますが、update() には指定できません。その他の項目は参照のみです。クライアントアプリケーションは、create() コールまたは update() コールで項目値を指定できません。詳細は、「オブジェクトの基本」の各オブジェクトの説明を参照してください。

Force.com AppExchange パッケージの API アクセス

API を使用すると、API にログインするユーザの権限に基づいて、オブジェクトやコールにアクセスできます。インストールしたパッケージに API を使用してデータにアクセスするコンポーネントが含まれている場合、セキュリティ問題が発生しないようにするために、次のような追加のセキュリティを設定します。
  • 開発者が API にアクセスするコンポーネントを含む AppExchange パッケージを作成する場合、開発者はこれらのコンポーネントの API アクセスを制限することができます。
  • 管理者が AppExchange パッケージをインストールする場合、管理者はアクセスを受け入れることも拒否することもできます。アクセスを拒否すると、インストールがキャンセルされます。
  • 管理者がパッケージをインストールすると、管理者は API にアクセスするパッケージのコンポーネントの API アクセスを制限することができます。

パッケージの API アクセスの編集は、Salesforce ユーザインターフェースで実行します。詳細は、Salesforce オンラインヘルプの「パッケージの API アクセスおよびダイナミック Apex アクセスの管理」を参照してください。

パッケージの API アクセスは、パッケージ内のコンポーネントから発生する API 要求に影響を与えます。API 要求がアクセスできるオブジェクトを指定します。パッケージの API アクセスが定義されていない場合、API 要求がアクセス権限を割り当てられているオブジェクトは、ユーザの権限によって決まります。

パッケージの API アクセスでは、ユーザに付与された権限を超える操作は実行できません。パッケージの API アクセスでは、ユーザの権限で実行可能な内容を限定していくことしかできません。

パッケージの [API アクセス] の設定で Restricted を選択した場合に影響を受ける項目は、次のとおりです。

  • パッケージの API アクセスは、次のユーザ権限を上書きします。
    • Apex 開発
    • アプリケーションのカスタマイズ
    • HTML テンプレートの編集
    • 参照のみ項目の編集
    • 請求情報の管理
    • コールセンターの管理
    • カテゴリの管理
    • カスタムレポートタイプの管理
    • ダッシュボードの管理
    • レターヘッドの管理
    • パッケージライセンスの管理
    • 公開ドキュメントの管理
    • 公開リストビューの管理
    • 公開レポートの管理
    • 公開テンプレートの管理
    • ユーザの管理
    • 所有権の移行
    • チーム再割り当てウィザードの使用
    • 設定・定義を参照する
    • ウィークリーデータのエクスポート
  • ReadCreateEdit、および Delete アクセスがオブジェクトの API アクセス設定で選択されていない場合、たとえユーザに対する「すべてのデータの編集」権限および「すべてのデータの参照」権限があっても、ユーザにはパッケージコンポーネントのオブジェクトに対するアクセス権はありません。
  • Restricted API アクセスが有効になっているパッケージでは、新規ユーザを作成できません。
  • Salesforce は、アクセスが [制限あり] になっている AppExchange パッケージからの Web サービスへのアクセスと executeanonymous 要求を拒否します。
次の考慮事項は、パッケージの API アクセスにも適用されます。
  • ワークフロールールと Apex トリガは、パッケージの API アクセスに関係なく起動されます。
  • 1 つのコンポーネントが、ある組織内の複数のパッケージに含まれる場合、API アクセスは、そのアクセス設定に関係なく、その組織のすべてのパッケージ内にあるそのコンポーネントについて制限されません。
  • パッケージに対して制限のあるアクセスを選択した後で、Salesforce が新しい標準オブジェクトを導入すると、デフォルトでは、新しい標準オブジェクトへのアクセスは許可されません。新しい標準オブジェクトを含めるよう、制限のあるアクセス設定を変更する必要があります。
  • パッケージをアップグレードするときは、たとえ開発者が指定したものであっても、API アクセスの変更は無視されます。このようにして、アップグレードをインストールするシステム管理者に完全な制御権があることを保証します。インストールするユーザはインストール中の各アップグレードで、パッケージのアクセスの変更を慎重に検討し、すべての受け入れ可能な変更に注意する必要があります。これらの変更は無視されるため、システム管理者は、アップグレードをインストールした後で、受け入れ可能な変更を手動で適用する必要があります。
  • Sコントロールは、Salesforce が提供するもので、Salesforce 内にインラインで表示されます。このように緊密に���合されているため、インストール済みのパッケージ内の Sコントロールがその権限をユーザのフルアクセス権にまでエスカレーションする場合があります。パッケージをインストールする組織のセキュリティを保護するため、Sコントロールには、次のような制限があります。
    • 開発中の (つまり、AppExchange からインストールしたものではない) パッケージの場合、Sコントロールは、API アクセスがデフォルトの Unrestricted になっているパッケージにのみ追加できます。パッケージに Sコントロールを追加すると、Restricted の API アクセスを有効にすることはできません。
    • インストールしたパッケージについては、パッケージに Sコントロールが含まれる場合でも、アクセス制限を有効にできます。ただし、アクセス制限は、Sコントロールについては限定的な保護しか行いません。Salesforce は、Sコントロールセキュリティのアクセス制限を使用する前に、Sコントロール内の JavaScript を理解することをお勧めします。
    • インストール済みパッケージの API アクセスが [制限あり] になっていると、アップグレード済みバージョンに Sコントロールが含まれていない場合にのみ、アップグレードが成功します。アップグレードされたバージョンに Sコントロールがある場合は、現在インストール済みのパッケージの API アクセスを [無制限] に変更する必要があります。

パッケージへの API アクセスを管理するには、Salesforce オンラインヘルプの「パッケージの API アクセスおよびダイナミック Apex アクセスの管理」を参照してください。

制限されたパッケージからの XML-RPC 要求はアクセスが拒否されます。

メモ

送信ポートの制限

セキュリティ上の理由から、Salesforce では、指定できる送信ポートを、次のいずれかに制限します。

  • 80: このポートは、HTTP 接続のみを受け付けます。
  • 443: このポートは、HTTPS 接続のみを受け付けます。
  • 1024–66535 (1024 と 66535 も含む): これらのポートは、HTTP 接続または HTTPS 接続を受け付けます。

ポートの制限は、送信メッセージ、AJAX プロキシ、またはシングルサインオンなど、ポートが指定されている機能に適用されます。