Freigeben über


Hinzufügen der Authentifizierung von Drittanbietern zu universellen Aktionen für adaptive Karten

Universelle Aktionen für adaptive Karten verwenden den Bot als gemeinsames Back-End für die Behandlung von Aktionen und führen einen neuen Aktionstyp Action.Executeein, der appübergreifend funktioniert, z. B. Teams und Outlook.

Hinweis

Unterstützung für adaptive Karten Universal Actions-Schemaversion v1.4 ist nur für Karten verfügbar, die vom Bot gesendet werden.

Sie können die folgenden Szenarien mit Action.Execute universeller Aktion für adaptive Karten aktivieren:

Weitere Informationen zu universellen Aktionen für adaptive Karten finden Sie unter Universelle Aktionen für adaptive Karten.

Wenn Sie benutzerspezifische Ansichten in Fällen hinzufügen möchten, in denen eine adaptive Karte mit universeller Aktion freigegeben wird, muss der Benutzer im Kontext eines Gruppenchats oder kanals möglicherweise authentifiziert werden.

In der Vergangenheit mussten Benutzer, die mit dem Bot einzeln chatten, warten, während Sie ihnen eine separate Authentifizierung Karte zur Authentifizierung gesendet haben. Um mit dem Bot zu kommunizieren, muss der Benutzer vom Gruppenchat oder Kanal wechseln, der den Flow stören würde.

Authentifizierungsfluss im Action.Execute-Protokoll

Der Authentifizierungsfluss für OAuth innerhalb des Protokolls ermöglicht die Action.Execute Authentifizierung im Kontext des Gruppenchats oder der Kanalunterhaltung, in der die adaptive Karte freigegeben wird.

Bots können mit einer Anmeldeanforderung als Antwort auf Action.Execute folgendes antworten:

  • Adaptive Karten, die vom Bot in einem Einzelchat, Gruppenchat oder Kanal gesendet werden.
  • Adaptive Karten, die vom App-Benutzer über eine Nachrichtenerweiterungs-App (unterstützt durch einen Bot) in Einzelchat, Gruppenchat oder Kanal gesendet werden.
  • Adaptive Karten, die im Verfassen- oder Vorschaubereich vorhanden sind, während der Benutzer die Nachricht verfasst. Im Verfassenbereich funktioniert die Aktualisierung in adaptiver Karte, und der Bot möchte möglicherweise ein Token verwenden, um dem App-Benutzer eine benutzerspezifische Ansicht bereitzustellen, bevor er die Karte an den Chat sendet.

Erste Schritte mit OAuth oder nominalem Anmeldeflow

Die OAuth- oder nominalen Authentifizierungsschritte für adaptive Karten mit universellen Aktionen ähneln dem Bot in Teams.

Stellen Sie sicher, dass Sie Ihrem Teams-Bot die Authentifizierung hinzugefügt haben. Weitere Informationen zum Erstellen eines Authentifizierungsbots, zum Bereitstellen des Bots in Azure und zum Zuordnen eines Identitätsanbieters sowie zum Integrieren des Bots in Microsoft Teams finden Sie unter Hinzufügen der Authentifizierung zu Ihrem Teams-Bot.

Für eine OAuth- oder nominelle Anmeldung, bei der dem Benutzer eine Anmeldeschaltfläche oder ein Link angezeigt wird, ist folgendes der OAuth- oder nominelle Anmeldeflow:

Screenshot: Authentifizierungsablauf für adaptive Karten mit universellen Aktionen

  1. Der Teams-Client sendet eine adaptive Karte oder actionInvokeActivity Anforderung an den Bot.

  2. Der Bot verwendet das Token service-Protokoll, um zu überprüfen, ob bereits ein zwischengespeichertes Token für den im activity.from.id Feld angegebenen Benutzer vorhanden ist. Der Kanal wird im activity.channelId Feld für den konfigurierten Bot und die Verbindung angegeben.

  3. Wenn ein zwischengespeichertes Token vorhanden ist, kann der Bot dieses Token verwenden. Wenn kein Token vorhanden ist, erstellt der Bot eine OAuthCard und platziert sie in der Antwort mit den folgenden Werten:

    {
      'statusCode': 401,
      'type': 'application/vnd.microsoft.activity.loginRequest',
      'value': {
         'text': 'Please sign-in',
         'connectionName': '<configured-connection-name>',
         'buttons': [
            {
               'title': 'Sign-In',
               'text': 'Sign-In',
               'type': 'signin',
               'value': '<sign-in-URL>'
            }
         ]
      }
    }   
    
    • Absender müssen einen Wert enthalten, der dem OAuthCard-Format entspricht.
    • Absender müssen eine connectionNameenthalten. Empfänger ignorieren möglicherweise Anmeldeanforderungen mit einer leeren oder fehlenden connectionName.
    • Absender müssen ein button enthalten, das über ein nicht leeres Schaltflächenarray verfügt.
  4. Nach Erhalt dieser Antwort zeigt der Teams-Client eine Anmeldeschaltfläche in der Karte Fußzeile an, auf der sich der Benutzer anmelden kann.

    Screenshot: Schaltfläche

  5. Wenn der Benutzer die Schaltfläche Anmelden auswählt, wird die Anmeldeseite des Identitätsanbieters in einem Browserfenster geöffnet. Nachdem sich der Benutzer angemeldet hat, wird die Seite Tokendienst mit einem Autorisierungscodewert angezeigt.

  6. Der Teams-Client erstellt und sendet die adaptiveCard/action Aufrufaktivität mit name. Der Wert enthält das Feld, das state den Autorisierungscode enthält:

    {
       'type': 'invoke',
       'name': 'adaptiveCard/action'
       'value': {
          'action': {
             'id': 'abc123',
             'type': 'Action.Execute',
             'verb': 'saveCommand',
             'data': {
                'firstName': 'Jeff',
                'lastName': 'Derstadt'
             }
          },
       'state': '123456'
       },
       ...
    }
    
    

    Absender müssen ein state Feld enthalten.

  7. Der Kanal übermittelt diesen Aufruf an den Bot, der den Authentifizierungscode verwendet, um das Token aus dem Tokendienst abzurufen. Der Tokendienst übermittelt das Zugriffstoken des Benutzers an den Bot.

    Empfänger ignorieren möglicherweise den adaptiveCard/action Aufruf oder antworten mit einem Fehler, wenn ein fehlendes oder leeres state Feld vorhanden ist.

    Wenn der Wert im state Feld falsch ist, gibt der Bot wie folgt einen Fehler an den Teams-Client zurück:

      {
       'statusCode': 401,
       'type': 'application/vnd.microsoft.error.invalidAuthCode',
      }
    

    Der Teams-Client kann den Benutzer erneut zur Eingabe des richtigen Autorisierungscodes auffordern oder eine Action.Execute Anforderung erneut senden.

  8. Wenn der Autorisierungscode im state Feld richtig ist, verwendet der Bot das Zugriffstoken im Namen des Benutzers, um seine Aktionen auszuführen.

  9. Der Bot antwortet mit einem Karte oder einer Nachricht ohne Fehler an den Teams-Client.

Siehe auch