Bot Framework häufig gestellte Fragen zu Sicherheit und Datenschutz

In diesem Artikel werden häufig gestellte Fragen zu Sicherheit und Datenschutz beantwortet.

gilt für: SDK v4APPLIES TO: SDK v4

Sammeln Bots, die bei Bot Framework registriert sind, personenbezogene Informationen? Wenn dies der Fall ist: Wie kann ich sicherstellen, dass die Daten sicher und geschützt sind? Was ist mit Datenschutz?

Jeder Bot ist ein eigener Dienst, und die Entwickler dieser Dienste sind aufgefordert, Nutzungsbedingungen und Datenschutzrichtlinien in ihre Verhaltensregeln für Entwickler einzubinden. Weitere Informationen finden Sie in den Richtlinien für die Bot-Überprüfung.

Kann ich meinen Bot auf meinen eigenen Servern hosten?

Ja. Ihr Bot kann überall im Internet gehostet werden – Auf Ihren eigenen Servern, in Azure oder in einem anderen Rechenzentrum. Die einzige Voraussetzung ist, dass der Bot einen öffentlich zugänglichen HTTPS-Endpunkt verfügbar machen muss.

Wie sperren Sie Bots oder entfernen sie aus dem Dienst?

Benutzer haben die Möglichkeit, einen fehlerhaften Bot über die Kontaktkarte des Bots im Verzeichnis zu melden. Entwickler müssen die Vertragsbedingungen von Microsoft einhalten, um den Dienst nutzen zu können.

Welche spezifischen URLs muss ich in meiner Unternehmensfirewall zulassen, um auf Bot Framework zugreifen zu können?

Wenn Sie über eine ausgehende Firewall verfügen, die Datenverkehr von Ihrem Bot zum Internet blockiert, müssen Sie die folgenden URLs in dieser Firewall zulassen:

  • login.botframework.com (Botauthentifizierung)
  • login.microsoftonline.com (Botauthentifizierung)
  • westus.api.cognitive.microsoft.com (NLP-Integration von Luis.ai)
  • *.botframework.com (Kanäle)
  • state.botframework.com (Abwärtskompatibilität)
  • login.windows.net (Windows-Anmeldung)
  • login.windows.com (Windows-Anmeldung)
  • sts.windows.net (Windows-Anmeldung)
  • Zusätzliche URLs für spezifische Bot Framework-Kanäle

Hinweis

Sie können verwenden, wenn Sie eine URL mit einem Sternchen nicht zulassen <channel>.botframework.com möchten. <channel> entspricht jedem Kanal, den Ihr Bot verwendet, z. B. directline.botframework.com, webchat.botframework.com und slack.botframework.com. Es lohnt sich auch, den Datenverkehr über Ihre Firewall zu überwachen, während Sie den Bot testen, um sicherzustellen, dass nichts anderes blockiert wird.

Kann ich sämtlichen Datenverkehr an meinen Bot mit Ausnahme des Datenverkehrs von Bot Framework Service blockieren?

Bot Framework Dienste werden in Azure-Rechenzentren weltweit gehostet, und die Liste der Azure-IPs ändert sich ständig. Dies bedeutet, dass das Zulassen der Auflistung bestimmter IP-Adressen eines Tages funktionieren und den nächsten bei einer Änderung der Azure-IP-Adressen unterbricht.

Welche RBAC-Rolle ist zum Erstellen und Bereitstellen eines Bots erforderlich?

Für die Bot-Erstellung über das Azure-Portal ist Zugriff vom Typ „Mitwirkender“ erforderlich – entweder im Abonnement oder in einer bestimmten Ressourcengruppe. Ein Benutzer, der über die Rolle Mitwirkender in einer Ressourcengruppe verfügt, kann einen neuen Bot in dieser spezifischen Ressourcengruppe erstellen. Ein Benutzer, der über die Rolle Mitwirkender für ein Abonnement verfügt, kann einen Bot in einer neuen Ressourcengruppe oder in einer bereits vorhandenen Ressourcengruppe erstellen.

