Mit einem Bot verbinden mit Direct Line

In diesem Artikel wird beschrieben, wie Sie einen Bot mit dem Direct Line-Kanal verbinden. Verwenden Sie diesen Kanal, um über Ihre Clientanwendung mit einem Bot zu kommunizieren.

Hinweis

Direct Line ist ein Standardkanal über HTTPS-Protokoll, um die Kommunikation zwischen einer Clientanwendung und einem Bot zu ermöglichen. Wenn Sie stattdessen eine Netzwerkisolation benötigen, verwenden Sie die Direct Line App Service-Erweiterung über WebSockets.

Voraussetzungen

  • Ein Azure-Konto. Wenn Sie noch nicht über ein Abonnement verfügen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
  • Ein vorhandener Bot, der in Azure veröffentlicht wurde.

Hinzufügen des Direct Line-Kanals

Als Erstes müssen Sie den Direct Line-Kanal zu Ihrem Bot hinzufügen.

  1. Öffnen Sie das Azure-Portal.
  2. Wechseln Sie zu Ihrer Azure-Bot-Ressource. Wählen Sie in den Bot-Einstellungen die Option Kanäle aus.
  3. Wählen Sie Direct Line aus der Liste der verfügbaren Kanäle aus.

Der Bot ist jetzt für die Verwendung von Direct Line mit der Standardwebsite konfiguriert.

Alternativ können Sie eine neue Website hinzufügen, anstatt die Standardwebsite zu verwenden. Wählen Sie auf der Seite Direct Line die Schaltfläche Neue Website aus, um eine neue Website zu erstellen. Direct Line new site button in Azure portal

Verwalten von geheimen Schlüsseln

Wenn Sie den Direct Channel hinzufügen, generiert das Bot Framework geheime Schlüssel. Ihre Client-Anwendung verwendet diese Schlüssel, um die Direct Line-API-Anforderungen zu authentifizieren, die sie zur Kommunikation mit Ihrem Bot ausgibt. Weitere Informationen finden Sie unter Authentifizierung.

  1. Um den Geheimschlüssel einer Website im Nur-Text-Format anzuzeigen, wechseln Sie zur Kanalseite Direct Line.

  2. Wählen Sie die Registerkarte Direkte Linie und dann die Website aus, für die Sie den Schlüssel abrufen möchten, z. B. Default_Site. Azure öffnet einen Bereich Website konfigurieren.

  3. Wählen Sie unter geheime Schlüssel das Augensymbol neben dem entsprechenden Schlüssel aus.

    Show Direct Line keys

  4. Kopieren Sie den angezeigten Schlüssel und verwahren Sie ihn sicher. Verwenden Sie diesen Schlüssel, um die Direct Line-API-Anforderungen zu authentifizieren, die sie zur Kommunikation mit einem Bot ausgibt.

    Hinweis

    Geheimnisse sollten nicht in Clientanwendungen verfügbar gemacht oder eingebettet werden. Siehe nächster Schritt

  5. Die bewährte Methode besteht darin, die Direct Line-API zum Austauschen des Schlüssels für ein Token zu verwenden. Die Clientanwendung verwendet dann das Token, um seine Anforderungen im Bereich einer einzelnen Unterhaltung zu authentifizieren.

Konfigurieren von Einstellungen

So konfigurieren Sie Ihre Websiteeinstellungen:

  1. Wählen Sie auf der Seite Direct Line-Kanal die Website aus, die Sie aus der Liste Websites konfigurieren möchten. Der Bereich Website konfigurieren wird geöffnet, wie unten gezeigt: Configure site pane

  2. Wählen Sie die Direct Line-Protokollversion, die Ihre Clientanwendung für die Kommunikation mit einem Bot verwendet.

    Tipp

    Wenn Sie eine neue Verbindung zwischen Ihrer Clientanwendung und dem Bot herstellen, verwenden Sie die Direct Line-API 3.0.

  3. Klicken Sie abschließend auf Anwenden, um die Websitekonfiguration zu speichern. Wiederholen Sie diesen Vorgang ab dem Schritt Neue Website hinzufügen für jede Clientanwendung, die Sie mit Ihrem Bot verbinden möchten.

Erweiterte Authentifizierung konfigurieren

