Microsoft Office 365 Service Communications API を使用した Dynamics 365 Customer Engagement サービス監視: 概要

みなさん、こんにちは。

Microsoft Office 365 Service Communications API を使用した Dynamics 365 Customer Engagement (CE) のサービス監視について紹介します。最初に本記事で概要を説明します。弊社が提供しているブログ Dynamics 365 Customer Engagement in the Field の記事を翻訳したものです。次回以降で実際に評価環境で試していきます。

情報元: Monitoring Dynamics 365 CE service health and messages using the Microsoft Office 365 Service Communications API

====================================================

最近、Microsoft Dynamics 365 CE サービスの正常性を監視するオプションについて、お客様と会話をしました。具体的な要望は、Office 365 管理センターより提供されているサービス正常性の表示よりもより高い可視性が必要とのことでした。これにより Dynamics 365 サービス管理者は便利にサービスの正常性を確認できます。しかし、場合によっては、利用者がこれらのメッセージにアクセスするために Office 365 内で適切な役割を持たないため、実際は管理者に依存するようになることがあります。

そこで Office 365 Service Communications API を見つけました。 これを確認すると、独自の認証メカニズム、サービス契約などを持つ 2 つの別個のエンドポイントがあり、Office 365 Service Communications APIOffice 365 Service Communications API (プレビュー) が作成されました。両方の API を利用して得たものは、Office 365 サービス管理者 または認証のために(AOBO)の代理として動作するパートナー役割と、OAuth を使用するパートナーロールが必要です。 つまり、Office 365 にログインするのと同様のユーザー名とパスワードを使用する、もう一方は、Client ID と Client Secret を使用します。 これをあなたのアプリケーションセキュリティチームと議論して、どのオプションが適切か判断してください。ただし、元の API リファレンスで推奨されている OAuth のプレビューエンドポイントをお勧めします。

以下の記事では、アプリケーションを Azure Active Directory に登録するのに必要な手順を詳述しています。

https://msdn.microsoft.com/en-us/office-365/get-started-with-office-365-management-apis

利用可能なデータとイベントに関しては、2 つのバージョンの API では大きな違いは見られないため、ここから プレビュー API について説明します。元の API に興味がある場合は、サンプルMVCアプリケーションを参考にしてください。

認証トークンを取得すると、Office 365 Service Communications API (プレビュー) への任意の要求に追加できるようになりました。 API は、テナント識別子 (テナント GUID またはテナント名、たとえば contoso.onmicrosoft.com) と希望の操作を取るようにフォーマットされています。

https://manage.office.com/api/v1.0/{tenant_identifier}/ServiceComms/{operation}

私が作成した評価用テナントに対するリクエストのサンプルは次のとおりです。

Request:

GET https://manage.office.com/api/v1.0/contoso.onmicrosoft.com/ServiceComms/Services

Authorization: Bearer <authorization bearer token>

Host: manage.office.com

上記の通りリクエストは、認証ヘッダーと正しい URL で簡単に GET ることができます。 上記により Office 365 テナント内のすべての Office 365 アプリケーションの現在のサービスを提供します。 この記事は Dynamics 365 CE に焦点を当てます。Dynamics 365 のステータスのみ取得するため CurrentStatus API コールにフィルタを追加してみましょう。(太字)

Request:

GET https://manage.office.com/api/v1.0/contoso.onmicrosoft.com/ServiceComms/CurrentStatus?$filter=Workload%20eq%20'DynamicsCRM'

Authorization: Bearer <authorization bearer token>

Host: manage.office.com

Response Body:

{

"@odata.context":"https://office365servicecomms-prod.cloudapp.net/api/v1.0/contoso.onmicrosoft.com/$metadata#CurrentStatus","value":[

{

"FeatureStatus":[

{

"FeatureDisplayName":"Sign In","FeatureName":"signin","FeatureServiceStatus":"ServiceOperational","FeatureServiceStatusDisplayName":"Normal service"

},{

"FeatureDisplayName":"Sign up and administration","FeatureName":"admin","FeatureServiceStatus":"ServiceOperational","FeatureServiceStatusDisplayName":"Normal service"

},{

"FeatureDisplayName":"Organization access","FeatureName":"orgaccess","FeatureServiceStatus":"ServiceOperational","FeatureServiceStatusDisplayName":"Normal service"

},{

"FeatureDisplayName":"Organization performance","FeatureName":"orgperf","FeatureServiceStatus":"ServiceOperational","FeatureServiceStatusDisplayName":"Normal service"

},{

"FeatureDisplayName":"Components/Features","FeatureName":"crmcomponents","FeatureServiceStatus":"ServiceRestored","FeatureServiceStatusDisplayName":"Service restored"

}

],"Id":"DynamicsCRM","IncidentIds":[

"CR134863"

],"Status":"ServiceRestored","StatusDisplayName":"Service restored","StatusTime":"2018-04-26T19:09:29.3038421Z","Workload":"DynamicsCRM","WorkloadDisplayName":"Dynamics 365"

}

]

}

