Microsoft Teams

このドキュメントでは、Microsoft Teams を Google Security Operations と統合する方法について説明します。

ユースケース

Microsoft Teams の統合では、Google SecOps の機能を使用して、次のユースケースをサポートしています。

  • インシデント通信を自動化する: 不審なアクティビティが検出されたときに、特定の Teams チャネルにリアルタイムのアラートと通知を送信します。

  • インタラクティブなレスポンスを有効にする: ハンドブックを使用して、Teams でユーザーやアナリストに直接質問し、その回答に基づいてアクションを自動化します。

  • インシデントのコラボレーションを促進する: 優先度の高いインシデント専用のチャネルまたはグループ チャットを自動的に作成し、メンバーのアクセスを管理します。

  • ユーザー アクティビティを確認する: ユーザーにダイレクト メッセージを送信して、ログインやファイル アクセスなどのアクションを確認し、フィードバックに基づいてケースの詳細を更新します。

  • ユーザー コンテキストを拡充する: ユーザー プロフィールとチーム メンバーシップ情報を取得して、調査中にロールと権限を特定できるようにします。

Google Security Operations と連携するように Microsoft Teams の統合を構成する

  1. 統合構成に使用するアカウントで Microsoft Teams ライセンスが有効になっていることを確認します。これを行うには、Microsoft 管理センターに移動し、必要なユーザーに適用されているライセンスを確認します。

    Microsoft 管理センター - Microsoft Teams ユーザーに適用されるライセンス

  2. 必要なユーザーにライセンスがあることを確認したら、Microsoft Teams 用のアプリの作成を開始できます。まず、[Azure Active Directory] > [アプリの登録] に移動します。

    Microsoft 管理センター - [アプリの登録] タブ

  3. [New Registration] をクリックして、次の情報を入力します。

    • Teams アプリの名前
    • リダイレクト URI: 「https://localhost」

    リダイレクト URI は後で必要になるため、どこかに保存しておいてください。

  4. [概要] ページに移動して、次の情報をコピーします。

    • アプリケーション(クライアント)ID: 統合構成の「クライアント ID」パラメータに対応します。
    • ディレクトリ(テナント)ID: 統合構成の「テナント」パラメータに対応します。

    Microsoft 管理センター - Microsoft Teams の概要ページ

  5. 必要な権限を追加します。適用される権限はすべて「委任」であり、次のようになります。

    必要なアプリの権限を追加する

    権限に対する管理者の同意を付与してください。

  6. [証明書とシークレット] タブに移動し、新しいクライアント シークレットを追加します。クライアント シークレットが生成されたら、[値] 列からデータをコピーする必要があります。この値は、統合構成の「クライアント シークレット」パラメータに必要です。

  7. Google SecOps SOAR の構成ページに移動し、次のパラメータを入力します。

    • クライアント ID
    • クライアント シークレット
    • リダイレクト URI
    • テナント

    「更新トークン」パラメータのプレースホルダ文字列を入力し、構成を保存します。

    Microsoft Teams の統合の初期構成

  8. [Cases] タブに移動して、いずれかのケースを開きます。ケースがない場合は、ケースをシミュレートできます。

    ケース シミュレーション

  9. ケース内のアラートを選択し、[手動での対応] をクリックします。

    アラートの詳細ウィンドウ - [Manual Action] ボタン

  10. Microsoft Teams 統合に移動し、[Get Authorization] アクションを実行します。このアクションにより、アプリの認証に使用されるリンクが生成されます。

    Get Authorization アクション

  11. 結果を確認するには、[Case Wall] タブに移動して [View Results] をクリックします。

    [結果を表示] ボタン

    次のような出力が表示されます。

    結果を表示する

  12. アクションによって表示されたリンクをクリックします。この統合に使用するユーザーでログインしていることを確認します。ブラウザでリンクを開くと、別のページにリダイレクトされます。このページは次のようになります。 https://localhost/?code=0.ATwAylKP1BpbCEeO0…&session_state=a149d18b-4131-4649-8956-2f0d09a98743# Copy everything till "&session_state"(例: https://localhost/?code=0.ATwAylKP1BpbCEeO0…)。

  13. 「トークンを生成」アクションを実行します。

    トークン生成アクション

  14. [Case Wall] タブに移動して結果を確認します。出力メッセージにトークンが表示されます。このトークンをコピーして、[更新トークン] パラメータに貼り付けます。

    Get Authorization アクション - 更新トークンの値

  15. すべてが正しく行われると、緑色のチェックマークが表示されます。

    Microsoft Teams の統合構成を完了しました

統合のパラメータ

次のパラメータを使用して統合を構成します。

パラメータ名 種類 デフォルト 必須 説明
インスタンス名 文字列 なし いいえ 統合を構成するインスタンスの名前。
説明 文字列 なし いいえ インスタンスの説明。
クライアント ID 文字列 なし ○ なし
シークレット ID パスワード なし ○ なし
テナント 文字列 なし ○ なし
更新トークン パスワード なし ○ なし
リダイレクト URL 文字列 http://localhost いいえ 統合の認証に使用するリダイレクト URL を指定します。デフォルト値は http://localhost です。このパラメータは、「Get Authorization」アクションと「Generate Token」アクションに影響します。

Google SecOps で統合を構成する方法については、統合を構成するをご覧ください。

必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できます。複数のインスタンスを構成してサポートする方法の詳細については、複数のインスタンスのサポートをご覧ください。

操作

アクションの詳細については、 デスクから保留中のアクションに対応するとケースで手動アクションを実行するをご覧ください。

応答を待つ

