ServiceNow for Microsoft Teamsの連携方法について #1

## はじめに
この記事はServiceNowアドベントカレンダー2024の12月23日分の記事として執筆しています
ServiceNow for Microsoft Teamsの連携方法について説明します。
※バージョン：Xanadu

ServiceNow for Microsoft Teamsのついて、目的や機能を確認したい方は以下の記事をご参照ください。

https://qiita.com/tomohiro_tanaka/items/05075a272716850a5aeb

## 連携方法
### プラグイン
ServiceNow for Microsoft Teamsをプラグインします。
①すべて ＞ システム定義 ＞ プラグイン
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/aa95bb51-5314-b3c9-0175-6904a7355453.png" width=50%></img>
②アプリケーションマネージャー ＞ ServiceNow for Microsoft Teams
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/f1654268-7de2-540f-516c-54f814e2e019.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/b442762b-5468-56b4-0b66-ea41670c89ef.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/35a2249d-1272-0d6c-2b93-efc52fd82b03.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/2467f3ee-5300-c40d-8e80-eda73d5a2867.png)
<table>
    <thead>
        <th>ServiceNow for Microsoft Teamsプラグインに含まれるアプリケーション</th>
    </thead>
    <tbody>
        <tr><td>IT Service Management for Microsoft 365</td></tr>
        <tr><td>HR Service Delivery for Microsoft 365</td></tr>
        <tr><td>Notify Connector for Microsoft Teams</td></tr>
        <tr><td>Meeting Extensions for Microsoft Teams</td></tr>
    </tbody>
</table>

### インストールとインテグレーション

#### 1. Azureアプリのインストール

::: note warn
インストールする前にロールを確認しましょう！
<table>
    <thead>
        <th>ServiceNow</th>
        <td>Admin, external_app_install_admin</td>
    </thead>
    <tbody>
        <th>Azure</th>
        <td>グローバル管理者</td>
    </tbody>
</table>
:::

①すべて ＞ ServiceNow for Microsoft 365 ＞ Azure アプリのインストール
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/92965420-3099-c043-6c91-300ee2c5ff63.png" width=50%></img>
②Azure アプリのインストール ＞ Microsoft Teams ＞ インストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/4a47f6f8-cf9a-5c2c-37b8-9e0191d2c076.png)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/aed16997-11bc-e350-e5b7-68a965ac0057.png" width=50%></img>
③ServiceNow for Microsoft 365の内部アプリを許可する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/e2fe21cc-1932-fbfa-8ace-620aeb52b273.png)
<table>
    <thead>
        <th>Notify コネクタ</th>
        <td>従業員が任意のタスクレコードから直接 Microsoft Teams 会議を管理および開始できるようにします。</td>
    </thead>
    <tbody>
        <th>要求ベースのチャット</th>
        <td>従業員が任意のタスクレコードでエージェントとやり取りできるようにします。やり取りの内容がServiceNowにインポートされます。</td>
    </tbody>
    <tbody>
        <th>SSO およびアクティビティの通知</th>
        <td>従業員が Microsoft Teams の [個人] タブから ServiceNow にサイレント認証できるようにします。ServiceNowのポータルにSSOアクセスできるタブを設定することができます。</td>
    </tbody>
</table>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/2b2f0a43-6e2e-ecac-f53d-1abf4355e40b.png" width=50%></img>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/66fb7078-607b-96a2-896e-cd6332662555.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/03cefc95-8fd2-37ca-3775-070caee053bb.png)

#### 2. Azureアプリのインストール：インストールされたアプリの確認
ServiceNowでインストールした3つのアプリがAzureにインストールされていることを確認します。
①Azure Portalにアクセス
https://portal.azure.com/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/0083e73a-6a31-30b5-0df8-599139f523d8.png)
②サービス「エンタープライズアプリケーション」に遷移
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/25dd12e7-61c4-cf97-39a7-b63c24224348.png)
③「Notify Connector」がインストールされていることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/cf0ca87f-5cd1-bd1e-a626-7009b1f7fb14.png)
④「Request Based Chats」がインストールされていることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/904c91d6-8e6d-a7e3-cc92-99e236aa9c88.png)
⑤「SSO and Activity Notification」がインストールされていることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/8e9fa225-9fa4-a23d-efe1-b7175d4847f2.png)

#### 3. Virtual Agentインテグレーション
①すべて ＞ 対話型インターフェース ＞ チャネルと統合
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/e04ecc2b-a301-3cbf-8bc9-98dab9013b8d.png" width=50%></img>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/a076d134-5dcc-10b4-169a-60c3b75af152.png)
②「Integrate with Now Virtual Agent」を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/ca6d0169-0013-5f5e-3f64-7cced11c8cda.png)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/98648309-02ee-e9a9-f255-ef2bcbf07c1a.png" width=50%></img>
③Now Virtual Agentをアクセス許可
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/9594bc94-85a3-6bad-ed0e-11e13796c1ec.png" width=50%></img>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/a8f82237-90b2-8ef2-0660-2ead2a0af3c7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/2e67ae14-2ca8-96d8-0764-1bec0898be95.png)
④Now Virtual AgentとAzureのTenantIDが連携されていることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/9ed9ddf2-2103-0872-91d7-4ebd9067ee5b.png)
⑤Teamsに通知が届くように設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/afc05464-cfae-d0b6-d57c-77978e3237bb.png)

