Partager via


Résolution des problèmes d'authentification SSO dans Teams

Voici une liste de problèmes et de questions concernant le SSO, et la façon dont vous pouvez les résoudre.

Prise en charge de Microsoft Graph


1. Est-ce que API Graph fonctionne dans Postman ?
Vous pouvez utiliser la collection Microsoft Graph Postman avec les API Microsoft Graph.

Pour obtenir plus d’informations, consultez Utilisation de Postman avec l’API Microsoft Graph.


2. Le API Graph fonctionne-t-il dans l’Explorateur Microsoft Graph ?
Oui, l'API graphique fonctionne dans l'explorateur graphique de Microsoft.

Pour plus d'informations, voir Explorateur de graphiques.


Messages d'erreur et comment les traiter


1. Erreur : consentement manquant.
Quand Microsoft Entra ID reçoit une demande d’accès à une ressource Microsoft Graph, il vérifie si l’utilisateur ou l’administrateur de l’application a donné son consentement pour cette ressource. S’il n’existe aucun enregistrement de consentement de l’utilisateur ou de l’administrateur, Microsoft Entra ID envoie un message d’erreur à votre service web.

Votre code doit indiquer au client (par exemple, dans le corps d’une réponse 403 Interdit) comment gérer l’erreur :

  • Si l'application de l'onglet nécessite des scopes Microsoft Graph pour lesquels seul un administrateur peut donner son accord, votre code devrait générer une erreur.
  • Si les seules étendues requises peuvent être envoyées par l’utilisateur, votre code doit basculer vers un autre système d’authentification des utilisateurs.

2. Erreur : Étendue manquante (autorisation).
Cette erreur n'apparaît que pendant le développement.

Pour gérer cette erreur, votre code côté serveur doit envoyer une réponse 403 Interdit au client. Il doit consigner l'erreur dans la console ou l'enregistrer dans un journal.


3. Erreur : Audience non valide dans le jeton d’accès pour Microsoft Graph.
Le code côté serveur doit envoyer une réponse 403 Interdit au client pour afficher un message à l’utilisateur. Il est recommandé de consigner également l’erreur dans la console ou de l’enregistrer dans un journal.

4. Erreur : le nom d’hôte ne doit pas être basé sur un domaine déjà détenu.
Vous pouvez obtenir cette erreur dans l'un des deux scénarios suivants :
  1. Le domaine personnalisé n’est pas ajouté à Microsoft Entra ID. Pour ajouter un domaine personnalisé à Microsoft Entra ID et l’inscrire, suivez la procédure Ajouter un nom de domaine personnalisé à Microsoft Entra ID procédure. Ensuite, suivez à nouveau les étapes pour configurer l’étendue du jeton d’accès .
  2. Vous n’êtes pas connecté avec les informations d’identification d’administrateur dans la location Microsoft 365. Connectez-vous à Microsoft 365 en tant qu'administrateur.

5. Erreur : Nom d’utilisateur principal (UPN) non reçu dans le jeton d’accès retourné.
Vous pouvez ajouter l’UPN en tant que revendication facultative dans Microsoft Entra ID.

Pour plus d'informations, voir Fournir des revendications facultatives à votre application et des jetons d'accès.


6. Erreur : Erreur du KIT de développement logiciel (SDK) Teams : resourceDisabled.
Pour éviter cette erreur, vérifiez que l’URI de l’ID d’application est correctement configuré dans Microsoft Entra’inscription de l’application et dans votre client Teams.

Pour plus d'informations sur l' URI de l'application, voir Pour exposer une API .


7. Erreur : erreur générique lors de l’exécution de l’application d’onglet.
Une erreur générique peut s’afficher quand une ou plusieurs configurations d’application effectuées dans Microsoft Entra ID sont incorrectes. Pour résoudre cette erreur, case activée si les détails de l’application configurés dans votre code et le manifeste de l’application (précédemment appelé manifeste d’application Teams) correspond aux valeurs dans Microsoft Entra ID.

L’image suivante montre un exemple des détails de l’application configurées dans Microsoft Entra ID.

Valeurs de configuration d’application dans Microsoft Entra ID

