Web- und Kanalsicherheit von Direct Line konfigurieren

Wenn Sie einen Microsoft Copilot Studio-Agent erstellen, ist er sofort auf der Demo-Website und auf den benutzerdefinierten Websitekanälen für alle verfügbar, die die Agent-ID kennen. Diese Kanäle sind standardmäßig verfügbar und es ist keine Konfiguration erforderlich.

Für die Microsoft Teams-App können Sie erweiterte Sicherheitsoptionen für Webkanäle konfigurieren.

Anmerkung

Wenn Sie nur eine Teams Lizenz haben, können Sie keine Geheimnisse generieren, um einen sicheren Zugriff zu ermöglichen. Sichere Zugriffstoken werden automatisch für Sie erstellt und der sichere Zugriff ist standardmäßig aktiviert.

Benutzer finden die Agent-ID direkt in Microsoft Copilot Studio, oder indem sie sie von jemandem erhalten. Aber abhängig von der Fähigkeit und Empfindlichkeit des Agents ist dieses Szenario möglicherweise nicht wünschenswert.

Mit Direct Line-basierter Sicherheit können Sie den Zugriff auf Standorte nur einschränken, die Sie steuern, indem Sie den gesicherten Zugriff mit Direct Line-Geheimnissen oder -Token aktivieren.

Sie können auch Geheimnisse austauschen und neu generieren sowie Tokens aktualisieren und den gesicherten Zugriff einfach deaktivieren, wenn Sie ihn nicht mehr verwenden möchten.

Anmerkung

Copilot Studio verwendet den Bot Framework Direct Line-Kanal, um Ihre Webseite oder App mit dem Agenten zu verbinden.

Sicherheit des Webkanals aktivieren oder deaktivieren

Sie können die Verwendung von Geheimschlüsseln und Token für jeden einzelnen Agent erzwingen.

Wenn Sie diese Option aktivieren, müssen Kanäle vom Client verlangen, dass er seine Anfragen entweder mithilfe eines Geheimnisses oder mithilfe eines Tokens authentifiziert, das unter Verwendung des Geheimnisses generiert und zur Laufzeit abgerufen wird.

Versuche, auf den Agent zuzgreifen, der diese Sicherheitsmaßnahme nicht bietet, funktioniert nicht.

  1. Gehen Sie zur Seite Einstellungen Ihres Agents, wählen Sie Sicherheit und anschließend Webkanal-Sicherheit aus.

Screenshot, auf dem die Webkanalsicherheit auf dem Flyout „Einstellungen“ hervorgehoben ist.

  1. Aktivieren Sie Gesicherten Zugriff erforderlich.

Warnung

Sobald Gesicherten Zugriff erforderlich machen aktiviert oder deaktiviert ist, kann es bis zu zwei Stunden dauern, bis das System die Einstellungen weitergibt und sie wirksam werden. Bis dahin bleibt die vorherige Einstellung wirksam. Sie müssen den Bot nicht veröffentlichen, damit der Agent für diese Änderung wirksam wird.

Sie sollten vorausplanen, um zu vermeiden, dass Ihr Agent unbeabsichtigt ausgesetzt wird.

Wenn Sie die Sicherheitsoption für den Webkanal deaktivieren müssen, können Sie dies durch Umschalten von Gesicherten Zugriff erforderlich machen auf Deaktiviert tun. Das Deaktivieren des gesicherten Zugriffs kann bis zu zwei Stunden dauern.

Screenshot mit einer Bestätigungsmeldung beim Deaktivieren des gesicherten Zugriffs, die besagt, dass diese Aktion die Demo-Website und alle anderen Elemente und jeden Direct Line-Kanal ohne Verwendung eines Geheimnisses oder Tokens rendert. Diese Aktion kann bis zu zwei Stunden dauern.

Verwenden von Geheimnissen oder Tokens

Wenn Sie eine Service-to-Service-App erstellen, ist es möglicherweise am einfachsten, das Geheimnis in den Anforderungen des Autorisierungsheaders anzugeben.

Wenn Sie eine App schreiben, in der der Client in einem Webbrowser oder einer mobilen App ausgeführt wird, oder wenn der Code für Kunden sichtbar sein könnte, müssen Sie Ihr Geheimnis gegen ein Token eintauschen. Wenn Sie keinen Token verwenden, kann Ihr Geheimnis beeinträchtigt sein. Geben Sie das Geheimnis im Autorisierungsheader an, wenn Sie die Anforderung zum Erwerb des Tokens in Ihrem Dienst stellen.

Tokens funktionieren nur für eine einzelne Unterhaltung und verfallen, sofern sie nicht aktualisiert werden.

Wählen Sie das Sicherheitsmodell, das für Ihre Situation am besten geeignet ist.

Warnung

Geben Sie das Geheimnis in keinem Code preis, der im Browser ausgeführt wird, sei es fest codiert oder über einen Netzwerkaufruf übertragen.