#### 4. Virtual Agentインテグレーション：インストールされたアプリの確認
①Azureポータルにアクセス
https://portal.azure.com/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/a3ce2126-1357-e3e5-c754-5b1a5278d145.png)
②サービス「エンタープライズ アプリケーション」にアクセス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/b721bad6-a0b6-7c27-da63-821a923e67cf.png)
③Now Virtual Agentがインストールされたことを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/26c184ad-a187-491d-68fb-40b57b78fb00.png)

### ServiceNow for Microsoft Teamsアプリの作成及び設定
#### 1. Manifestファイル作成
①すべて ＞ ServiceNow for Microsoft Teams ＞ アプリケーションマニフェスト ＞ ServiceNow for Teams
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/e0c9de52-b079-4f94-f9d5-f727d5d28e64.png" width=50%></img>
②「新規」ボタンを押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/6e6f7e22-32b1-b38e-82a4-9b6764e6cd9e.png)
③アプリ名、バージョン、説明を設定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/7d7509a5-d4a9-f900-ac22-0fb9205bb89b.png)
④「次へ」ボタンを押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/c58cd894-f88b-4025-7062-00e3ffede61e.png)
⑤単一、複数のテナントに接続
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/762440e6-3be9-2554-372d-df015432b71d.png)
⑥タブ表示、タブ名を設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/890b63f3-924a-e491-2a90-36846036641d.png)
⑦マニフェストをダウンロードする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/eb8645e3-0d36-564a-e53b-f8f2cd2a7b22.png)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/2b26377e-c1b3-d5d2-c206-860947c431b8.png" width=50%></img>

#### 2. Manifestファイルのアップロード
##### ＜ServiceNow for Microsoft 365アプリが存在しない場合、新しいアプリをアップロードする＞
①Teams apps ＞ Manage apps ＞ Actions ＞ Upload now app
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/dc4a708c-81c5-6ed4-9492-32becc2a36be.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/73de9373-4841-cef5-5c7a-76df6c8ae981.png)
##### ＜ServiceNow for Microsoft 365アプリが存在する場合、新しいバージョンをアップロードする＞
①New versionの「Upload file」からマニフェストファイルをアップロード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/8b1310b6-25d3-47e3-59e5-d10c18107b25.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/3b877590-3985-9592-6c3a-7567e967b2b8.png)

::: note warn
注意
Microsoft Teams admin centerでmanifestファイルをアップロードした場合、反映まで1日程度かかる場合があります。
筆者の場合、翌日8:59に反映されました。
:::

### 連携確認
①「・・・」を押下し、「ServiceNow for Microsoft 365」を押下
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/0a111f7a-f586-e0a5-c18f-7790a9c00d61.png" width=50%></img>
#### チャット
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/1e4ccca0-4447-38ff-4417-a9def5f9e9b7.png)
<table>
    <thead>
        <th>コマンド</th>
        <th>内容</th>
    </thead>
    <tbody>
        <tr>
            <td>hi</td>
            <td>ボットに挨拶し、会話を開始または終了します。</td>
        </tr>
        <tr>
            <td>restart</td>
            <td>新しい会話を開始し、現在の会話を終了します。</td>
        </tr>
        <tr>
            <td>logout</td>
            <td>ServiceNowとのアカウントのリンクを解除します。<br>logout後に以下の操作ができる。
            <br>・ゲストとして利用可能。
            <br>・ServiceNowとのアカウントのリンクが可能</td>
        </tr>
        <tr>
            <td>notification</td>
            <td>通知登録または通知登録解除を行う。</td>
        </tr>
        <tr>
            <td>上記コマンド以外</td>
            <td>ユーザやナレッジ、カタログアイテム等の検索ができる</td>
        </tr>
    </tbody>
</table>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/c2c86c79-01cc-19d9-52e4-195829f831bc.png)
#### Employee Center
①タブ「Employee Center」を押下し、Employee CenterにSSOアクセス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3914791/816d4092-e27a-8750-960c-004669decd41.png)