アクションは、指定されたメッセージで想定される返信を待ちます。

このアクションは非同期で実行されます。必要に応じて、Google SecOps IDE でスクリプト タイムアウト値を調整します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
チーム名 文字列 なし はい チームの名前を指定します。
チャンネル名 文字列 なし はい チャンネルの名前を指定します。
メッセージ ID 文字列 なし はい 返信が期待されるメッセージの ID を指定します。
想定される回答 文字列 なし はい

想定される返信のテキストを指定します。

この値が指定されていない場合、アクションは返信時に実行を停止します。

待機方法 DDL

最初の返信を確認する

値は次のいずれかです。

  • 最初の返信を確認する
  • タイムアウトまで待機
いいえ

アクションの待機方法を指定します。

[Check First Reply] が選択されている場合、このアクションは最初の返信を返すか、期待される値と比較します。

[Wait Till Timeout] が選択されている場合、アクションはタイムアウトに達するまで期待値を待機するか、タイムアウト期間中に送信されたすべてのメッセージを返します。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False

トークンを生成

前の手順で受け取った認可 URL を使用してアクセス トークンを取得します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
認証 URL 文字列 なし ○ 前の手順で受け取った認証 URL を使用して、アクセス トークンをリクエストします。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_connected True/False is_connected:False

承認の取得

アクションを実行し、受信した URL にアクセスします。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
リダイレクト URL 文字列 なし ○ 前の手順で受け取った認証 URL を使用して、アクセス トークンをリクエストします。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_connected 正しい / 誤り is_connected:false

チーム ID を取得する

特定のチームのプロパティを取得します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
チーム名 文字列 なし はい チームの名前。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False

ユーザーの詳細を取得する

特定のユーザーのプロパティと関係を取得します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
ユーザー名 文字列 なし はい Microsoft Teams のユーザー名

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
{
    "isResourceAccount": null,
    "mailNickname": "username.co#EXT#",
    "surname": null,
    "deletedDateTime": null,
    "assignedLicenses": [{
        "skuId": "16ddbbfc-09ea-4de2-b1d7-312db6112d70",
        "disabledPlans": []
    }],
    "userPrincipalName": "username.co#EXT#@tenant.onmicrosoft.com",
    "faxNumber": null,
    "consentProvidedForMinor": null,
    "userType": "Member",
    "officeLocation": null,
    "usageLocation": "IL",
    "city": null,
    "employeeId": null,
    "onPremisesImmutableId": null,
    "preferredLanguage": null,
    "streetAddress": null,
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users/$entity",
    "id": "5e457a85-a705-4b65-8a9f-3a3d2ad7715c",
    "state": null,
    "businessPhones": [],
    "postalCode": null,
    "mail": "john_doe@example.com",
    "onPremisesSamAccountName": null,
    "onPremisesLastSyncDateTime": null,
    "accountEnabled": true,
    "mobilePhone": null,
    "refreshTokensValidFromDateTime": "2018-11-12T13:28:53Z",
    "companyName": null,
    "deviceKeys": [],
    "jobTitle": null,
    "preferredDataLocation": null,
    "showInAddressList": false,
    "department": null,
    "proxyAddresses": ["SMTP:mail"],
    "externalUserStateChangeDateTime": "2018-11-12T13:29:41Z",
    "onPremisesProvisioningErrors": [],
    "legalAgeGroupClassification": null,
    "onPremisesSyncEnabled": null,
    "onPremisesExtensionAttributes": {
        "extensionAttribute4": null,
        "extensionAttribute5": null,
        "extensionAttribute6": null,
        "extensionAttribute7": null,
        "extensionAttribute12": null,
        "extensionAttribute1": null,
        "extensionAttribute2": null,
        "extensionAttribute3": null,
        "extensionAttribute10": null,
        "extensionAttribute11": null,
        "extensionAttribute8": null,
        "extensionAttribute9": null,
        "extensionAttribute14": null,
        "extensionAttribute15": null,
        "extensionAttribute13": null
    },
    "assignedPlans": [{
        "capabilityStatus": "Enabled",
        "servicePlanId":
        "617d9209-3b90-4879-96e6-838c42b2701d",
        "service": "MicrosoftCommunicationsOnline",
        "assignedDateTime": "2018-11-12T13:28:57Z"
    }, {
        "capabilityStatus": "Enabled",
        "servicePlanId": "902b47e5-dcb2-4fdc-858b-c63a90a2bdb9",
        "service": "SharePoint",
        "assignedDateTime": "2018-11-12T13:28:57Z"
    }, {
        "capabilityStatus": "Enabled",
        "servicePlanId": "4fa4026d-ce74-4962-a151-8e96d57ea8e4",
        "service": "TeamspaceAPI",
        "assignedDateTime": "2018-11-12T13:28:57Z"
    }],
    "passwordProfile": null,
    "passwordPolicies": null,
    "externalUserState": "Accepted",
    "otherMails": ["mail"],
    "displayName": "name",
    "imAddresses": [],
    "provisionedPlans": [{
        "capabilityStatus": "Enabled",
        "provisioningStatus": "Success",
        "service": "SharePoint"
    }],
    "createdDateTime": "2018-11-12T13:28:53Z",
    "country": null,
    "onPremisesDistinguishedName": null,
    "onPremisesSecurityIdentifier": null,
    "onPremisesDomainName": null,
    "onPremisesUserPrincipalName": null,
    "givenName": null,
    "ageGroup": null
}

チャネルの一覧表示

特定のチームに存在するすべてのチャネルの詳細を取得します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
チーム名 文字列 なし はい チームの名前。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
all_channels_details なし なし

