見出し画像

[Salesforce] Developer Edition でも Client Credentials Flow を試したい[API]

最近ですね、ありがたいことに、ようやくと言いますか、Salesforce でも OAuth2.0 の Client Credentials フロー(和訳がクライアントログイン情報フローなの分かりにくい)が提供されました。ありがたい。

これまでは、安全にサーバ間通信を行うには、JWTベアラーフローを利用せざるを得ませんでしたが、これでごくごく一般的なOAuthフローが利用できるようになったと言えるでしょう。

が、困ったことに、この Client Credentials フローを利用するためには "API 限定" 権限を付与する必要があります。

実行ユーザは「API 限定」権限を持っている必要があります。

https://help.salesforce.com/s/articleView?id=sf.connected_app_client_credentials_setup.htm&type=5

何が困るかというと、この権限は、どうも "Enterprise Edition 以上" が必要そうです。中の人のくせに曖昧なものの言い方はなぜかというと、公開されている公式な情報としてはないのです。どういうことだ。数日探してます。知ってたら教えて欲しい。

一応 Developers には情報がありまして、ここと、あとは Stack Exchange にあるくらい。これの何が問題かというと、Developer Edition では利用できないのです。

みなさまのお使いの Developer Edition 見ていただくと分かると思いますが、プロファイルにも権限セットにも "API 限定" がありません。なので、Client Credentials フローを試そうと思ったら、トライアルか契約済みの Enterprise Edition 以上のSalesforce 組織がないと使えないのです。

では Developer Edition で、どうしても Client Credentials フローを試したい場合にはどうするか。Enterprise Edition のスクラッチ組織を作成するだけです。実に簡単な結論でした。

Developer Edition で DevHub を使えるようにしていれば、次の程度のコマンドでいけます。

sfdx force:auth:web:login
sfdx force:org:create edition=Enterprise -a my20230126d username=apionly@example.org
sfdx force:org:open -u apionly@example.org

Good luck

貴方がサポートしてくれると、私が幸せ。 私が幸せになると、貴方も幸せ。 新しいガジェット・ソフトウェアのレビューに、貴方の力が必要です。