Le bot Teams de quelqu'un d'autre a-t-il aussi cessé de fonctionner aujourd'hui ?

Le bot Teams de quelqu’un d’autre a-t-il aussi cessé de fonctionner aujourd’hui ?

Oui, nous constatons le même problème dans notre espace de travail également.

Bonjour,

Oui, vous n’êtes pas seul dans cette situation. Les arrêts soudains de bots Teams affectent régulièrement de nombreuses organisations, et les causes peuvent être très variées. Cette réponse couvre les raisons les plus fréquentes pour lesquelles un bot Microsoft Teams cesse de fonctionner subitement, et les étapes de diagnostic et résolution.


Causes fréquentes d’arrêt soudain d’un bot Teams

Vue d’ensemble

Cause Fréquence Gravité
Expiration du secret client (client secret) de l’app Azure AD Très fréquente Bloquante
Incident de service Microsoft (Azure Bot Service, Teams) Fréquente Bloquante mais temporaire
Webhook ou endpoint de bot inaccessible Fréquente Bloquante
Certificat SSL expiré sur le serveur du bot Fréquente Bloquante
Permissions d’application révoquées ou modifiées Moins fréquente Bloquante
Changement dans les politiques Teams de l’organisation Moins fréquente Bloquante
Quota API dépassé (Microsoft Graph ou Bot Framework) Occasionnelle Partielle

Étape 1 : Vérifier l’état des services Microsoft

Avant toute chose, vérifiez si Microsoft rencontre un incident de service.

Tableau de bord de santé des services Microsoft 365 :

Si un incident est en cours sur Microsoft Teams ou Azure Bot Service, votre bot est probablement victime d’une panne globale ou régionale — dans ce cas, il suffit d’attendre la résolution.


Étape 2 : Vérifier le secret client de l’application Azure AD

La cause la plus fréquente

La raison numéro 1 des arrêts de bots Teams est l’expiration du secret client (Client Secret) de l’application Azure AD associée au bot. Par défaut, ces secrets sont créés avec une durée de validité de 1 an — et quand ils expirent, le bot cesse immédiatement de fonctionner sans message d’erreur explicite pour l’utilisateur final.

Vérification dans le portail Azure

  1. Connectez-vous à portal.azure.com
  2. Naviguez vers Azure Active Directory (Entra ID) > Inscriptions d’applications
  3. Trouvez l’application enregistrée pour votre bot
  4. Cliquez sur “Certificats et secrets”
  5. Vérifiez la colonne “Date d’expiration” de chaque secret
# Lister toutes les applications Entra ID et leurs secrets expirés via Graph PowerShell
Connect-MgGraph -Scopes "Application.Read.All"

$apps = Get-MgApplication -All
foreach ($app in $apps) {
    foreach ($secret in $app.PasswordCredentials) {
        if ($secret.EndDateTime -lt (Get-Date).AddDays(30)) {
            Write-Host "App: $($app.DisplayName) | Secret expiration: $($secret.EndDateTime)" -ForegroundColor Red
        }
    }
}

Renouveler le secret client

  1. Dans “Certificats et secrets”, cliquez sur “+ Nouveau secret client”
  2. Donnez une description et choisissez une durée de validité (recommandation : 24 mois maximum, puis planifiez le renouvellement)
  3. Copiez immédiatement la valeur du secret — elle n’est visible qu’une seule fois
  4. Mettez à jour la valeur du secret dans la configuration de votre bot (variables d’environnement, Key Vault, appsettings.json, etc.)
  5. Redémarrez le service hébergeant le bot

Étape 3 : Vérifier l’accessibilité du endpoint du bot

Teams envoie des messages à votre bot via une URL HTTPS appelée Messaging Endpoint. Si cette URL n’est plus accessible (serveur arrêté, changement IP, DNS périmé), le bot ne reçoit plus aucun message.

Vérification dans Azure Bot Service

  1. Portail Azure > Azure Bot (ou Bot Services)
  2. Onglet “Configuration”
  3. Vérifiez l’URL dans le champ “Messaging endpoint”
# Tester l'accessibilité du endpoint depuis PowerShell
$botEndpoint = "https://votre-bot.azurewebsites.net/api/messages"
try {
    $response = Invoke-WebRequest -Uri $botEndpoint -Method POST -UseBasicParsing -TimeoutSec 10
    Write-Host "Endpoint accessible - Code: $($response.StatusCode)"
} catch {
    Write-Host "Endpoint inaccessible : $($_.Exception.Message)" -ForegroundColor Red
}