このレスポンスオブジェクトを確認します。FeatureServiceStatusDisplayName プロパティを参照してください。Dynamics 365 の現在のステータス (Status) と、サインイン(Sign In)、組織アクセス(Organization access)、コンポーネント/機能(Components/Features)などの機能を確認できます。 このレスポンスでは、Dynamics 365 の現在のステータスが “Service Restored” であり、影響を受ける特定の機能が「コンポーネント/機能」であることがわかります。

続いて過去機能がどれくらいの間影響を受けていたかを得るには、以下のように HistoricalStatus を使用できます。

Request:

GET https://manage.office.com/api/v1.0/contoso.onmicrosoft.com/ServiceComms/HistoricalStatus?$filter=Workload%20eq%20'DynamicsCRM'

Authorization: Bearer <authorization bearer token>

応答の全文は膨大なため割愛しますが、応答の中では、メッセージセンターの識別子を含む一定期間にわたる Dynamics 365 の機能のステータスを得ることができます 。

最後に、現在の停止しているサービス、および計画されているメンテナンスのメッセージを確認できる GetMessages を紹介します。GetMessages は、タイトル、説明、メッセージテキスト、影響日、影響を受けたテナント、メッセージIDなどを返します。このメソッドは、多くの点で非常に有益です。現在の停止しているサービスの確認、計画されたメンテナンスのメッセージの確認できます。メッセージはフィルターできます(メッセージ識別子、特徴、関心領域、時間枠など)。

特定の条件でフィルタリングするためのサンプルリクエストのリファレンスを次に示します。

Requests:

Filter by Id: https://manage.office.com/api/v1.0/contoso.onmicrosoft.com/ServiceComms/Messages?$filter=Id%20eq%20'CR133521'

Filter by Message Center: https://manage.office.com/api/v1.0/contoso.onmicrosoft.com/ServiceComms/Messages?$filter=MessageType%20eq%20Microsoft.Office365ServiceComms.ExposedContracts.MessageType'MessageCenter'

Incidents: https://manage.office.com/api/v1.0/contoso.onmicrosoft.com/ServiceComms/Messages?$filter=MessageType%20eq%20Microsoft.Office365ServiceComms.ExposedContracts.MessageType'Incident'

Planned Maintenance: https://manage.office.com/api/v1.0/contoso.onmicrosoft.com/ServiceComms/Messages?$filter=MessageType%20eq%20Microsoft.Office365ServiceComms.ExposedContracts.MessageType'PlannedMaintenance'

Filter By Start Time and End Time: https://manage.office.com/api/v1.0/contoso.onmicrosoft.com/ServiceComms/Messages?$filter=StartTime%20ge%202018-04-23T00:00:00Z&EndTime%20le%202018-04-28T00:00:00Z

Filter by Workload: https://manage.office.com/api/v1.0/contoso.onmicrosoft.com/ServiceComms/Messages?$filter=Workload%20eq%20'DynamicsCRM'

現時点では、Dynamics 365 CE の現在のステータスとその機能、潜在的な劣化がテナントに与える影響の情報、アプリケーションで実行される計画的な更新とメンテナンスの計画に関する情報を提供する API があります。 API を使用するようにワークフローをスケジュールする方法と、Microsoft Flow を使用して現在のステータスとメッセージを単一のユーザーまたは配布リストに報告する電子メールを送信する方法を詳しく説明する次のブログ記事を先読みしましょう!

References: Get started with Office 365 Management APIs About Office 365 Admin Roles Office 365 Service Communications API Overview Office 365 Service Communications API Sample Code Office 365 Service Communications API Overview (preview)

Thanks and happy coding!

Ali Youssefi

====================================================

まとめ

Office 365 Service Communications API を利用すると Office 365 テナント内にあるサービスの正常性を取得できます。
次回は、実際の評価環境を利用して Dynamics 365 CE のサービス正常性を取得してみましょう。お楽しみに。

- プレミアフィールドエンジニアリング 河野 高也

※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります