Konfigurieren von Web- und Direct Line Kanalsicherheit

Wenn Sie einen Copilot Studio Agent erstellen, kann jeder, der die Agent-ID kennt, sofort über die Demo-Website und Custom-WebsiteKanäle zugreifen. Diese Kanäle sind standardmäßig verfügbar und es ist keine Konfiguration erforderlich.

Für die Microsoft Teams-App können Sie erweiterte Webkanalsicherheitsoptionen konfigurieren.

Note

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 können die Agent-ID direkt in Copilot Studio oder von jemanden erhalten. Je nach Funktion und Vertraulichkeit des Agents ist dieser Zugriff jedoch möglicherweise nicht wünschenswert.

Mithilfe der Direct Line-basierten Sicherheit können Sie den Zugriff nur auf Speicherorte aktivieren, die Sie steuern, indem Sie den gesicherten Zugriff mit Direct Line geheimen Schlüsseln 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.

Note

Copilot Studio verwendet den Bot Framework Direct Line Kanal, um ihre Webseite oder App mit dem Agent 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 den Client dazu bringen, ihre Anfragen zu authentifizieren, entweder mithilfe eines Geheimnisses oder mithilfe eines Tokens, das mit dem Geheimnis generiert und zur Laufzeit abgerufen wird.

Versuche, auf den Agent zuzugreifen, der diese Sicherheitsmaßnahme nicht bereitstellt, funktionieren nicht.

  1. Wechseln Sie zur Seite "Einstellungen" für Ihren Agent, wählen Sie "Sicherheit" und dann "Webkanalsicherheit" aus.

Screenshot der im Einstellungs-Flyout hervorgehobenen Webkanal-Sicherheit.

  1. Aktivieren Sie " Gesicherten Zugriff anfordern".

Warnung

Wenn Sie den geschützten Zugriff aktivieren oder deaktivieren, kann es bis zu zwei Stunden dauern, bis das System die Einstellungen verteilt und wirksam wird. Bis dahin ist die vorherige Einstellung wirksam. Sie müssen den Agent nicht veröffentlichen, damit diese Änderung wirksam wird.

Planen Sie im Voraus, um zu vermeiden, dass Ihr Agent versehentlich offengelegt wird.

Wenn Sie die Sicherheitsoption für den Webkanal deaktivieren müssen, können Sie dies tun, indem Sie die Umschaltfläche "Gesicherten Zugriff erfordern " deaktivieren. Das Deaktivieren des gesicherten Zugriffs kann bis zu zwei Stunden dauern.

Screenshot einer Bestätigungsmeldung beim Deaktivieren des gesicherten Zugriffs, die besagt, dass diese Aktion die Demo-Website und alle Direct Line-Kanäle, die keinen geheimen Schlüssel oder Token verwenden, verfügbar macht. Diese Aktion kann bis zu zwei Stunden dauern, bis sie wirksam wird.

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

Machen Sie das Geheimnis in keinem Code verfügbar, der im Browser ausgeführt wird, entweder hartcodiert oder über einen Netzwerkanruf übertragen.

Das Abrufen des Tokens mithilfe des geheimen Schlüssels in Ihrem Dienstcode ist die sicherste Methode, um Ihren Copilot Studio-Agent zu schützen.

Geheimnisse erlangen

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 aus, um den geheimen Schlüssel anzuzeigen. Eine Warnmeldung erscheint, bevor Sie es aufdecken können.

Geheimnisse austauschen

Wenn Sie den geheimen Schlüssel ändern müssen, den Ihr Agent verwendet, können Sie ihn ohne Ausfallzeiten oder Unterbrechungen ändern.

Copilot Studio bietet Ihnen zwei geheime Schlüssel, die gleichzeitig funktionieren. Sie können den geheimen Schlüssel austauschen, den Ihr Agent mit dem anderen verwendet. Nachdem die geheimen Schlüssel ausgetauscht wurden und Ihre Benutzer alle mithilfe des neuen geheimen Schlüssels verbunden sind, können Sie den geheimen Schlüssel neu generieren.

Ein Secret erneut generieren

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

Warnung

Das Benutzerprofil, das eine Verbindung mithilfe des ursprünglichen geheimen Schlüssels oder eines Tokens herstellt, das aus diesem geheimen Schlüssel abgerufen wird, wird getrennt.

Ein Token generieren

Sie können ein Token generieren, das Sie beim Starten eines einzigartigen Agentengesprächs verwenden. Weitere Informationen finden Sie im Abschnitt Get-Direct-Line-Token in Veröffentlichen eines Agenten in mobilen oder benutzerdefinierten Apps.

  1. Geheimnis erlangen.

  2. Senden Sie in Ihrem Dienstcode die folgende Anforderung, um den geheimen Schlüssel für 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

Beispiel zur Generierung einer 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.

Um das Token nützlich zu halten, müssen Sie das Token aktualisieren , bevor es abläuft.

Token aktualisieren

Sie können ein Token beliebig oft aktualisieren, solange es nicht abgelaufen ist.

Sie können ein abgelaufenes Token nicht aktualisieren.

Um ein Token zu aktualisieren, senden Sie die folgende Anforderung, und ersetzen <TOKEN TO BE REFRESHED> Sie sie durch das 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 zur Aktualisierung des Tokens 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.

Um das neue Token nützlich zu halten, aktualisieren Sie das Token erneut, 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 Aktualisieren eines Tokens finden Sie im Abschnitt Refresh a Direct Line token in Direct Line API – Authentication.