## 参考資料
### 公式ドキュメント
[ServiceNow for Microsoft Teams および Microsoft 365](https://www.servicenow.com/docs/ja-JP/bundle/xanadu-employee-service-management/page/product/sn-teams/concept/c_ServiceNowForMSTeams.html)
→ServiceNow for Microsoft Teamsの公式ドキュメント

### デモ動画
[ServiceNow for Microsoft Teams and M365 Integration](https://www.youtube.com/watch?v=ZPsfBcf0P8s)
→ServiceNow for Microsoft Teamsのセットアップから簡単なデモまで確認できる動画
└22:20：セットアップ手順

[ServiceNow for Microsoft Teams: Simple Use Cases and How to Get Started](https://www.youtube.com/watch?v=6P7oIqRds0Y)
→ServiceNow for Microsoft Teamsの利用方法について説明する動画

### API権限
[API Permissions related to Microsoft Teams integration: community](https://www.servicenow.com/community/ms-teams-articles/api-permissions-related-to-microsoft-teams-integration/ta-p/2314414)
[API Permissions related to Microsoft Teams integration: knowledge](https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB1156873)
[要求ベースのチャットとSSOのためのServiceNow for Microsoft Teams の統合のAPI権限](https://www.servicenow.com/docs/ja-JP/bundle/xanadu-employee-service-management/page/product/sn-teams/reference/request-based-chat-api-permissions.html)
[通知コネクタおよびMeeting拡張機能のためのServiceNow for Microsoft Teams統合のAPI権限](https://www.servicenow.com/docs/ja-JP/bundle/xanadu-employee-service-management/page/product/notify2/reference/nc-meeting-ext-api-permissions.html)
→以下のアプリのAPI権限について記載されている記事
　・Virtual Agent for Microsoft Teams
　・Notify for Microsoft Teams
　・Request Based Chat
　・Tab SSO

### セキュリティ関連
[ServiceNowとMicrosoft Teamsのインテグレーションについて、セキュリティ観点で説明する記事](https://www.servicenow.com/company/trust/privacy/faq.html?state=seamless#introduction%20)
→日本語要約
<pre>ServiceNowとMicrosoft Teamsのインテグレーションは、セキュリティとユーザーのプライバシーに強く焦点を当てて設計されています。
APIの権限を慎重に管理し、強固なセキュリティ対策を実施することで、ServiceNowはTeamsから受信したデータが適切に処理されることを保証し、
不正アクセスやデータ漏洩に関連するリスクを最⼩限に抑えます。この慎重な管理により、組織は機密情報の管理を維持しながら、
Teamsのコラボレーション機能を活⽤することができます。

·データ管理とAPIパーミッション
Microsoft Teamsと統合する場合、ServiceNowはデータへのアクセスと管理⽅法を規定する特定のAPIパーミッションを必要とします。
これらのパーミッションは、委任パーミッションとアプリケーションパーミッションに分類され、それぞれ異なる⽬的で使⽤されます：
1. 委任パーミッション
これらのパーミッションは、ログインしているユーザーの代わりにアプリケーションが動作することを許可します。
例えば、以下のようなものがあります：
User.Read： User.Read: アプリがユーザーのプロフィール情報を読むことを許可します。
Chat.ReadWrite： Teamsからリクエストベースのチャットをインポートし、ユーザーに代わってメッセージを送信できるようにします。
Files.Read.All：ユーザーがすでにアクセス権を持っているファイルへのアクセスを許可し、機密情報を許可されたユーザーのみが利⽤できるようにします
。
2. アプリケーション権限
これらのパーミッションは、アプリケーションがユーザーの介⼊なしにアクションを実⾏することを許可します。例として以下が挙げられます：
Users.Read.All：アプリが組織内のユーザーの詳細を取得できるようにする。
OnlineMeetings.ReadWrite.All： オンラインミーティングの作成と管理に必要です。
Calls.InitiateGroupCall.All：ボットに代わって通話に参加者を招待できます。

·セキュリティ対策
ServiceNowは、MS Teamsから受信したデータを効果的に管理するために、いくつかのセキュリティプロトコルを実装しています：
アクセスコントロール： 統合により、チャットやミーティングに参加しているユーザのみが関連データにアクセスできるようになります。
例えば、エージェントがTeamsの特定のファイルにアクセスできない場合、それらのファイルをServiceNowにインポートすることはできません。
トークン管理： ServiceNowは、各ユーザのアクセストークンを安全に保管し、何度もログインプロンプトが表⽰されることなく、
シームレスな再認証を可能にします。このメカニズムには、セッションの有効性を維持するためのトークン更新の規定も含まれています。
なりすまし防⽌： なりすましに関連するリスクを軽減するために、ServiceNowは、ユーザがシステム内で他のユーザになりすまそうとしていることを検出した場合、特定のインポート機能を無効にします。

·データの流れと使⽤：Microsoft Teamsのデータは主に以下の⽬的で使⽤されます：
リクエストベースのチャット： ServiceNowはTeamsからチャットをインポートし、ServiceNowプラットフォーム内で直接サービスリクエストを促進します。
ミーティング管理： 統合により、ServiceNowから直接ミーティングを管理できるようになり、Teamsの機能を活⽤しながら、
トラッキングとレポート作成のために関連データをServiceNowに戻すことができます。
</pre>