チームを一覧表示する

すべてのチームの詳細を取得します。

パラメータ

このアクションには入力パラメータがありません。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
チーム間の連携を促進する なし なし
JSON の結果
[
    {
        "mailNickname": "Test",
        "classification": null,
        "deletedDateTime": null,
        "renewedDateTime": "2018-11-12T15:03:50Z",
        "onPremisesProvisioningErrors": [],
        "membershipRuleProcessingState": null,
        "preferredLanguage": null,
        "expirationDateTime": null,
        "id": "43b559d5-f63d-47dd-9e6c-b3470b6446ee",
        "theme": null,
        "preferredDataLocation": null,
        "mail": "john_doe@example.com",
        "membershipRule": null,
        "onPremisesLastSyncDateTime": null,
        "description": "Test",
        "securityEnabled": false,
        "proxyAddresses": ["SPO:SPO_eaf75319-582a-46cf-8812-9e787d757c4e@SPO_a4a936ec-735f-488a-bfc0-7665f87aab47", "SMTP:Test@tenant.onmicrosoft.com"],
        "visibility": "Public",
        "resourceProvisioningOptions": ["Team"],
        "displayName": "Test",
        "groupTypes": ["Unified"],
        "onPremisesSyncEnabled": null,
        "createdDateTime": "2018-11-12T15:03:50Z",
        "resourceBehaviorOptions": ["HideGroupInOutlook", "SubscribeMembersToCalendarEventsDisabled", "WelcomeEmailDisabled"],
        "onPremisesSecurityIdentifier": null,
        "mailEnabled": true
    }, {
        "mailNickname": "user",
        "classification": null,
        "deletedDateTime": null,
        "renewedDateTime": "2018-11-28T13:46:50Z",
        "onPremisesProvisioningErrors": [],
        "membershipRuleProcessingState": null,
        "preferredLanguage": null,
        "expirationDateTime": null,
        "id": "67149c85-7139-4062-bfae-059d18ee7e5d",
        "theme": null,
        "preferredDataLocation": null,
        "mail": "john_doe@example.com",
        "membershipRule": null,
        "onPremisesLastSyncDateTime": null,
        "description": "user",
        "securityEnabled": false, "proxyAddresses": ["SPO:SPO_781470a6-2db5-454d-a8e3-71752b3b829e@SPO_a4a936ec-735f-488a-bfc0-7665f87aab47", "SMTP:user@tenant.onmicrosoft.com"],
        "visibility": "Public",
        "resourceProvisioningOptions": ["Team"],
        "displayName": "user",
        "groupTypes": ["Unified"],
        "onPremisesSyncEnabled": null,
        "createdDateTime": "2018-11-28T13:46:50Z",
        "resourceBehaviorOptions": ["HideGroupInOutlook", "SubscribeMembersToCalendarEventsDisabled", "WelcomeEmailDisabled"],
        "onPremisesSecurityIdentifier": null,
        "mailEnabled": true
    }

ユーザーの一覧表示

すべてのユーザーの詳細を取得します。

パラメータ

このアクションには入力パラメータがありません。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
ユーザー なし なし
JSON の結果
[{
    "mailNickname": "Test",
    "classification": null,
    "deletedDateTime": null,
    "renewedDateTime": "2018-11-12T15:03:50Z",
    "onPremisesProvisioningErrors": [],
    "membershipRuleProcessingState": null,
    "preferredLanguage": null,
    "expirationDateTime": null,
    "id": "43b559d5-f63d-47dd-9e6c-b3470b6446ee",
    "theme": null,
    "preferredDataLocation": null,
    "mail": "john_doe@example.com",
    "membershipRule": null,
    "onPremisesLastSyncDateTime": null,
    "description": "Test",
    "securityEnabled": false,
    "proxyAddresses": ["SPO:SPO_eaf75319-582a-46cf-8812-9e787d757c4e@SPO_a4a936ec-735f-488a-bfc0-7665f87aab47", "SMTP:Test@tenant.onmicrosoft.com"],
    "visibility": "Public",
    "resourceProvisioningOptions": ["Team"],
    "displayName": "Test",
    "groupTypes": ["Unified"],
    "onPremisesSyncEnabled": null,
    "createdDateTime": "2018-11-12T15:03:50Z",
    "resourceBehaviorOptions": ["HideGroupInOutlook", "SubscribeMembersToCalendarEventsDisabled", "WelcomeEmailDisabled"],
    "onPremisesSecurityIdentifier": null,
    "mailEnabled": true
}, {
    "mailNickname": "user",
    "classification": null,
    "deletedDateTime": null,
    "renewedDateTime": "2018-11-28T13:46:50Z",
    "onPremisesProvisioningErrors": [],
    "membershipRuleProcessingState": null,
    "preferredLanguage": null,
    "expirationDateTime": null,
    "id": "67149c85-7139-4062-bfae-059d18ee7e5d",
    "theme": null,
    "preferredDataLocation": null,
    "mail": "john_doe@example.com",
    "membershipRule": null,
    "onPremisesLastSyncDateTime": null,
    "description": "user",
    "securityEnabled": false,
    "proxyAddresses": ["SPO:SPO_781470a6-2db5-454d-a8e3-71752b3b829e@SPO_a4a936ec-735f-488a-bfc0-7665f87aab47", "SMTP:user@tenant.onmicrosoft.com"],
    "visibility": "Public",
    "resourceProvisioningOptions": ["Team"],
    "displayName": "user",
    "groupTypes": ["Unified"],
    "onPremisesSyncEnabled": null,
    "createdDateTime": "2018-11-28T13:46:50Z",
    "resourceBehaviorOptions": ["HideGroupInOutlook", "SubscribeMembersToCalendarEventsDisabled", "WelcomeEmailDisabled"],
    "onPremisesSecurityIdentifier": null,
    "mailEnabled": true
}]

Ping

接続をテストします。

パラメータ

このアクションには入力パラメータがありません。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_connected True/False is_connected:False

メッセージを送信

特定のチャネルにメッセージを送信します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
チーム名 文字列 なし はい チーム名。
チャンネル名 文字列 なし はい チャンネル名。
メッセージ 文字列 なし はい 。

実行

このアクションはすべてのエンティティに対して実行されます。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
[{
    "@odata.context":"https://graph.microsoft.com/beta/$metadata#teams('192c0699-fad2-4d02-88a2-84efd6369894')/channels('19%3Ae3acbb17a8754cae9df724f493b5342f%40thread.tacv2')/messages/$entity",
    "id":"1601372154742",
    "replyToId":null,
    "etag":"1601372154742",
    "messageType":"message",
    "createdDateTime":"2020-09-29T09:35:54.742Z",
    "lastModifiedDateTime":"2020-09-29T09:35:54.742Z",
    "lastEditedDateTime":null,
    "deletedDateTime":null,
    "subject":null,
    "summary":null,
    "chatId":null,
    "importance":"normal",
    "locale":"en-us",
    "webUrl":"https://teams.microsoft.com/l/message/19%3Ae3acbb17a8754cae9df724f493b5342f%40thread.tacv2/1601372154742?groupId=192c0699-fad2-4d02-88a2-84efd6369894&tenantId=d48f52ca-5b1a-4708-8ed0-ebb98a26a46a&createdTime=1601372154742&parentMessageId=1601372154742",
    "policyViolation":null,
    "from":{
        "application":null,
        "device":null,
        "conversation":null,
        "user":{
            "id":"b786d3cf-e97d-4511-b61c-0559e9f4da75",
            "displayName":"u05D2'u05D9u05D9u05DEu05E1 u05D1u05D5u05E0u05D3",
            "userIdentityType":"aadUser"
        }},
    "body":{
        "contentType":"text",
        "content":"Hello there"
    },
    "channelIdentity":{
        "teamId":"192c0699-fad2-4d02-88a2-84efd6369894",
        "channelId":"19:e3acbb17a8754cae9df724f493b5342f@thread.tacv2"
    },
    "attachments":[],
    "mentions":[],
    "reactions":[]
}]

ユーザー メッセージを送信する

Microsoft Teams でユーザーにチャット メッセージを送信します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
ユーザー識別子 CSV なし いいえ

メッセージを送信するユーザー ID のカンマ区切りのリストを指定します。

注: このアクションは、このパラメータで指定された有効なエンティティと値を組み合わせて、それらすべてにメッセージを送信します。

テキスト 文字列 なし はい メッセージの内容を指定します。
応答を待つ チェックボックス オン はい 有効にすると、すべてのエンティティからの返信が利用可能になるまでアクションが待機します。
コンテンツ タイプ DDL オン はい メッセージのコンテンツ タイプを指定します。
ユーザー選択 DDL

テキスト

値は次のいずれかです。

  • テキスト
  • HTML

エンティティとユーザー識別子から

値は次のいずれかです。

  • エンティティとユーザー識別子から
  • エンティティから
  • ユーザー識別子から

ユーザーに使用する選択の種類を指定します。

[From Entities & User Identifiers] が選択されている場合、アクションは関連するエンティティと [User Identifiers] パラメータで指定されたユーザー識別子の両方を検索します。

[エンティティから] が指定されている場合、アクションは関連するエンティティでのみ機能し、[ユーザー識別子] パラメータで指定された値は無視されます。

[ユーザー識別子から] を選択した場合、アクションは [ユーザー識別子] の値でのみ機能し、[ユーザー識別子] パラメータが必須になります。

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー名
  • メールアドレス

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
{
    "id": "1632820681737",
    "replyToId": null,
    "etag": "1632820681737",
    "messageType": "message",
    "createdDateTime": "2021-09-28T09:18:01.737Z",
    "lastModifiedDateTime": "2021-09-28T09:18:01.737Z",
    "lastEditedDateTime": null,
    "deletedDateTime": null,
    "subject": null,
    "summary": null,
    "chatId": "19:5af81bea-9c9f-4f9f-8745-9df1fdba8e12_b786d3cf-e97d-4511-b61c-0559e9f4da75@unq.gbl.spaces",
    "importance": "normal",
    "locale": "en-us",
    "webUrl": null,
    "channelIdentity": null,
    "policyViolation": null,
    "from": {
        "application": null,
        "device": null,
        "user": {
            "id": "b786d3cf-e97d-4511-b61c-0559e9f4da75",
            "displayName": "ג'יימס בונד",
            "userIdentityType": "aadUser"
        }
    },
    "body": {
        "contentType": "text",
        "content": "qqq"
    },
    "attachments": [],
    "mentions": [],
    "reactions": []
}
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。


201 ステータス コードが報告された場合(is_success = true): 「Microsoft Teams で次のユーザーにメッセージが正常に送信されました: {entity.identifier}。」

エンティティで 1 つのチャットが見つからない場合(is_success = true): 「アクションは、Microsoft Teams の次のユーザーにメッセージを送信できませんでした: {entity.identifier}。」

すべてのチャットがエンティティで見つからない場合(is_success = false): 「Microsoft Teams で指定されたユーザーにメッセージが送信されませんでした。」

非同期メッセージ:

「次のユーザーからの返信を待機しています: {entity.identifier}」

アクションが失敗し、Playbook の実行を停止します

重大なエラーが報告された場合: 「アクション「ユーザー メッセージを送信」の実行エラー。理由: {0}''.format(error.Stacktrace)

タイムアウトの場合: 「アクション「ユーザー メッセージの送信」の実行エラー。理由: メッセージは送信されましたが、{entity.identifier} のユーザーからの返信を待機している間にアクションがタイムアウトしました。」IDE でタイムアウトを長くして、もう一度お試しください。注: このアクションを再試行すると、別のメッセージが送信されます。

全般

チャネルの作成

Microsoft Teams でチャネルを作成します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
チーム名 文字列 なし はい チャネルを作成するチームの名前を指定します。
チャンネル名 文字列 なし はい チャネルの一意の名前を指定します。
チャネルタイプ DDL

Standard

有効な値:

  • 標準
  • 非公開
はい 作成する必要があるチャネルのタイプを指定します。標準チャンネルにはチームのすべてのメンバーがアクセスできますが、プライベート チャンネルにはユーザーを追加する必要があります。
説明 文字列 なし いいえ チャンネルの説明を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#teams('c084d2c7-a7e6-47a5-921b-0c32c3ab41d1')/channels/$entity",
    "id": "19:92ce922c1790450fae81f6713dbffbe3@thread.tacv2",
    "createdDateTime": "2021-11-18T11:37:39.8186647Z",
    "displayName": "Architecturea Discussion",
    "description": null,
    "isFavoriteByDefault": false,
    "email": "",
    "webUrl": "https://teams.microsoft.com/l/channel/19%3a92ce922c1790450fae81f6713dbffbe3%40thread.tacv2/Architecturea+Discussion?groupId=c084d2c7-a7e6-47a5-921b-0c32c3ab41d1&tenantId=d48f52ca-5b1a-4708-8ed0-ebb98a26a46a",
    "membershipType": "standard"
}
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。


