LoginSignup
1
1

Salesforce:OAuth 2.0 ユーザ名パスワードフローでauthentication failureエラーが返るようになった

Last updated at Posted at 2023-07-22

経緯

SalesforceへAPIアクセスするための認証方式として 「OAuth 2.0 ユーザ名パスワードフロー」を使用しており、最近(2023年7月)作成したDE組織で従来の手順で接続アプリケーション作成、認証しようとしたところ、エラーとなってしまいました。

結論としては、Summer '23のリリース以降はデフォルトでOAuth 2.0 ユーザ名パスワードフローがブロック、つまり利用できないように変更になっていることが原因でした。

確認と対処

エラーになる状態

新規DE組織を作成し、接続アプリケーションを作成、下記curlコマンドでエラーを確認できます。

コマンド
curl https://login.salesforce.com/services/oauth2/token \
-d 'grant_type=password' \
-d 'username=username' \
-d 'password=password' \
-d 'client_id=3MV....' \
-d 'client_secret=98ABCDEF....'
レスポンス
{"error":"invalid_grant","error_description":"authentication failure"}

設定→ユーザ→ログイン履歴を確認すると「ユーザ名-パスワードフローが無効になっています」と記録されています。
image.png

設定を変更

設定→OAuth および OpenID Connect 設定を開き、[OAuth ユーザ名パスワードフローを許可] をオンに変更します。
image.png

再度確認

最初にエラーになったcurlコマンドを実行すると成功しました。

レスポンス
{"access_token":"00D....!.......","instance_url":"https://xxx-dev-ed.develop.my.salesforce.com","id":"https://login.salesforce.com/id/00D.../005...","token_type":"Bearer","issued_at":"1690...","signature":"...."}

ログイン履歴も「成功」表示となりました。
image.png

まとめ

下記のリリースページに記載の通りでしたが、チェックしておらず解決するために少し時間を使ってしまいました。

新しい組織でデフォルトでブロックされる OAuth 2.0 ユーザ名パスワードフロー

また、ユーザ名パスワードフローは非推奨と読み取れそうです。
本ポスト内容は暫定対応とし、別の方法へ移行を検討したほうが良さそうです。

特別なシナリオの OAuth 2.0 ユーザ名パスワードフロー

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1