Vérifier le certificat SSL du serveur

# Vérifier le certificat SSL du endpoint du bot
$hostname = "votre-bot.azurewebsites.net"
$port = 443

$tcpClient = New-Object System.Net.Sockets.TcpClient($hostname, $port)
$sslStream = New-Object System.Net.Security.SslStream($tcpClient.GetStream())
$sslStream.AuthenticateAsClient($hostname)
$cert = $sslStream.RemoteCertificate

Write-Host "Certificat valable jusqu'au : $($cert.GetExpirationDateString())"
Write-Host "Sujet : $($cert.Subject)"
$sslStream.Close()
$tcpClient.Close()

Étape 4 : Vérifier les permissions de l’application Teams

Dans le Centre d’administration Teams

  1. Connectez-vous à admin.teams.microsoft.com
  2. Naviguez vers “Applications Teams” > “Gérer les applications”
  3. Recherchez votre bot
  4. Vérifiez le statut : Autorisé ou Bloqué

Un administrateur peut involontairement bloquer une application lors d’une révision de la politique des applications Teams.

Vérifier les politiques d’autorisation des applications

Connect-MicrosoftTeams

# Lister les politiques d'autorisation d'applications
Get-CsTeamsAppPermissionPolicy

# Vérifier quelle politique est assignée à vos utilisateurs
Get-CsUserPolicyAssignment -Identity "[email protected]" -PolicyType TeamsAppPermissionPolicy

Étape 5 : Consulter les logs du bot

Logs Azure App Service (si hébergé sur Azure)

# Via Azure CLI — récupérer les logs récents
az webapp log tail --name nom-de-votre-app --resource-group votre-resource-group

# Télécharger les logs d'application
az webapp log download --name nom-de-votre-app --resource-group votre-resource-group --log-file logs.zip

Logs Bot Framework

Dans le portail Azure > votre ressource Azure Bot > “Test dans Web Chat” : tentez d’envoyer un message directement. Si le bot répond dans le Web Chat mais pas dans Teams, le problème est du côté du canal Teams. Si le bot ne répond pas non plus dans le Web Chat, le problème est dans le code ou la configuration du bot lui-même.


Étape 6 : Re-publier le canal Teams si nécessaire

Parfois, le canal Teams d’un bot se déconnecte sans raison apparente, notamment après des changements de configuration :

  1. Portail Azure > Azure Bot > “Canaux”
  2. Cliquez sur le canal Microsoft Teams
  3. Cliquez sur “Supprimer” pour retirer le canal
  4. Attendez 1 minute
  5. Recliquez sur “Microsoft Teams” pour ré-ajouter le canal
  6. Acceptez les conditions d’utilisation

Bonnes pratiques pour éviter les récidives

  1. Alertes d’expiration des secrets : configurez des alertes dans Azure Monitor 90 jours avant l’expiration des secrets clients
  2. Utiliser Azure Key Vault pour stocker les secrets — simplifier la rotation sans redéploiement du code
  3. Surveiller la santé du bot avec Azure Application Insights
  4. Documenter les dates d’expiration de tous les certificats et secrets dans un registre interne
# Script de monitoring hebdomadaire des secrets proches de l'expiration
# À planifier dans Azure Automation ou GitHub Actions
Connect-MgGraph -Scopes "Application.Read.All"
$alertDays = 60

Get-MgApplication -All | ForEach-Object {
    $app = $_
    $app.PasswordCredentials | Where-Object {$_.EndDateTime -lt (Get-Date).AddDays($alertDays)} | ForEach-Object {
        [PSCustomObject]@{
            Application = $app.DisplayName
            SecretName  = $_.DisplayName
            ExpiresOn   = $_.EndDateTime
            DaysLeft    = ($_.EndDateTime - (Get-Date)).Days
        }
    }
} | Sort-Object DaysLeft | Format-Table -AutoSize

Faites-nous savoir quelle cause a finalement été identifiée pour votre bot — cela pourra aider d’autres membres de la communauté qui rencontrent le même problème.


Ayi NEDJIMI — Consultant IT & Microsoft 365 / Teams
Pour le diagnostic et la maintenance de vos bots et applications Teams : ayinedjimi-consultants.fr