Eine der verfügbaren Websitekonfigurationen ist erweiterte Authentifizierungsoptionen, die dazu beiträgt, Sicherheitsrisiken beim Herstellen einer Verbindung mit einem Bot zu verringern (z. B. mithilfe des Webchat-Steuerelements). Weitere Informationen finden Sie unter erweiterte Direct Line-Authentifizierung.

Erweiterte Authentifizierung hinzufügen:

  1. Aktivieren Sie Authentifizierungsoptionen verbessern. Eine Meldung mit dem Inhalt „Sie müssen mindestens einen vertrauenswürdigen Ursprung haben.“, wird mit einem Link zum Hinzufügen eines vertrauenswürdigen Ursprungs angezeigt. Wenn Sie die erweiterte Authentifizierung aktivieren, müssen Sie mindestens einen vertrauenswürdigen Ursprung angeben.

    Ein vertrauenswürdiger Ursprung ist eine Domäne die vom System zum Authentifizieren von Benutzern verwendet wird. In diesem Fall verwendet Direct Line die Domäne, um ein Token zu generieren.

    • Wenn Sie vertrauenswürdige Ursprünge im Rahmen der Seite mit der Konfigurationsoberfläche konfigurieren, werden diese Einstellungen immer als einziger Satz für die Generierung eines Tokens verwendet. Wenn Sie beim Generieren eines Tokens oder beim Beginnen einer Konversation zusätzliche vertrauenswürdige Ursprünge senden (oder vertrauenswürdige Ursprünge auf keine stellen), wird dies ignoriert (d. h. sie werden nicht an die Liste angefügt, bzw. für sie wird keine Kreuzvalidierung ausgeführt).
    • Wenn Sie die erweiterte Authentifizierung nicht aktiviert haben, werden alle ursprungsbasierten URLs, die Sie als Teil der API-Aufrufe senden, verwendet. Add trusted origin
  2. Nachdem Sie eine vertrauenswürdige Do Standard-URL hinzugefügt haben, wählen Sie Anwenden.

Direct Line-Beispiel-Bot

Sie können ein .NET-Beispiel von diesem Speicherort herunterladen: Direct Line Bot-Beispiel.

Dieses Beispiel umfasst zwei Projekte.

  • DirectLineBot. Erstellt einen Bot, um über einen Direct Line-Kanal eine Verbindung herzustellen.
  • DirectLineClient. Dies ist eine Konsolen-Anwendung, die über den Direct Line-Kanal mit dem vorherigen Bot spricht.

Direct Line-API

  • Anmeldeinformationen für die Direct Line-API müssen aus der Azure Bot-Registrierung abgerufen werden und ermöglichen es dem Aufrufer nur, eine Verbindung mit dem Bot herzustellen, für den sie generiert wurden. Aktualisieren Sie die appsettings.json Datei im Botprojekt mit diesen Werten.

    {
    "MicrosoftAppId": "",
    "MicrosoftAppPassword": ""
    }
    
  • Aktivieren Sie im Azure-Portal die Direkte Zeile in der Kanalliste, und konfigurieren Sie dann den geheimen Direct Line-Schlüssel. Stellen Sie sicher, dass das Kontrollkästchen für Version 3.0 aktiviert ist. Aktualisieren Sie im Konsolen-Client-Projekt die App.config Datei mit dem Direct Line-Geheimnis und dem Bot-Handle (Bot-ID).

    <appSettings>
        <add key="DirectLineSecret" value="YourBotDirectLineSecret" />
        <add key="BotId" value="YourBotHandle" />
    </appSettings>
    

Benutzernachrichten werden mithilfe der Direct Line Client-Methode Conversations.PostActivityAsync mithilfe der ConversationId zuvor generierten an den Bot gesendet.

while (true)
{
    string input = Console.ReadLine().Trim();

    if (input.ToLower() == "exit")
    {
        break;
    }
    else
    {
        if (input.Length > 0)
        {
            Activity userMessage = new Activity
            {
                From = new ChannelAccount(fromUser),
                Text = input,
                Type = ActivityTypes.Message
            };

            await client.Conversations.PostActivityAsync(conversation.ConversationId, userMessage);
        }
    }
}