201 ステータス コードが報告された場合(is_success = true): 「Microsoft Teams のチーム「{team name}」にチャンネル「{channel name}」が正常に作成されました。」

アクションが失敗し、Playbook の実行を停止します

重大なエラーが報告された場合: 「アクション「チャンネルの作成」の実行エラー。理由: {0}''.format(error.Stacktrace)

チームが見つからない場合: 「"チャンネルの作成"という操作の実行中にエラーが発生しました。理由: {team, name} という名前のチームが Microsoft Teams で見つかりませんでした。

400 ステータス コードが報告された場合:「アクション「チャンネルの作成」の実行エラー。理由: {innerError/message}。

全般

チャンネルの削除

Microsoft Teams でチャネルを削除します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
チーム名 文字列 なし はい チャネルを削除するチームの名前を指定します。
チャンネル名 文字列 なし はい 削除する必要があるチャネルの名前を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。


204 ステータス コードが報告された場合(is_success = true): 「Microsoft Teams のチーム「{team name}」のチャンネル「{channel name}」が正常に削除されました。」

チャンネルが見つからない場合(is_success = true): 「チャンネル「{channel name}」は、Microsoft Teams のチーム「{team name}」にすでに存在していませんでした。」

アクションが失敗し、Playbook の実行を停止します

