NO.151 JSON 通知メッセージが Microsoft Graph サービスから送信されていることを確認するにはどうすればよいですか?
clientStateは、各通知でサービスによって送信されるclientStateプロパティの値を指定します。最大長は 128 文字である。クライアントは、サブスクリプションとともに送信されたclientStateプロパティの値と、各通知で受信したclientStateプロパティの値を比較することで、通知がサービスから来たことを確認できます。
注:サブスクリプションを使用すると、クライアントアプリはMicrosoft Graphのデータの変更に関する通知を受け取ることができます。
トピック3、電子請求書
既存の環境
アプリケーション・アーキテクチャ
電子請求書は、シングル・ページ・アプリケーション(SPA)と、請求書の管理・処理機能を提供するバックエンドのウェブ・サービスで構成される。
E-invoicingは、各請求業務のすべての詳細をバックエンドのクラウドデータベースに保存する。請求書は PDF 形式で作成され、作成後に OneDrive からダウンロードできる。各請求書には invoiceid という一意の識別子が付与される。
ユーザーはE-invoicingにサインインし、ウェブ・ブラウザの複数のタブでE-invoicingを開くという共通のワークフローを持ち、アプリケーションの異なる部分を同時に使用することができる。
セキュリティ・アーキテクチャ
必要条件
事業目標
変更予定
* 現在サインインしているユーザに代わって、生成された請求書を顧客に電子メールで送信します。システムによって生成されたメールにはinvoiceidが含まれます。
* 電子請求アプリケーションを離れることなく、ブラウザ上で可能な限り多くの操作を行う。
* Microsoft ID プラットフォームを使用して、ID、認証、認可を管理する。
* 特定のinvoiceidを含むすべてのメールを表示します。
技術要件
* E-invoicing が Microsoft 365 に対して行うすべての操作は、ユーザーによって開始される。E-invoicing がユーザーに代わって Microsoft 365 データへのアクセスを初めて試行する際には、 ユーザーが E-invoicing に Microsoft 365 データへのアクセスを許可することを要求する。
* 支払期日前に顧客に定期的なリマインダーを送信します。スケジュールリマインダーを有効にするための管理ユーザーインターフェイスを作成します。
* 指定されたメールボックスに届いたベンダーからのメールを検出するために、Microsoft Graphの変更通知を導入する。
* シングルサインオン(SSO)を導入し、ブラウザタブ間のログインプロンプトを最小化する。
* マイクロソフトのIDプラットフォームを使用することで、バックエンドのウェブサービスに安全にアクセスできる。
* すべてのソリューションが安全なコーディング手法を使用していることを確認する。
バックエンド・セキュリティの変更予定
電子請求書には、ユーザーがバックエンドAPIを呼び出すことを許可すべきかどうかを動的に識別する内部ロジックがある。
SSOJavaScriptスクリプト
以下のコードを使用して、Microsoft Authentication Library(MSAL)を使用してSSOを実装する予定である。
アクセストークンJavaScriptスクリプト
アクセストークンを取得するためのJavaScriptコードは以下の通りです。
変更通知JSON
ベンダーの電子メールを検出するためにMicrosoft Graphサービスから送信されるJSONメッセージは以下のとおりです。