指定ログイン情報スキーマ
指定ログイン情報と外部ログイン情報は、安全で認証されたコールアウトの設定の再利用を簡略化し、強化することができます。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic および Lightning Experience の両方 |
| 使用可能なエディション: すべてのエディション |
指定ログイン情報スキーマの要素
指定ログイン情報スキーマのさまざまな部分について説明します。
- 指定ログイン情報では、コールアウトエンドポイントと HTTP 伝送プロトコルを指定します。
- 外部ログイン情報の認証プロトコルとユーザーログイン情報でコール元を認証します。複数の指定ログイン情報で同じ外部ログイン情報を使用できます。
- 外部ログイン情報プリンシパルは、コールアウトの実行を許可するために権限セットに対応付けられます。
- ユーザーの外部ログイン情報には、暗号化されたトークンが保存されます。
- 外部認証 ID プロバイダーは、発信コールアウト用の OAuth トークンを取得します。
指定ログイン情報
指定ログイン情報は、外部システムへの名前付き接続と考えることができる論理エンティティです。指定ログイン情報を使用すると、物理 URL を Apex コードに埋め込んだり、暗号化されていないデータストアで認証トークンを管理したりする必要はありません。代わりに、コード内の変数によって、Salesforce システム管理者はリリース時に物理エンドポイントをプロビジョニングし、組織の暗号化されたログイン情報ストアでユーザーログイン情報を管理できます。指定ログイン情報 URL は、実行時に、設定済みの物理エンドポイントと、コールアウトを実行した承認済みユーザーのログイン情報に解決されます。
指定ログイン情報をカスタマイズできます。たとえば、Salesforce 数式関数を使用して HTTP ヘッダーを定義し、ヘッダー値をコール元ユーザーのコンテキストに合わせて調整したり、リクエストボディの数式関数の変数を置き換えたりできます。
指定ログイン情報にはさまざまな種別があります。高度な使用事例では、サポートされているカスタムパラメーターの保存も利用できます。パラメーターは、基本的に、任意のメタデータを取得するための名前と値のペアであり、パラメーター値は安全に保存されます。指定ログイン情報は次のいずれかの種別になります。
- SecuredEndpoint
- 指定ログイン情報には、トランスポートレイヤーセキュリティ (TLS) により保護されるエンドポイントの伝送プロトコルが含まれます。これはデフォルトの指定ログイン情報種別です。
- PrivateEndpoint
- 指定ログイン情報ではトラフィックがプライベート接続を介して送信され、公開インターネットはスキップされます。
- Legacy
- 従来の指定ログイン情報では、1 つの定義にコールアウトエンドポイントの URL と必要な認証パラメーターを指定します。
外部ログイン情報
多くの場合、セキュリティポリシーでは、認証の詳細を定期的に変更することが義務付けられます。外部ログイン情報では、Salesforce がリモートシステムに対して認証を行う方法の詳細がカプセル化されます。認証情報をコードの外部に配置することで、開発者はこのポリシーへの準拠を維持するために認証の詳細を変更する必要がなくなります。
多くの場合、ハイパースケールクラウドインフラストラクチャプロバイダーは複数の異なるシステムをホストしており、1 つのログイン情報セットが複数の名前付きシステムへのアクセスに使用されている可能性があります。指定ログイン情報には外部ログイン情報への参照が保持されており、複数の指定ログイン情報で 1 つの外部ログイン情報を共有できます。たとえば、Salesforce インテグレーションで同じログイン情報を使用して Google ドライブおよび Google カレンダーの API にアクセスできます。
OAuth または AWS 署名 v4 などの認証プロトコルでは、外部システムへの認証方法を指定します。たとえば、アクセスキーの交換方法や期限切れのアクセスキーの更新方法を指定できます。このプロトコルでは、キーの交換方法やキーの更新タイミングなど、プラットフォームで処理される実装の詳細を指定します。認証パラメーターは、外部ログイン情報の名前と値のペアとして取得されます。プロトコル固有のパラメーターの認証については、API ドキュメントを参照してください。
権限セット
Salesforce Platform では、権限セットを使用して、コールアウトの実行が承認されるユーザーを制御できます。外部ログイン情報ではユーザーを認証し、権限セットではユーザーを承認します。外部ログイン情報は、外部ログイン情報プリンシパルを使用して権限セットまたはユーザープロファイルにリンクします。実行時に、プラットフォームはユーザーにリモートシステムにアクセスする前に権限セットがあることを確認します。
開発チームは、特定のリモートシステムへのアクセスを表す権限セットをパッケージ化できますが、システム管理者は、外部ログイン情報を、選択した他の権限セットに関連付けるオプションを保持しています。
ユーザーの外部ログイン情報
指定ログイン情報のコールアウトのトークンは暗号化され、ユーザーの外部ログイン情報オブジェクトに保存されます。認証済みのコールアウトを実行するユーザーには、ユーザーの外部ログイン情報へのプロファイルベースまたは権限セットベースのアクセス権も必要です。ほとんどの標準権限セットとプロファイルには、デフォルトでユーザーの外部ログイン情報オブジェクトへのアクセス権があります。ゲストユーザープロファイル、および一部のカスタム権限セットとプロファイルでは、ユーザーの外部ログイン情報オブジェクト権限を手動で割り当てる必要があります。
指定ログイン情報の実行時動作では、ユーザーの外部ログイン情報オブジェクトからトークンが読み取られますが、SOQL、Apex、APIからこのオブジェクトのレコードにアクセスすることはできません。トークンは、Connect REST API の特殊な方法を使用してプログラムで削除できます。
External Auth Identity Provider
OAuth 2.0 認証を使用する外部ログイン情報は、外部システムへの発信コールアウトに必要な OAuth トークンを取得する外部認証 ID プロバイダーを参照できます。ID プロバイダーのトークンエンドポイントへの要求をカスタマイズし、マルチテナントシステムでアクセスするテナントを指定するには、アカウント ID またはテナント ID をカスタム要求パラメーターとして添付します。
外部ログイン情報にもリンクできる認証プロバイダーとは異なり、Connect REST APIまたはApexを使用して外部認証IDプロバイダーを作成できます。また、それらを第二世代管理パッケージ (管理 2 GP) およびロック解除済みパッケージに含めて、多数の組織間や、1 つの組織の開発環境、テスト環境、本番環境間で配布できます。