Vérifiez que les valeurs suivantes correspondent entre Microsoft Entra ID, le code côté client et le manifeste de l’application :

  • ID d’application : l’ID d’application que vous avez généré dans Microsoft Entra ID doit être le même dans le code et dans le fichier manifeste de l’application. Vérifiez si l’ID d’application dans le schéma du manifeste d’application correspond à l’ID d’application (client) dans Microsoft Entra ID.

  • Secret de l’application : la clé secrète d’application configurée dans le back-end de votre application doit correspondre aux informations d’identification du client dans Microsoft Entra ID. Vous devez également vérifier si le secret du client a expiré.

  • URI d’ID d’application : l’URI de l’ID d’application dans le code et dans le fichier manifeste de l’application doit correspondre à l’URI ID d’application dans Microsoft Entra ID.

  • Autorisations de l'application : Vérifiez si les autorisations que vous avez définies dans le champ d'application correspondent aux besoins de votre application. Si c’est le cas, case activée si elles ont été accordées à l’utilisateur dans le jeton d’accès.

  • Consentement de l'administrateur : si un champ d'application nécessite le consentement de l'administrateur, vérifiez si le consentement a été accordé à l'utilisateur pour ce champ d'application particulier.

En outre, inspectez le jeton d'accès qui a été envoyé à l'application de l'onglet pour vérifier si les valeurs suivantes sont correctes :

  • Audience (aud) : vérifiez si l’ID d’application dans le jeton est correct, comme indiqué dans Microsoft Entra ID.
  • Tenant Id(tid) : Vérifier si le locataire mentionné dans le jeton est correct.
  • Identité de l’utilisateur (preferred_username) : vérifiez si l’identité de l’utilisateur correspond au nom d’utilisateur dans la demande de jeton d’accès, pour l’étendue à laquelle l’utilisateur actuel souhaite accéder.
  • Étendues (scp) : vérifiez si l’étendue pour laquelle le jeton d’accès est demandé est correcte et telle que définie dans Microsoft Entra ID.
  • Microsoft Entra version 1.0 ou 2.0 (ver) : vérifiez si Microsoft Entra version est correcte.

Vous pouvez utiliser JWT pour inspecter le jeton.

Erreur de jeton d’authentification unique du bot


Échec de l’échange de jetons.
En cas d’échec de l’échange de jetons, utilisez le code suivant :
{​​ 
    "status": "<response code>", 
    "body": 
    {​​ 
        "id":"<unique Id>", 
        "connectionName": "<connection Name on the bot (from the OAuth card)>", 
        "failureDetail": "<failure reason if status code is not 200, null otherwise>" 
    }​​ 
}​​

Pour comprendre le comportement du bot lorsque l’échange de jetons ne parvient pas à déclencher une invite de consentement, consultez les étapes suivantes :

Remarque

Aucune action de l’utilisateur n’est requise, car le bot effectue les actions en cas d’échec de l’échange de jetons.

  1. Le client démarre une conversation avec le bot déclenchant un scénario OAuth.

  2. Le bot renvoie une carte OAuth au client.

  3. Le client intercepte le carte OAuth avant de l’afficher à l’utilisateur de l’application. Il vérifie s’il contient une TokenExchangeResource propriété.

  4. Si la propriété existe, le client envoie un TokenExchangeInvokeRequest message au bot. Le client doit avoir un jeton échangeable pour l’utilisateur. Ce jeton doit être un jeton Azure AD v2 dont l’audience doit être identique à TokenExchangeResource.Uri la propriété.

  5. Le client envoie une activité d’appel au bot avec le code suivant :

    {
        "type": "Invoke",
        "name": "signin/tokenExchange",
        "value": 
        {
            "id": "<any unique Id>",
            "connectionName": "<connection Name on the skill bot (from the OAuth card)>",
            "token": "<exchangeable token>"
        }
    }
    
  6. Le bot traite et TokenExchangeInvokeRequest retourne un TokenExchangeInvokeResponse retour au client. Le client doit attendre jusqu’à ce qu’il reçoive le TokenExchangeInvokeResponse.

    {
        "status": "<response code>",
        "body": 
        {
            "id":"<unique Id>",
            "connectionName": "<connection Name on the skill bot (from the OAuth card)>",
            "failureDetail": "<failure reason if status code is not 200, null otherwise>"
        }
    }
    
  7. Si la TokenExchangeInvokeResponse valeur est status de 200, le client n’affiche pas la carte OAuth. Afficher l’image de flux normal Pour tout autre ou status si le TokenExchangeInvokeResponse n’est pas reçu, le client affiche la carte OAuth à l’utilisateur. Afficher l’image de flux de secours En cas d’erreurs ou de dépendances non satisfaites telles que le consentement de l’utilisateur, cette activité garantit que le flux d’authentification unique revient au flux OAuthCard normal.

    Remarque

    Dans le client web Teams, l’invite de mot de passe n’apparaît pas, car il existe une session Microsoft Entra active dans le navigateur, qui est utilisée pour l’authentification et pour acquérir un jeton. Dans le client de bureau Teams, l’invite de mot de passe s’affiche, car le client de bureau n’a pas de session Microsoft Entra à partager et est invité à se connecter.

Voir aussi

Bonnes pratiques de sécurité pour les propriétés d’application dans Microsoft Entra ID