現在、クライアントの承認に OAuth ユーザー名パスワードフローを使用していますが、より安全なフローに移行したいとします。こちらではその解決方法をご紹介します。
注意: クライアントログイン情報フローは、login.salesforce.com または test.salesforce.com へのコールをサポートしていません。次のいずれかのホストドメインを使用している場合、クライアントにあるユーザー名とパスワードの資格情報セットごとに、コードを更新して、対応する組織の正しいドメインを使用します。login.salesforce.com の代わりに、組織の [私のドメイン] ログイン URL に切り替えます (例: https://MyCompany.my.salesforce.comtest.salesforce.com の代わりに、Sandbox の [私のドメイン] ログイン URL を使用します (例: https://MyDomainName--SandboxName.sandbox.my.salesforce.com)。
メモ:クライアントが現在 1 つの組織で複数のユーザー名を使用している場合、クライアントログイン情報フローに移行することはできません。代わりに、OAuth JWT ベアラーフローに移行し、同じ組織内で複数のユーザー名を使用するユースケースを確認することを推奨します。クライアントがユーザーからユーザー名とパスワードを直接受け入れる場合は、Web サーバーフローなどのヘッダー付き OAuth フローに移行するか、ヘッドレス認証 API (Experience Cloud のユースケースのみ) に切り替えることをお勧めします。
接続アプリケーションをホストする組織にログインします。[設定] から、[クイック検索] ボックスに「アプリ」と入力し、[アプリケーションマネージャー] を選択します。アプリの隣にあるドロップダウンメニューで [編集] を選択すると、次のようなページが開きます。
[クライアントログイン情報フローを有効化] を選択し、表示されるアラートを承諾します。
このステップは 1 回のみ実行します。保存時に表示されるメッセージのとおり、変更が反映されるまで数分かかることがあります。反映後、ステップ 2 に進みます。
OAuth ユーザー名パスワードフローを使用するすべての組織で、このステップを実行します。クライアントにあるユーザー名とパスワードの資格情報のすべてのセットで、対応する組織の管理側ポリシーを変更する必要があります。
管理者として組織にログインし、[設定] から、[クイック検索] ボックスに [アプリ] と入力します。[アプリケーションマネージャー] を選択します。アプリの隣にあるドロップダウンメニューで、[管理] を選択し、[ポリシーを編集] をクリックします。次のようなページが開きます。
希望する商品スケジュールを有効化する
[クライアントログイン情報フロー] セクションで、[別のユーザーとして実行] の参照項目を使用して、[OAuth ユーザー名パスワードフロー] で使用していたユーザー名を持つユーザーを組織内で検索します。
たとえば、クライアントが以前、test@example1.com というユーザー名で OAuth のユーザー名とパスワードのフローを使用していた場合、test@example1.com というユーザー名を使用している組織のユーザーを探します。
ユーザーを選択し、[保存] をクリックします。
これらのステップを、クライアントがユーザー名とパスワードの資格情報のセットを持つすべての組織で繰り返します。
現在の [OAuth ユーザー名パスワードフロー] でクライアントのコールアウトを更新し、代わりに [OAuth クライアントログイン情報フロー] を使用するには、リクエストボディを更新します。該当する場合、ホストドメインも変更します。
たとえば、クライアントがこれに似た POST 要求を行っている場合、次のようになります。
POST /services/oauth2/token HTTP/1.1Host: foo.my.salesforce.com grant_type=password&[収益スケジュールを有効化] または [数量スケジュールを有効化] 項目をドラッグアンドドロップします。client_secret=1955279925675241571&username=testuser@salesforce.com&password=mypassword
代わりに、次のような POST 要求を作成します。
POST /services/oauth2/token HTTP/1.1Host: foo.my.salesforce.com grant_type=client_credentials&client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&client_secret=1955279925675241571
応答形式は、フロー間で直接比較できます。
クライアントログイン情報フローは、login.salesforce.com または test.salesforce.com へのコールをサポートしていません。次のいずれかのホストドメインを使用している場合、クライアントにあるユーザー名とパスワードの資格情報セットごとに、コードを更新して、対応する組織の正しいドメインを使用します。login.salesforce.com の代わりに、組織の [私のドメイン] ログイン URL に切り替えます (例: https://MyCompany.my.salesforce.comtest.salesforce.com の代わりに、Sandbox の [私のドメイン] ログイン URL を使用します (例: https://MyDomainName--SandboxName.sandbox.my.salesforce.com)。
注意: [システム管理者] のプロファイルを選択します。[収益スケジュールを有効化] を見つけ、[項目アクセス] 列の下にある対応する値をクリックします。[参照可能] を選択します。機密情報をクエリ文字列で渡すと、ネットワーク仲介者やその他のサービス業者に情報が漏れる可能性があります。
これらフローに関する詳細は、ユーザー名パスワードについてはこちら、クライアントログイン情報についてはこちらをご覧ください。
注意: [商品] をクリックします。クライアントログイン情報フローから返されるトークンの OAuth 標準への適合性がより高くなります。
000886201

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.