はじめに
インストール
- Settings > Integrations に移動し、Microsoft Teams を選択します
- 「Connect」をクリックします
- テナントや対象のチームに Devin アプリをインストールするよう求められます
- 必ず自分のユーザーを連携してください。組織内のすべてのユーザーが Devin を利用するには、この手順を各自で完了する必要があります
- チームのチャネルまたはチャットで
@Devinとメンションしてセッションを開始します
注: Devin を各ユーザーに対して動作させるには、すべてのユーザーが Devin ダッシュボード (Settings > Integrations) で自分のアカウントを連携する必要があります。これにより、Devin はそのユーザーの Microsoft Teams のユーザー ID と Devin ユーザーを関連付けることができます。
Microsoft Teams から Devin を使う方法
@Devin とメンションするだけで Devin を呼び出せます。
Devin は、そのスレッド内であなたのセッションに返信します。通常の Devin チャットインターフェースと同様に、双方向にやりとりできます。
なお、Devin が誤った回答をする可能性があります。必ず回答内容を再確認してください。
Teams インラインキーワードと機能
| Keyword | Function |
|---|---|
!ask | メッセージを !ask で始めると、Devin をフル起動せずにコードベースに関する簡潔な回答を取得します |
!deep | 高度な検索を使って、より深く踏み込んだ調査結果を取得します |
mute | そのスレッド内で、以降のメッセージを Devin が見ないようにします |
unmute | 上記の状態を解除します |
(aside), !aside | Devin にそのメッセージを無視させます(スレッド内での Devin の実行に関するコメントに便利です) |
sleep | Devin をスリープ状態にします。Devin を起こすには、そのスレッドで任意のメッセージを送信してください |
archive | Devin をスリープ状態にし、さらにセッションをアーカイブします |
EXIT | セッションを終了します |
help | 利用可能なキーワードと機能のヘルプメッセージを表示します |
料金
プライバシー
認証フロー
権限の詳細
概要
- Graph(アプリケーション権限、テナント全体):検出およびインストールのオーケストレーションに使用します。
- Teams ボット RSC(チーム/チャット単位):ボットがインストールまたは参加している場所に限定して、メッセージ/メンバー/設定へのアクセスを許可します。
テナント全体の Microsoft Graph (アプリケーション) パーミッション
| Permission | 許可される内容 | 必要な理由 |
|---|---|---|
Organization.Read.All | 基本的な組織プロファイルの読み取り | アプリをインストールしているテナントを検証するため |
User.ReadBasic.All | すべてのユーザーの基本プロファイルの読み取り | メンバーの ID をマッピングし、リンクされた Teams 内のメンションを解決するため |
AppCatalog.Read.All | Teams アプリカタログの読み取り | 本アプリを特定し、インストールに必要な teamsAppId を取得するため |
TeamsAppInstallation.ReadWriteAndConsentSelfForTeam.All | 本アプリのインストール/アンインストールと RSC 付与 | Devin ダッシュボードから選択した Teams のチームにボットをインストール/削除するため |
注: テナント全体スコープの Graph を使用してメッセージ内容を読み取ることはありません。メッセージへのアクセスは、ボットがインストールされ存在しているチームに対してのみ、RSC によって付与されます。
Teams Bot Resource-Specific Consent (RSC) Permissions
| Permission | Scope | What it allows | Why we need it |
|---|---|---|---|
ChannelMessage.Read.Group | Team/Channel | アプリがインストールされているチャネルのメッセージを読み取る | チャネルでの会話を処理する(要約、トリガー、同期など) |
ChannelMessage.Send.Group | Team/Channel | アプリがインストールされているチャネルでメッセージを送信する(新規投稿およびスレッド返信) | チャネルのスレッド内のメッセージに返信し、チャンネルに積極的に更新を投稿する |
Member.Read.Group | Team/Channel | チームのメンバーシップを読み取る | ID の対応付け、権限チェック、メンションのルーティング |
TeamSettings.Read.Group | Team/Channel | チーム設定を読み取る | チームレベルのポリシーを尊重し、動作を最適化する |
ChatMember.Read.Chat | Chat | チャット参加者を読み取る | 適切に宛先指定して応答し、監査証跡をサポートする |
ChatMessage.Read.Chat | Chat | Bot が参加しているチャット内のメッセージを読み取る | プロンプト、コンテキスト、およびフォローアップを処理する |
ChatMessage.Send.Chat | Chat | Bot が参加している 1:1 およびグループチャット(DM)でメッセージを送信する(チャネルには送信しない) | DM およびグループチャットでユーザーに返信し、通知やインタラクティブな返信をチャットスレッドに投稿する |
ChatSettings.Read.Chat | Chat | チャット設定(例: モデレーション)を読み取る | チャットのポリシー(レート制限、投稿可能なユーザーなど)に動作を合わせる |
RSC の制限事項: アクセスは、アプリがインストールされている、または参加している特定のチーム / チャットに限定されます。チーム / チャットからアプリを削除すると、そのアクセスは失効します。
例: Teams 検出のための証明書ベースの認証
資格情報に関する注意: サービス間認証にはクライアント シークレットではなく、X.509 証明書(クライアント アサーション)を使用します。これは、Microsoft Graph への呼び出し、Bot Framework アダプターとのボット通信、この連携から行われるアプリ単独(app-only)の API 呼び出しに適用されます。
メッセージ処理フロー全体(Teams → Cognition)
認証情報に関する注意: サービス間認証では、クライアント シークレットではなく X.509 証明書(クライアント アサーション)を使用します。これは、Microsoft Graph の呼び出し、Bot Framework アダプターとのボット通信、およびこの連携からのアプリのみの API 呼び出しすべてに適用されます。
同意とインストールフロー
- 管理者同意 (テナント全体)
- Entra ID の管理者が、上記の Graph Application 権限を付与します。
- アプリ検出
- この連携機能が Teams アプリ カタログをクエリし、当社アプリを特定して
teamsAppIdを取得します。
- この連携機能が Teams アプリ カタログをクエリし、当社アプリを特定して
- 対象指定インストール
- ダッシュボードから、特定の Team にボットをインストールします。
- インストール時、RSC スコープはその Team(またはチャットで呼び出された場合はその特定の Chat)にのみ付与されます。
- 運用
- 検出処理(組織 / Teams / チャネル / アプリ カタログ)は Graph Application 権限を使用します。
- メッセージの読み取り / 送信、およびメンバー / 設定の読み取りは、インストール先サーフェス内での RSC に依存します。
最小権限に関する注意事項
- 基本リーダーのみ:
User.ReadBasic.All(テナント全体のメッセージは読み取りません)。 - メッセージコンテンツへのアクセスは、RSC を通じてのみ行われ、ボットがインストールされている/存在する場所に限定されます。
- メールボックス、ファイル、カレンダーの権限は一切要求しません。
取り消しとアンインストール
- 管理者同意の取り消し: テナント管理者は、Entra ID でこのアプリのエンタープライズ アプリ権限を削除できます。
- Teams からのアンインストール: 対象のリソースに対する RSC を取り消すには、その Team/Chat からアプリを削除します。
- データ処理: アンインストール時、当社の連携機能はその Team/Chat に対するイベントの処理を停止し、関連するサブスクリプションやリンクを削除します。
