Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SalesforceとHerokuのより良い関係を目指して(2)

 SalesforceとHerokuのより良い関係を目指して(2)

Japan Dreamin' 2024 セッション配布資料

Takahiro Yonei

January 27, 2024
Tweet

More Decks by Takahiro Yonei

Other Decks in Programming

Transcript

  1. ⾃⼰紹介 l ⽶井 孝浩(よねい たかひろ) l TAOドライブ株式会社 エンジニア ü SalesforceとHerokuを組み合せたSIをメインにしてきました

    ü 今年で14期⽬となり、頑張って⽣き残りたいと思います l Salesforce DG (Tokyo)の初代リーダーです l 約2/3 Ranger です
  2. SalesforceとHerokuについて Applications Data Runtime Middleware O/S Virtualization Servers Storage Networking

    Applications Data Runtime Middleware O/S Virtualization Servers Storage Networking Applications Data Runtime Middleware O/S Virtualization Servers Storage Networking Saas Paas Iaas nSalesforce • Sales Cloud, Service Cloudなど、すぐ に使えるアプリケーションを提供して います。 • 独⾃⾔語またはNo Code / Low Code によるカスタマイズが可能。 ※ただ、プラットフォーム固有の制約 や、独⾃⾔語である点はやや不利なと ころもあります。 • No Code / Low Code / Pro Code のバ ランスを調整しながらカスタマイズす ることが重要です。
  3. SalesforceとHerokuについて Applications Data Runtime Middleware O/S Virtualization Servers Storage Networking

    Applications Data Runtime Middleware O/S Virtualization Servers Storage Networking Applications Data Runtime Middleware O/S Virtualization Servers Storage Networking Saas Paas Iaas nHeroku • サポートする⾔語は幅広く、各⾔語で 形成されているエコシステムを利⽤で きるし、⾃由度が⾼いのが特徴です。 ただ、アプリケーションは⾃前で構築 する必要があります。 • Heroku Addonを利⽤することで、⾞ 輪の再発明を回避できます。 • サーバ / インフラをあまり意識しなく ても良く、アプリケーションのコアの 実装に集中できます。 • Pipeline, Github連携、Heroku CLI... など開発者体験は⾮常に良いです。
  4. SalesforceとHerokuについて Applications Data Runtime Middleware O/S Virtualization Servers Storage Networking

    Applications Data Runtime Middleware O/S Virtualization Servers Storage Networking Applications Data Runtime Middleware O/S Virtualization Servers Storage Networking Saas Paas Iaas 互いの特性を理解し、 短所を補強し合って 効率よくシステムを 構築することが、 やはり⼤事だと思います。
  5. 構成パターン - 今回の対象 nHerokuとSalesforceの構成としては、以下のようなパターンが挙げられますが 今回は「1」について掘り下げます # Heroku Salesforce 使⽤する主な技術 1

    Webフロントエンド バックエンド REST API (Apex REST API) SOAP API GraphQL API Connect REST API Heroku Connect 2 データハブ バックエンド Bulk API Heroku Connect REST API SOAP API Salesforce Functions
  6. 構成パターン - フロントエンド+バックエンド n今回ご紹介する構成 フロント エンド バック エンド ユーザ(a) 担当者

    ユーザ(b) ユーザ(c) ユーザ管理 ※ ユーザの種類(a,b,c)によって サイトを分けています
  7. 構成パターン - フロントエンド+バックエンド nアップデートが必要となった背景 ü Auth0がAdd-onプロバイダとして撤退 l これまでIdPとして定番のAdd-onでしたが、リストから削除されました Ø Auth0を使う場合には、別途Auth0からの購⼊が必要

    ü データ漏洩のリスク l 他のユーザのデータが漏洩しないよう、アプリケーション側でガードする仕組み (レコードレベルセキュリティ)が必要です Ø アプリケーション側で、何か漏れがあると重⼤事故が発⽣
  8. 構成パターン - フロントエンド+バックエンド n対応策(1) ü Salesforce Identityサービスを利⽤ l 外部ユーザ向けとして提供しているSalesforce Customer

    Identityサービスを利 ⽤します • 顧客およびパートナーとのエンゲージメントを促進するためのサービス • パスワードレスログイン、セルフ登録、ヘッドレスID API ...などを提供 l 外部ユーザ向けのライセンスとして複数種が⽤意されており、制約や予算に従っ て適切なものを選択する必要があります • ライセンスの種類 » External Identity » Customer Community » Customer Community Plus » Partner Community など
  9. 構成パターン - フロントエンド+バックエンド nユーザの登録/ログイン ü 各フロントエンドからSalesforce ヘッドレス ID API を使⽤

    ヘッドレスID API ユーザ(a) 担当者 ユーザ(b) ユーザ(c) ユーザ管理 プロファイル(a) プロファイル(b) プロファイル(c)
  10. 構成パターン - フロントエンド+バックエンド nユーザの登録/ログイン ü なぜヘッドレスID APIを使うのか? l Experience Cloudサイトの画⾯を使わずに、提供しているサイト内で完結できる

    ようになります l すなわち、ユーザ登録画⾯/ログイン画⾯を⾃由に実装できるようになります ü ヘッドレスID APIを使ったユーザ登録の詳細 l (詳しくは昨年のアドベントカレンダーを参照ください) l https://qiita.com/yonet77/items/0b9f180381ed1ff21d93
  11. 構成パターン - フロントエンド+バックエンド nヘッドレスID APIを使ったユーザ登録フロー例(⼀部抜粋) ① ② ① エンドユーザがやり取りするのは、外部 アプリケーションのみ

    ② 外部アプリケーションが、Salesforceと やり取りしてユーザを登録します https://help.salesforce.com/s/articleView?id=sf.remoteaccess_headles s_registration_private_clients.htm&type=5&language=ja より抜粋
  12. 構成パターン - フロントエンド+バックエンド n以下のヘルプより⼀部抜粋 https://help.salesforce.com/s/articleView?id=sf.users_license_types_communities.htm&type=5&language=ja https://help.salesforce.com/s/articleView?id=sf.users_license_types_external_identity.htm&type=5&language=ja ライセンス名 Customer Community Customer

    Community Plus Partner Community External Identity 取引先 参照/編集 参照/作成/編集 参照/作成/編集 参照/編集 取引先責任者 参照/作成/編集 参照/作成/編集 参照/作成/編集 参照/作成/編集 商品 参照 参照 参照 ? 納⼊商品 参照/作成/編集 参照/作成/編集 参照/作成/編集 参照/作成/編集 商談 N/A N/A 参照/作成/編集 N/A カスタム オブジェクト 10個 10個 10個(PRM SKU) 100個(External SKU) 10個 ロールと 標準共有 N/A 可 可 N/A 共有セット 可 可 可 可
  13. その他 - 追加トピック(2) nAuth0からの移⾏について ü Salesforceに移⾏する場合、既存のパスワードをそのまま移⾏することがで きないので、移⾏⽤の画⾯を挟むなどの追加対応が必要になります。 l Apexで外部ユーザを作成する際、パスワードを指定することができません。 ü

    例えば、Salesforceへの初回ログイン時にはパスワードを再設定してもらう よう誘導する、など ü ユーザを移⾏する際に、ユーザ名が重複しないような⼯夫が必要 l ユーザが指定したメールアドレスだと別のSalesforce組織で、ユーザが 登録されているかも...
  14. まとめ l WebフロントエンドにHeroku, バックエンドにSalesforceという組合せ ü 社内業務⽤のシステムとしてSalesforceを活⽤する ü エンドユーザ向けには⾃由にデザインしたユーザ体験を実現させたいのでHerokuを 活⽤する といった組合せは、互いのメリットを伸ばし、デメリットを補うという点で良い組合

    せだと考えます。 さらに、 ü Salesforceの外部ユーザ向けサービスを利⽤することで、認証基盤とレコードレベ ルセキュリティの両⽅を実現させる l ヘッドレスID APIを使って、ユーザ登録/ログインのユーザ体験をWebフロントだけで完 結できる l 標準のアクセス制御を利⽤することで、ユーザ固有のデータへのアクセスを制御 l ただし、ライセンスの選択にはよくよく検討が必要 をプラスすることで、Salesforceをさらに活⽤して、⾃由度の⾼いサービスを提供でき るようになると考えます。
  15. Appendix l Salesforce Identityサービスについて ü https://help.salesforce.com/s/articleView?id=sf.identity_overview.htm&type=5&language=ja l Salesforce Customer Identityについて

    ü https://help.salesforce.com/s/articleView?id=sf.identity_about_customers_partners.htm&type= 5&language=ja l Salesforce Identity および External Identityライセンスについて: ü https://help.salesforce.com/s/articleView?id=sf.identity_licenses.htm&type=5&language=ja ü https://help.salesforce.com/s/articleView?id=sf.users_license_types_external_identity.htm&typ e=5&language=ja l Headless ID APIについて: ü https://help.salesforce.com/s/articleView?id=sf.headless_identity_customers_overview.htm&ty pe=5&language=ja l Strapi: ü https://strapi.io/