重大なエラーが報告された場合: 「アクション「チャンネルの削除」の実行エラー。理由: {0}」.format(error.Stacktrace)

チームが見つからない場合: 「"チャンネルの削除"という操作の実行中にエラーが発生しました。理由: {team, name} という名前のチームが Microsoft Teams で見つかりませんでした。

全般

チャンネルにユーザーを追加する

Microsoft Teams でプライベート チャネルにユーザーを追加します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
チーム名 文字列 なし はい チャネルを検索するチームの名前を指定します。
チャンネル名 文字列 なし はい ユーザーを追加するチャンネルの名前を指定します。

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー名
  • メールアドレス

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。


1 つのエンティティについて 201 ステータス コードが報告された場合(is_success = true): 「Microsoft Teams のチーム「{team name}」からチャンネル「{Channel Name}」に次のユーザーが正常に追加されました: {entity.identifier}」

1 つのエンティティでユーザーが見つからない場合(is_success = true): 「アクションは、Microsoft Teams で次のユーザーを見つけることができませんでした: {entity.identifier}」

1 つのエンティティについて 400 ステータス コードが報告された場合(is_success = true): 「アクションは、Microsoft Teams のチーム「{team name}」からチャンネル「{Channel Name}」に次のユーザーを追加できませんでした: {entity.identifier}。ユーザーがチーム「{team name}」に属していることを確認してください。

すべてのユーザーが見つからない場合(is_success = false):「指定されたユーザーが Microsoft Teams で見つかりませんでした。」

すべてに対して 400 ステータス コードが報告された場合(is_success = false): 「アクションは、Microsoft Teams のチーム「{team name}」からチャンネル「{Channel Name}」に指定されたユーザーを追加できませんでした。ユーザーがチーム「{team name}」に属していることを確認してください。

アクションが失敗し、Playbook の実行を停止します

重大なエラーが報告された場合: 「アクション「チャンネルにユーザーを追加」の実行エラー。理由: {0}''.format(error.Stacktrace)

チームが見つからない場合: 「"チャンネルにユーザーを追加"という操作の実行中にエラーが発生しました。理由: {team, name} という名前のチームが Microsoft Teams で見つかりませんでした。

