mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-25 16:56:22 +02:00
105 lines
3.7 KiB
Text
105 lines
3.7 KiB
Text
---
|
|
title: Microsoft Teams
|
|
description: Connect your Microsoft Teams to SurfSense
|
|
---
|
|
|
|
# Microsoft Teams OAuth Integration Setup Guide
|
|
|
|
This guide walks you through setting up a Microsoft Teams OAuth integration for SurfSense using Azure App Registration.
|
|
|
|
## Step 1: Access Azure App Registrations
|
|
|
|
1. Navigate to [portal.azure.com](https://portal.azure.com)
|
|
2. In the search bar, type **"app reg"**
|
|
3. Select **"App registrations"** from the Services results
|
|
|
|

|
|
|
|
## Step 2: Create New Registration
|
|
|
|
1. On the **App registrations** page, click **"+ New registration"**
|
|
|
|

|
|
|
|
## Step 3: Register the Application
|
|
|
|
Fill in the application details:
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| **Name** | `SurfSense` |
|
|
| **Supported account types** | Select **"Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts"** |
|
|
| **Redirect URI** | Platform: `Web`, URI: `http://localhost:8000/api/v1/auth/teams/connector/callback` |
|
|
|
|
Click **"Register"**
|
|
|
|

|
|
|
|
## Step 4: Get Application (Client) ID
|
|
|
|
After registration, you'll be taken to the app's **Overview** page. Here you'll find:
|
|
|
|
1. Copy the **Application (client) ID** - this is your Client ID
|
|
2. Note the **Directory (tenant) ID** if needed
|
|
|
|

|
|
|
|
## Step 5: Create Client Secret
|
|
|
|
1. In the left sidebar under **Manage**, click **"Certificates & secrets"**
|
|
2. Select the **"Client secrets"** tab
|
|
3. Click **"+ New client secret"**
|
|
4. Enter a description (e.g., `SurfSense`) and select an expiration period
|
|
5. Click **"Add"**
|
|
|
|

|
|
|
|
6. **Important**: Copy the secret **Value** immediately - it won't be shown again!
|
|
|
|

|
|
|
|
<Callout type="warn">
|
|
Never share your client secret publicly or include it in code repositories.
|
|
</Callout>
|
|
|
|
## Step 6: Configure API Permissions
|
|
|
|
1. In the left sidebar under **Manage**, click **"API permissions"**
|
|
2. Click **"+ Add a permission"**
|
|
3. Select **"Microsoft Graph"**
|
|
4. Select **"Delegated permissions"**
|
|
5. Add the following permissions:
|
|
|
|
| Permission | Type | Description | Admin Consent |
|
|
|------------|------|-------------|---------------|
|
|
| `Channel.ReadBasic.All` | Delegated | Read the names and descriptions of channels | No |
|
|
| `ChannelMessage.Read.All` | Delegated | Read user channel messages | Yes |
|
|
| `offline_access` | Delegated | Maintain access to data you have given it access to | No |
|
|
| `Team.ReadBasic.All` | Delegated | Read the names and descriptions of teams | No |
|
|
| `User.Read` | Delegated | Sign in and read user profile | No |
|
|
|
|
6. Click **"Add permissions"**
|
|
|
|
<Callout type="warn">
|
|
The `ChannelMessage.Read.All` permission requires admin consent. An admin will need to click **"Grant admin consent for [Directory]"** for full functionality.
|
|
</Callout>
|
|
|
|

|
|
|
|
---
|
|
|
|
## Running SurfSense with Microsoft Teams Connector
|
|
|
|
Add the Microsoft Teams credentials to your `.env` file (created during [Docker installation](/docs/docker-installation/docker-compose)):
|
|
|
|
```bash
|
|
TEAMS_CLIENT_ID=your_microsoft_client_id
|
|
TEAMS_CLIENT_SECRET=your_microsoft_client_secret
|
|
TEAMS_REDIRECT_URI=http://localhost:8000/api/v1/auth/teams/connector/callback
|
|
```
|
|
|
|
Then restart the services:
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|