
参照:
https://docs.microsoft.com/en-us/microsoftteams/platform/resources/schema/manifest-schema#composeextensions
トピック2、E-invoicing
既存の環境
アプリケーションアーキテクチャ
電子請求書は、シングルページアプリケーション(SPA)と、請求書の管理および処理機能を提供するバックエンドWebサービスで構成されています。
E-invoicingは、各請求操作のすべての詳細をバックエンドクラウドデータベースに保存します。電子請求書はPDF形式の請求書を生成し、生成後にOneDriveからPDFをダウンロードする機能をユーザーに提供します。各請求書には、invoiceidという名前の一意の識別子があります。
ユーザーは、E-invoicingにサインインしてから、Webブラウザーの複数のタブでE-invoicingを開いて、アプリケーションのさまざまな部分を同時に使用できるという共通のワークフローを持っています。
セキュリティアーキテクチャ
要件
ビジネス目標
計画された変更
*現在サインインしているユーザーに代わって、生成された請求書を顧客に電子メールで送信します。システムによって生成されたすべての電子メールには、請求書IDが含まれます。
* E-invoicingアプリケーションを離れることなく、ブラウザで可能な限り多くの操作を実行します。
* Microsoft IDプラットフォームを使用して、ID、認証、および承認を管理します。
*特定の請求書IDを含むすべてのメールを表示します。
技術要件
*Microsoft365に対してE-invoicingによって実行されるすべての操作がユーザーによって開始されることを確認してください。アプリケーションがユーザーに代わってMicrosoft365データに初めてアクセスしようとするときに、ユーザーがE-invoicingにMicrosoft365データへのアクセスを許可することを要求します。
*支払い期日までにスケジュールされたリマインダーを顧客に送信します。管理ユーザーインターフェイスを作成して、スケジュールされたリマインダーを有効にします。
* Microsoft Graph変更通知を実装して、指定されたメールボックスに到着するベンダーからの電子メールを検出します。
*シングルサインオン(SSO)を実装し、ブラウザタブ全体のログインプロンプトを最小限に抑えます。
* Microsoft IDプラットフォームを使用して、バックエンドWebサービスへの安全なアクセス。
*すべてのソリューションが安全なコーディング手法を使用していることを確認してください。
バックエンドセキュリティの計画された変更
電子請求には、ユーザーがバックエンドAPIの呼び出しを許可する必要があるかどうかを動的に識別する内部ロジックがあります。
SSOJavaScriptスクリプト
次のコードを使用して、Microsoft認証ライブラリ(MSAL)でSSOを実装することを計画しています。

アクセストークンJavaScriptスクリプト
アクセストークンを取得するには、次のJavaScriptコードがあります。

通知JSONの変更
ベンダーの電子メールを検出するためにMicrosoftGraphサービスによって送信される次のJSONメッセージがあります。