チャンネルが見つからない場合: 「"チャンネルにユーザーを追加"という操作の実行中にエラーが発生しました。理由: {channel name} という名前のチャネルが Microsoft Teams で見つかりませんでした。

チャンネルの「membershipType」が「private」でない場合: 「アクション「チャンネルにユーザーを追加」の実行エラー。理由: {チャンネル名} という名前のチャンネルは非公開ではありません。

全般

チャンネルからユーザーを削除する

Microsoft Teams のプライベート チャネルからユーザーを削除します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
チーム名 文字列 なし はい チャネルを検索するチームの名前を指定します。
チャンネル名 文字列 なし はい ユーザーを削除するチャネルの名前を指定します。

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー名
  • メールアドレス(メールの正規表現に一致するユーザー名)

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。


1 つのエンティティについて 201 ステータス コードが報告された場合(is_success = true): 「Microsoft Teams で、チーム「{team name}」のチャンネル「{Channel Name}」から次のユーザーが正常に削除されました: {entity.identifier}」

ユーザーがチャンネルに含まれていない場合(is_success = true): 「次のユーザーは、Microsoft Teams のチーム「{チーム名}」のチャンネル「{チャンネル名}」にすでに含まれていませんでした: {entity.identifier}」

すべてのユーザーがチャンネルに含まれていない場合(is_success = true):「指定されたユーザーはいずれも、Microsoft Teams のチーム「{team name}」のチャンネル「{Channel Name}」に含まれていませんでした。」

アクションが失敗し、ハンドブックの実行が停止します。

重大なエラーが報告された場合: 「アクション「チャンネルからユーザーを削除」の実行エラー。理由: {0}''.format(error.Stacktrace)

チームが見つからない場合: 「"チャンネルからユーザーを削除"という操作の実行中にエラーが発生しました。理由: {team, name} という名前のチームが Microsoft Teams で見つかりませんでした。

チャンネルが見つからない場合: 「"チャンネルからユーザーを削除"という操作の実行中にエラーが発生しました。理由: {channel name} という名前のチャネルが Microsoft Teams で見つかりませんでした。

チャンネルの「membershipType」が「private」でない場合: 「アクション「チャンネルからユーザーを削除」の実行エラー。理由: {チャンネル名} という名前のチャンネルは非公開ではありません。

全般

チャットを作成

Microsoft Teams でユーザー チャットを作成します。

パラメータ

このアクションには入力パラメータがありません。

実行

このアクションは次のエンティティに対して実行されます。

  • ユーザー名
  • メールアドレス(メールの正規表現に一致するユーザー名)

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#chats/$entity",
    "id": "19:b786d3cf-e97d-4511-b61c-0559e9f4da75_cb786032-1ba9-439a-b714-99286e185921@unq.gbl.spaces",
    "topic": null,
    "createdDateTime": "2021-10-13T11:24:15.696Z",
    "lastUpdatedDateTime": "2021-10-13T11:24:15.696Z",
    "chatType": "oneOnOne"
}
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

201 ステータス コードが報告された場合(is_success = true): 「Microsoft Teams で次のユーザーとのチャットが正常に作成されました: {entities}」

ユーザーが見つからない場合(is_success = true):「次のユーザーが Microsoft Teams で見つかりませんでした: {entities}」

すべてのユーザーが見つからない場合(is_success = false):「指定されたユーザーが Microsoft Teams で見つかりませんでした: {entities}」

1 つのエンティティについて 400 ステータス コードが報告された場合(is_success = true): 「アクションは、Microsoft Teams で次のユーザーとのチャットを作成できませんでした: {entities}」

すべてのエンティティに対して 400 ステータス コードが報告された場合(is_success = false): 「アクションは、Microsoft Teams で指定されたユーザーとのチャットを作成できませんでした。」

アクションが失敗し、ハンドブックの実行が停止します。

重大なエラーが報告された場合: 「アクション「チャットの作成」の実行エラー。理由: {0}」.format(error.Stacktrace)

全般

チャットを一覧表示する

Microsoft Teams で利用可能なチャットを一覧表示します。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
チャットの種類 DDL

すべて

有効な値:

  • すべて
  • グループ チャット
  • 会議チャット
  • 1 対 1 のチャット
いいえ 返されるチャットの種類を指定します。
フィルタ キー DDL

1 つ選択

有効な値:

  • トピック
  • メンバーの表示名
  • メンバーのメール
いいえ チャットのフィルタリングに使用するキーを指定します。
フィルタ ロジック DDL

指定なし

有効な値:

  • 指定なし
  • 等しい
  • Contains