Bei Verwendung der Azure-Befehlszeilenschnittstelle können über die rollenbasierte Zugriffssteuerung benutzerdefinierte Rollen unterstützt werden. Wenn Sie eine benutzerdefinierte Rolle mit eingeschränkteren Berechtigungen erstellen möchten, ermöglicht der folgende Satz dem Benutzer das Erstellen und Bereitstellen eines Bots, der auch LUIS, QnA Maker und Application Insights.

„Microsoft.Web/ “, „Microsoft.BotService/ “, „Microsoft.Storage/ “, „Microsoft.Resources/deployments/ “, „Microsoft.CognitiveServices/ “, „Microsoft.Search/searchServices/ “, „Microsoft.Insights/ “, „Microsoft.Insights/components/

Hinweis

Für LUIS und QnA Maker sind Cognitive Services-Berechtigungen erforderlich. Für QnA Maker sind außerdem Suchberechtigungen erforderlich. Denken Sie beim Erstellen einer benutzerdefinierten Rolle daran, dass alle geerbten Verweigern-Berechtigungen diese Berechtigungsberechtigungen abdrungen.

Wie wird mein Bot vor Clients geschützt, die die Identität von Bot Framework Service annehmen?

  1. Alle anforderungen Bot Framework authentifizierten Daten werden von einem JWT-Token begleitet, dessen kryptografische Signatur anhand des Authentifizierungsleitfadens überprüft werden kann. Das Token ist so konzipiert, dass Angreifer nicht die Identität vertrauenswürdiger Dienste annehmen können.
  2. Das Sicherheitstoken, das mit jeder Anforderung an Ihren Bot gesendet wird, enthält die codierte „ServiceUrl“. Selbst wenn ein Angreifer Zugriff auf das Token erlangt, kann er daher die Konversation nicht an eine neue „ServiceUrl“ umleiten. Dieses Verhalten wird von allen Implementierungen des SDK erzwungen und ist in unseren Referenzmaterialien zur Authentifizierung dokumentiert.
  3. Wenn das eingehende Token fehlt oder falsch formatiert ist, generiert das Bot Framework SDK kein Token. Auf diese Weise wird der Schaden begrenzt, der im Fall einer falschen Bot-Konfiguration entstehen kann.
  4. Innerhalb des Bots können Sie die im Token bereitgestellte „ServiceUrl“ manuell überprüfen. Dadurch ist der Bot anfälliger, wenn Änderungen an der Diensttopologie vorgenommen werden. Diese Vorgehensweise ist also möglich, aber nicht empfehlenswert.

Hinweis

Hierbei handelt es sich um ausgehende Verbindungen vom Bot mit dem Internet. Es gibt keine Liste von IP-Adressen oder DNS-Namen, die der Bot Framework Connector-Dienst zur Kommunikation mit dem Bot verwendet. Das Zulassen von eingehenden IP-Adressen wird nicht unterstützt.

Welchen Zweck hat der magische Code während der Authentifizierung?

