12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Salesforce の JWT ベアラーフローの図を書いてみる

Last updated at Posted at 2020-06-06

はじめに

この記事は Salesforce 開発者ブログキャンペーンへのエントリー記事です。

Salesforce 開発者向けブログ投稿キャンペーン 第2弾 開催のお知らせ

今回のテーマ

認定テクニカルアーキテクト(CTA)試験対策として、 OAuth 認可フロー のいくつかのパターンに習熟しておく必要があります。今回はその中のひとつ、JWT Bearer Flow について図を書きながら理解を進めていきたいと思います。

OAuth 2.0 JWT ベアラーフロー

初めてみたときはなんだかすごそうな名前にただ圧倒されてしまったことを思い出します :relieved:

シナリオ

Meta & Moose Inc.社(MMI社)は、自社のオンプレミスサーバー上で ERP システムを運用していましたが、今年から CRM システムとして Salesforce を追加導入しました。MMI 社のアーキテクトであるあなたは、ERP システムから CRM システムのデータへアクセスするために、 Salesforce の対話的なログイン画面を介することなく、特定のユーザーで ログインしたいと考えています。

ソリューション

このシナリオの場合、OAuth 2.0 JSON Web トークン (JWT) ベアラーフロー を使用できます。

フロー図

image.png

  1. この JWT は、オンプレミスサーバー上に保存された非公開鍵で署名されています。

  2. 接続アプリケーションの設定値および添付されている証明書を利用して JWT を検証します。

    • コンシューマーキーは正しいか。
    • 存在するユーザ名か。
    • 管理者が承認したユーザは事前承認済み が設定されてる前提で、そのユーザは適切なプロファイル or 権限セットを付与されているか。
  3. 検証 OKであれば、アクセストークンを発行して返却します。

  4. アクセストークンがあればデータにアクセスできるようになります。

用語集

英語ドキュメントだけ読んでいれば混乱することはありませんが、日本語ドキュメントを読んでいるとふと「あれ?」とこんがらがって手が止まることがあります :sweat_drops:

No. 英語 日本語 イメージ
1 authentication 認証 アクセスを許可して良い相手なのかを確認してから切符をあげること
2 authorization 認可 適切な切符を持っていたらアクセスを許可すること
3 private key 非公開鍵 JWT を署名する時に使うもの
4 certificate 証明書 JWT を検証する時に使うもの

例: Authorization Code は、認証コードではなく「認可コード」です。

おまけ

フロー図を作成するために使用したツールは "Draw.io Integration" です。VS Code をよく使っているかたにはすごく便利ですので、一度使ってみてくださいね :four_leaf_clover:

image.png

さいごに

認定テクニカルアーキテクトを目指しているそこのあなた、ドメインアーキテクト資格は 2 つともお揃いですか?ほぼ毎月オンラインで勉強会を開催していますので、ぜひ私たちと一緒に勉強しましょう :raised_hands:

image
image

出典: Salesforce 資格一覧

Acknowledgment

エントリにあたり参考にさせていただきました :bow_tone1:

12
5
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
12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?