いいえ 適用するフィルタ ロジックを指定します。フィルタリング ロジックは、「フィルタ キー」パラメータで指定される値に基づいて機能します。
フィルタ値 文字列 なし いいえ フィルタで使用する値を指定します。「Equal」が選択されている場合、アクションは結果から完全一致を探します。「Contains」が選択されている場合、アクションはその部分文字列を含む結果を検索します。このパラメータに何も指定しない場合、フィルタは適用されません。フィルタリング ロジックは、「フィルタ キー」パラメータで指定される値に基づいて機能します。
返されるレコードの最大数 整数 50 いいえ 返されるレコード数を指定します。何も指定しない場合、アクションは 50 件のレコードを返します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
{
    "id": "19:5af81bea-9c9f-4f9f-8745-9df1fdba8e12_b786d3cf-e97d-4511-b61c-0559e9f4da75@unq.gbl.spaces",
    "topic": null,
    "createdDateTime": "2021-04-12T08:36:52.572Z",
    "lastUpdatedDateTime": "2021-09-28T09:31:58.045Z",
    "chatType": "oneOnOne",
    "members@odata.context": "https://graph.microsoft.com/v1.0/$metadata#chats('19%3A5af81bea-9c9f-4f9f-8745-9df1fdba8e12_b786d3cf-e97d-4511-b61c-0559e9f4da75%40unq.gbl.spaces')/members",
    "members": [
        {
            "@odata.type": "#microsoft.graph.aadUserConversationMember",
            "id": "MCMjZDQ4ZjUyY2EtNWIxYS00NzA4LThlZDAtZWJiOThhMjZhNDZhIyMxOTo1YWY4MWJlYS05YzlmLTRmOWYtODc0NS05ZGYxZmRiYThlMTJfYjc4NmQzY2YtZTk3ZC00NTExLWI2MWMtMDU1OWU5ZjRkYTc1QHVucS5nYmwuc3BhY2VzIyM1YWY4MWJlYS05YzlmLTRmOWYtODc0NS05ZGYxZmRiYThlMTI=",
            "roles": [
                "Owner"
            ],
            "displayName": "yuriy",
            "visibleHistoryStartDateTime": "0001-01-01T00:00:00Z",
            "userId": "5af81bea-9c9f-4f9f-8745-9df1fdba8e12",
            "email": null,
            "tenantId": "d48f52ca-5b1a-4708-8ed0-ebb98a26a46a"
        },
        {
            "@odata.type": "#microsoft.graph.aadUserConversationMember",
            "id": "MCMjZDQ4ZjUyY2EtNWIxYS00NzA4LThlZDAtZWJiOThhMjZhNDZhIyMxOTo1YWY4MWJlYS05YzlmLTRmOWYtODc0NS05ZGYxZmRiYThlMTJfYjc4NmQzY2YtZTk3ZC00NTExLWI2MWMtMDU1OWU5ZjRkYTc1QHVucS5nYmwuc3BhY2VzIyNiNzg2ZDNjZi1lOTdkLTQ1MTEtYjYxYy0wNTU5ZTlmNGRhNzU=",
            "roles": [
                "Owner"
            ],
            "displayName": "ג'יימס בונד",
            "visibleHistoryStartDateTime": "0001-01-01T00:00:00Z",
            "userId": "b786d3cf-e97d-4511-b61c-0559e9f4da75",
            "email": "james.bond@siemplifycyarx.onmicrosoft.com",
            "tenantId": "d48f52ca-5b1a-4708-8ed0-ebb98a26a46a"
        }
    ]
}
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

データが利用可能な場合(is_success = true):「Microsoft Teams で指定された条件に該当するチャットが正常に見つかりました。」

データが利用できない場合 (is_success=false):「Microsoft Teams で指定された条件に該当するチャットが見つかりませんでした。」

「フィルタ値」パラメータ フィールドが空の場合(is_success=true):

「パラメータ「フィルタ値」の値が空であるため、フィルタは適用されませんでした。」

アクションが失敗し、Playbook の実行を停止します

「フィルタ キー」パラメータが「1 つ選択」に設定され、「フィルタ ロジック」パラメータが「Equal」または「Contains」に設定されている場合:

「アクション「{action name}」の実行エラー。理由: 「フィルタキー」パラメータからフィールドを選択する必要があります。」

「返される最大レコード数」パラメータに無効な値が指定されている場合:

「アクション「{action name}」の実行エラー。理由: 「返さえる最大レコード数」に無効な値が指定されました。正の数を指定してください。

認証情報が誤っている、サーバーへの接続がないなど、致命的なエラーの場合、その他:

「アクション「{action name}」の実行エラー。理由: {0}」.format(error.Stacktrace)

一般
Case Wall テーブル

テーブル名: Available Chats

テーブル列:

  • ID - id
  • Type - chatType
  • メンバー - メンバー / ディスプレイの CSV
  • Names Topic - topic
全般

チャット メッセージを送信

Microsoft Teams でチャット メッセージを送信する。

パラメータ

パラメータの表示名 種類 デフォルト値 必須 説明
チャット ID DDL なし はい メッセージを送信するチャットの ID を指定します。
テキスト 文字列 なし はい メッセージの内容を指定します。
応答を待つ チェックボックス オン はい 有効にすると、アクションは返信があるまで待機します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
{
    "id": "1632820681737",
    "replyToId": null,
    "etag": "1632820681737",
    "messageType": "message",
    "createdDateTime": "2021-09-28T09:18:01.737Z",
    "lastModifiedDateTime": "2021-09-28T09:18:01.737Z",
    "lastEditedDateTime": null,
    "deletedDateTime": null,
    "subject": null,
    "summary": null,
    "chatId": "19:5af81bea-9c9f-4f9f-8745-9df1fdba8e12_b786d3cf-e97d-4511-b61c-0559e9f4da75@unq.gbl.spaces",
    "importance": "normal",
    "locale": "en-us",
    "webUrl": null,
    "channelIdentity": null,
    "policyViolation": null,
    "from": {
        "application": null,
        "device": null,
        "user": {
            "id": "b786d3cf-e97d-4511-b61c-0559e9f4da75",
            "displayName": "ג'יימס בונד",
            "userIdentityType": "aadUser"
        }
    },
    "body": {
        "contentType": "text",
        "content": "qqq"
    },
    "attachments": [],
    "mentions": [],
    "reactions": []
}
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ *

アクションが失敗したり、ハンドブックの実行を停止したりすることはありません。

201 ステータス コードが報告された場合(is_success = true): 「Microsoft Teams の ID {Chat ID} のチャットでメッセージが正常に送信されました。」