Im Webchat-Steuerelement gibt es zwei Mechanismen, um sicherzustellen, dass der richtige Benutzer angemeldet ist.

  1. Magic-Code. Am Ende des Anmeldevorgangs wird dem Benutzer ein zufällig generierter sechsstelliger Code (magischer Code) angezeigt. Der Benutzer muss diesen Code in die Konversation eingeben, um den Anmeldevorgang abschließen zu können. Dies führt in der Regel zu einer schlechten Benutzerfreundlichkeit. Zudem ist er nach wie vor anfällig für Phishing-Angriffe. Ein böswilliger Benutzer kann einen anderen Benutzer dazu bringen, sich anzumelden und den magischen Code durch Phishing erhalten.

    Warnung

    Die Verwendung des Magic-Codes ist veraltet. Stattdessen sollten Sie Direct Line erweiterte Authentifizierung verwenden, wie unten beschrieben.

  2. Direct Line erweiterte Authentifizierung. Aufgrund der Probleme mit dem Magic Code-Ansatz Azure Bot Service seine Notwendigkeit entfernt. Azure Bot Service garantiert, dass der Anmeldevorgang nur in derselben Browsersitzung durchgeführt werden kann, in der sich auch die Web Chat-Instanz befindet. Um diesen Schutz zu aktivieren, müssen Sie Webchat mit einem Direct Line Token starten, das eine Liste vertrauenswürdiger Ursprünge enthält, die auch als vertrauenswürdige Domänen bezeichnet werden und den Webchat Client des Bots hosten können. Mit erweiterten Authentifizierungsoptionen können Sie die Liste der vertrauenswürdigen Ursprünge statisch auf der Konfigurationsseite Direct Line angeben. Weitere Informationen finden Sie unter Direct Line erweiterte Authentifizierung.

Wie behandelt die Bot Framework die Identitäts- und Zugriffsverwaltung?

Die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) ist ein Framework (Richtlinien und Technologien), das geeigneten Personen den entsprechenden Zugriff auf Technologieressourcen ermöglicht. Weitere Informationen finden Sie unter Identitätsverwaltung.

Die Bot Framework bietet die folgenden Identifikationsmechanismen:

  • Botauthentifizierung. Bestimmt, ob eine Anforderung von einer legitimen Quelle stammt. Sie wird vom Botconnectordienst gesteuert und ermöglicht eine sichere Kommunikation zwischen einem Bot und einem Kanal. Weitere Informationen finden Sie unter Botauthentifizierung.

  • Benutzerauthentifizierung. Es ermöglicht dem Bot, im Namen des Benutzers auf geschützte Onlineressourcen zuzugreifen. Der Branchenstandard OAuth wird verwendet, um den Benutzer zu authentifizieren und den Bot für den Zugriff auf die Ressourcen zu autorisieren. Weitere Informationen finden Sie unter Benutzerauthentifizierung.

Zusammenfassend wird vom Bot Framework die Dienst-zu-Dienst-Authentifizierung (Botauthentifizierung) verarbeitet. Dabei wird im Wesentlichen darauf hindeutet, dass eine Anforderung tatsächlich von einem richtigen Kanal stammt. Der Bot ist für die Verarbeitung niedrigerer Authentifizierungsebenen verantwortlich. Sie können einen Filter anwenden, damit Ihr Bot nur Anforderungen von einer bestimmten Mandanten-ID akzeptiert, oder Sie können ihre Benutzer auffordern, sich mit einem OAuth-Dienst (Benutzerauthentifizierung) zu authentifizieren.

Gewusst wie die Verwendung meines Bots auf Benutzer beschränken, die zu meinem Mandanten gehören?

Sie haben zwei verschiedene Optionen zum Einschränken eingehender Nachrichten, die Ihr Bot verarbeitet.

  • Wenn Sie mit sicheren Daten zu tun haben, empfiehlt es sich auf jeden Fall, OAuth zum Authentifizieren der Benutzer zu verwenden.

  • Die Verwendung von Middleware ist eine weitere gute Option. Fügen Sie beispielsweise im Fall des Teams-Kanals ihrem Bot die TeamsTenantFilteringMiddleware -Klasse hinzu, und verkabeln Sie sie in Ihrer Startmethode. Sehen Sie sich diese Beispiele an: C#-Version, JavaScript-Version.

    Warnung

    Sie können weder verhindern, dass Teams Ihnen Nachrichten von verschiedenen Mandanten sendet, noch können Sie verhindern, dass jemand Ihren Bot installiert, wenn er Über Ihr App-Manifest hat. Sie können nur verhindern, dass Ihr Bot die unerwünschten Nachrichten verarbeitet.