【OAuth2.0 JWT ベアラーフロー】SalesforceのAPIをPostmanからコールする ③実行編
はじめに
※ この記事は ②準備編 から続いています。
繰り返しになりますが、注意点を記載いたします。 この記事では、手軽に実行できることに重点を置いてますので、セキュリティ面での考慮等、必要な検討については本記事の読者様の責任で実施をお願いいたします。
1.ブラウザのデバッガを使って日付値を取得
ブラウザにフォーカスを当てた状態でF12ボタンを押下し、Consoleタブに以下のコマンドをコピペして実行します。
※ 日付の値が取得できれば手段は何でも良いのですが、JavaScriptで手軽に取得しています。
d = new Date(); d.setSeconds(d.getSeconds() + 180); d.valueOf()
取得した数値を後で使用します。
2.JWTの作成
jwt.ioを開きます。
本来であれば「1.ブラウザのデバッガを使って日付値を取得」「2.JWTの作成」と、この後の「3.PostmanでToken取得」「4.取得したTokenを使ってAPI実行」の処理は、全て外部のアプリケーションで実行します。
JWTの作成もアプリの機能で実行するのですが、jwt.ioというサイトでは必要な項目に入力するだけで、簡単にJWTを作成することができます。
jwt.ioには
と記載がある通り、全ての検証及びデバッグはクライアント側で行われるとのことですが、本番の鍵情報などは貼り付けない方が良いでしょう(これは言うまでもないことですね)。
スクショの番号の順に対応をしていきます。
①alg:「RS256」に変更してください。
②iss:「3.Salesforceで接続アプリケーションを作成」で取得した「コンシューマ鍵」を貼り付けます。
③aud:Salesforceのハンズオン組織であれば「https://login.salesforce.com」を設定してください。
④sub:認証で使用するユーザ名を指定してください。
⑤exp:「1.ブラウザのデバッガを使って日付値を取得」で取得した数値を貼り付けてください。
⑥自己署名証明書(server.crt)をエディタで開いて、表示された文字列全てをコピペしてください。
⑦秘密鍵(server.key)をエディタで開いて、表示された文字列全てをコピペしてください。
⑧「Signature Verified」と表示されていたらOKです。
⑨この後の「3.PostmanでToken取得」のパラメータ「assertion」で使いますので取っておいてください。
3.PostmanでToken取得
アプリを開いた後、左上の「New」→「HTTP Request」を選んでください。
開いた画面で以下の設定をしてください。
①「POST」を選択します。
②Salesforceのハンズオン組織のURLから「https~.com」までをコピペし、その後ろに続けて「/services/oauth2/token」を入力してください。
③「Params」タブを開きます。
④「grant_type」と入力してください。
⑤「urn:ietf:params:oauth:grant-type:jwt-bearer」と入力してください。
⑥「assertion」と入力してください。
⑦「2.JWTの作成」⑨でコピーした文字列をペーストしてください。
⑧「Headers」タブを開きます。
⑨「Content-Type」と入力してください。
⑩「application/x-www-form-urlencoded」と入力してください。
⑪「Send」ボタンをクリックしてください。
画像のようなエラーが表示された場合は、「1.ブラウザのデバッガを使って日付値を取得」で取得した日付値の有効期限が切れているので、再度取得し直した後、jwt.ioの「⑤exp」に貼りなおして⑨を最新化し、「3.PostmanでToken取得」の⑥に新しい値を貼り付けてください。
⑫「200 OK」となっていれば成功しています。
⑬「4.取得したTokenを使ってAPI実行」で必要となりますので取っておきます。
⑭「4.取得したTokenを使ってAPI実行」で必要となりますので取っておきます。
4.取得したTokenを使ってAPI実行
あともう少しで終わりです!
Postman左上で再度「New」→「HTTP Request」を選んでください。
①「POST」を選択してください。
②「3.PostmanでToken取得」⑭で取得したURLに「/services/apexrest/MyRestApi」を追加した状態で設定してください。「MyRestApi」は②準備編「5.SalesforceでREST API作成」で作成したApexのクラス名です。
③「Headers」タブを開きます。
④「Authorization」と入力してください。
⑤「Bearer」+「 」(半角スペース」+「3.PostmanでToken取得」⑬で取得した「access_token」の値、を貼り付けてください。
⑥「Send」ボタンをクリックしてください。
⑦「200 OK」と表示されていたら成功です。
⑧Apexでselectした1レコードが表示されています。
最後に
ここまでいかがでしたでしょうか?ちょっと動かすだけですが、意外とやる事が多かったのではないかと思います。
ですが実際に動かしてみることで、抽象的で分かり辛かったところが具体的にイメージできるようになったかと思いますし、実際に結合テストなどでも利用できるはずです。
最後までお付き合いいただきありがとうございました!少しでも参考になったという方は、「スキ」を押していただけるととってもうれしいです!
お問合せはお気軽に
https://service.shiftinc.jp/contact/
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/