返信が利用可能な場合(is_success = true):「ID {Chat ID} の Microsoft Teams のチャットでメッセージを送信し、返信を受信しました。」

非同期メッセージ: 応答を待っています...

アクションが失敗し、Playbook の実行を停止します

重大なエラーが報告された場合: 「アクション「チャット メッセージを送信」の実行エラー。理由: {0}''.format(error.Stacktrace)

404 ステータス コードが報告された場合:「アクション「チャット メッセージを送信」の実行エラー。理由: Microsoft Teams で ID のチャットが見つかりませんでした。

タイムアウトが発生した場合: 「アクション「チャット メッセージを送信」の実行エラー。」理由: メッセージは送信されましたが、返信を待っている間にアクションがタイムアウトしました。IDE でタイムアウトを長くして、もう一度お試しください。注: このアクションを再試行すると、別のメッセージが送信されます。

全般

メッセージの返信を送信

Microsoft Teams でチャネル メッセージに返信を送信します。

パラメータ

パラメータ タイプ デフォルト値 必須 説明
チーム名 文字列 なし はい 返信を送信するチームを指定します。
チャンネル名 文字列 なし はい 返信を送信するチャンネルを指定します。
メッセージ ID 文字列 なし はい 返信を送信したいメッセージの ID を指定します。
コンテンツ タイプ DDL テキスト いいえ

メッセージのコンテンツ タイプを指定します。

値は次のいずれかです。

  • テキスト
  • HTML

テキスト 文字列 なし はい メッセージの内容を指定します。

実行

このアクションはエンティティに対しては実行されません。

アクションの結果

スクリプトの結果
スクリプトの結果名 値のオプション 例
is_success True/False is_success:False
JSON の結果
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#teams('192c0699-fad2-4d02-88a2-84efd6369894')/channels('19%3A4649fcf41fa5417f9aa78a5840bea442%40thread.tacv2')/messages('1686652339690')/replies/$entity",
"id": "1686653341151",
"replyToId": "1686652339690",
"etag": "1686653341151",
"messageType": "message",
"createdDateTime": "2023-06-13T10:49:01.151Z",
"lastModifiedDateTime": "2023-06-13T10:49:01.151Z",
"lastEditedDateTime": null,
"deletedDateTime": null,
"subject": null,
"summary": null,
"chatId": null,
"importance": "normal",
"locale": "en-us",
"webUrl": "https://teams.microsoft.com/l/message/19%3A4649fcf41fa5417f9aa78a5840bea442%40thread.tacv2/1686653341151?groupId=192c0699-fad2-4d02-88a2-84efd6369894&tenantId=d48f52ca-5b1a-4708-8ed0-ebb98a26a46a&createdTime=1686653341151&parentMessageId=1686652339690",
"policyViolation": null,
"eventDetail": null,
"from": {
"application": null,
"device": null,
"user": {
"@odata.type": "#microsoft.graph.teamworkUserIdentity",
"id": "b786d3cf-e97d-4511-b61c-0559e9f4da75",
"displayName": "ג'יימס בונד",
"userIdentityType": "aadUser"
}
},
"body": {
"contentType": "text",
"content": "Reply"
},
"channelIdentity": {
"teamId": "192c0699-fad2-4d02-88a2-84efd6369894",
"channelId": "19:4649fcf41fa5417f9aa78a5840bea442@thread.tacv2"
},
"attachments": [],
"mentions": [],
"reactions": []
}
Case Wall
結果のタイプ 値 / 説明 種類
出力メッセージ * アクションが失敗したり、ハンドブックの実行が停止したりすることはありません。

1 つのエンティティに対して 201 が返された場合(is_success = true):
「Microsoft Teams のメッセージに返信を正常に送信しました。」と出力されます。

アクションが失敗し、ハンドブックの実行が停止します:
重大なエラーの場合:
「アクション「メッセージ返信を送信」の実行エラー」を出力します。理由: {0}」.format(error.Stacktrace)
チームが見つからない場合:
「"メッセージ返信を送信"という操作の実行中にエラーが発生しました。理由: {team name} という名前のチームが Microsoft Teams で見つかりませんでした。スペルを確認してください。
チャンネルが見つからない場合:
「アクション「メッセージ返信を送信」の実行エラー。理由: {channel name} という名前のチャネルが Microsoft Teams で見つかりませんでした。スペルを確認してください。
レスポンスに「error」がある場合:
print 「アクション「メッセージ返信を送信」の実行エラー。理由: {error.message}。
全般

ジョブ

Google SecOps でジョブを構成するには、[レスポンス] > [ジョブ スケジューラ] に移動します。

更新トークンの更新ジョブ

更新トークン更新ジョブの目的は、統合で使用される更新トークンを定期的に更新することです。

デフォルトでは、更新トークンは 90 日ごとに期限切れになるため、期限切れになると統合が使用できなくなります。更新トークンが最新の状態に保たれるように、このジョブを 7 日または 14 日ごとに実行することをおすすめします。

ジョブの入力

ジョブを構成するには、次のパラメータを使用します。

パラメータ
ログイン API ルート 必須

Microsoft ID プラットフォームでの認証に使用される API ルート。

デフォルト値は https://login.microsoftonline.com です。

API ルート 必須

Microsoft Graph インスタンスの API ルート。

デフォルト値は https://graph.microsoft.com です。

統合環境 省略可

ジョブが更新トークンを更新する統合環境。

このパラメータは、カンマ区切りの文字列として複数の値を受け入れます。個々の値を引用符(" ")で囲みます。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。