はじめに
この記事は Salesforce 開発者ブログキャンペーンへのエントリー記事です。
今回のテーマ
認定テクニカルアーキテクト(CTA)試験対策として、 OAuth 認可フロー
のいくつかのパターンに習熟しておく必要があります。今回はその中のひとつ、JWT Bearer Flow
について図を書きながら理解を進めていきたいと思います。
OAuth 2.0 JWT ベアラーフロー
初めてみたときはなんだかすごそうな名前にただ圧倒されてしまったことを思い出します
シナリオ
Meta & Moose Inc.社(MMI社)は、自社のオンプレミスサーバー上で ERP システムを運用していましたが、今年から CRM システムとして Salesforce を追加導入しました。MMI 社のアーキテクトであるあなたは、ERP システムから CRM システムのデータへアクセスするために、 Salesforce の対話的なログイン画面を介することなく、特定のユーザーで ログインしたいと考えています。
ソリューション
このシナリオの場合、OAuth 2.0 JSON Web トークン (JWT) ベアラーフロー を使用できます。
フロー図
-
この JWT は、オンプレミスサーバー上に保存された非公開鍵で署名されています。
-
接続アプリケーションの設定値および添付されている証明書を利用して JWT を検証します。
- コンシューマーキーは正しいか。
- 存在するユーザ名か。
-
管理者が承認したユーザは事前承認済み
が設定されてる前提で、そのユーザは適切なプロファイル or 権限セットを付与されているか。
-
検証 OKであれば、アクセストークンを発行して返却します。
-
アクセストークンがあればデータにアクセスできるようになります。
用語集
英語ドキュメントだけ読んでいれば混乱することはありませんが、日本語ドキュメントを読んでいるとふと「あれ?」とこんがらがって手が止まることがあります
No. | 英語 | 日本語 | イメージ |
---|---|---|---|
1 | authentication | 認証 | アクセスを許可して良い相手なのかを確認してから切符をあげること |
2 | authorization | 認可 | 適切な切符を持っていたらアクセスを許可すること |
3 | private key | 非公開鍵 | JWT を署名する時に使うもの |
4 | certificate | 証明書 | JWT を検証する時に使うもの |
例: Authorization Code は、認証コードではなく「認可コード」です。
おまけ
フロー図を作成するために使用したツールは "Draw.io Integration" です。VS Code をよく使っているかたにはすごく便利ですので、一度使ってみてくださいね
さいごに
認定テクニカルアーキテクトを目指しているそこのあなた、ドメインアーキテクト資格は 2 つともお揃いですか?ほぼ毎月オンラインで勉強会を開催していますので、ぜひ私たちと一緒に勉強しましょう
出典: Salesforce 資格一覧
Acknowledgment
エントリにあたり参考にさせていただきました