Der Erwerb des Tokens mithilfe des Geheimnisses in Ihrem Servicecode ist der sicherste Weg, um Ihren Copilot Studio-Agent zu schützen.

Geheimnisse abrufen

Sie benötigen das Geheimnis, damit Sie es in den Autorisierungsheaderanforderungen Ihrer App oder ähnlichem angeben können.

  1. Wählen Sie im Navigationsmenü unter Einstellungen die Option Sicherheit. Wählen Sie dann die Kachel Webkanalsicherheit aus.

  2. Wählen Sie Kopieren entweder für Geheimnis 1 oder Geheimnis 2, um es in die Zwischenablage zu kopieren. Wählen Sie das Sichtbarkeitssymbol , um das Geheimnis enthüllen. Eine Warnmeldung erscheint, bevor Sie es aufdecken können.

Geheimnisse austauschen

Wenn Sie das von Ihrem Agent verwendete Geheimnis ändern müssen, können Sie dies ohne Ausfallzeiten oder Unterbrechungen tun.

Copilot Studio bietet Ihnen zwei Geheimnisse, die gleichzeitig funktionieren. Du kannst das Geheimnis, das dein Agent verwendet, mit dem anderen tauschen. Sobald die Geheimnisse ausgetauscht wurden und alle Benutzer über das neue Geheimnis verbunden sind, können Sie das Geheimnis sicher neu generieren.

Geheimnis erneut generieren

Um ein Geheimnis erneut zu generieren, wählen Sie Erneut generieren neben dem Geheimnis aus.

Warnung

Das Benutzerprofil, das sich mithilfe des ursprünglichen Geheimnisses oder eines daraus abgeleiteten Tokens anmeldet, wird abgemeldet.

Ein Token generieren

Sie können ein Token generieren, das beim Starten einer einzelnen Agent-Unterhaltung verwendet werden kann. Weitere Informationen finden Sie im Abschnitt Direct Line-Token abrufen in Agenten für mobile oder benutzerdefinierte Apps veröffentlichen.

  1. Geheimnis abrufen.

  2. Stellen Sie die folgende Anforderung in Ihrem Servicecode, um das Geheimnis gegen ein Token auszutauschen. Ersetzen Sie <SECRET> mit dem Wert des Geheimnisses, das Sie in Schritt 1 erhalten haben.

    POST https://directline.botframework.com/v3/directline/tokens/generate
    Authorization: Bearer <SECRET>
    

Die folgenden Snippets enthalten Beispiele der generierten Tokenanforderung und der Antwort.

Beispielerstellung für eine Token-Anforderung

POST https://directline.botframework.com/v3/directline/tokens/generate
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0

Beispielerstellung für eine Token-Antwort

HTTP/1.1 200 OK
[other headers]
{
  "conversationId": "abc123",
  "token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
  "expires_in": 1800
}

Wenn die Anforderung erfolgreich ist, enthält die Antwort ein Token, das für eine Unterhaltung gültig ist, und einen expires_in-Wert, der die Anzahl der Sekunden angibt, bis das Token abläuft.

Damit das Token nützlich bleibt, müssen Sie das Token aktualisieren, bevor es abläuft.

Token aktualisieren

Ein Token kann unbegrenzt oft aktualisiert werden, solange es nicht abgelaufen ist.

Sie können ein abgelaufenes Token nicht aktualisieren.

Geben Sie zum Aktualisieren eines Tokens die folgende Anforderung aus und ersetzen Sie <TOKEN TO BE REFRESHED> mit dem Token, das Sie aktualisieren möchten.

POST https://directline.botframework.com/v3/directline/tokens/refresh
Authorization: Bearer <TOKEN TO BE REFRESHED>

Die folgenden Snippets enthalten Beispiele für die Anforderung zum Aktualsieren von Token und dessen Antwort.

Beispiel für eine Aktualisierungsanforderung

POST https://directline.botframework.com/v3/directline/tokens/refresh
Authorization: Bearer CurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn

Beispiel für eine Aktualisierungsantwort

Wenn die Anforderung erfolgreich ist, enthält die Antwort ein neues Token, das für dieselbe Unterhaltung gültig ist, wie das vorherige Token, und einen expires_in-Wert, der die Anzahl der Sekunden angibt, bis das neue Token abläuft.

Damit das neue Token nützlich bleibt, müssen Sie das Token aktualisieren, bevor es abläuft.

HTTP/1.1 200 OK
[other headers]
{
  "conversationId": "abc123",
  "token": "RCurR_XV9ZA.cwA.BKA.y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xniaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0",
  "expires_in": 1800
}

Weitere Informationen zum Erneuern eines Tokens finden Sie im Abschnitt Erneuern eines Direct Line-Tokens in Direct Line-API – Authentifizierung.