Udostępnij za pośrednictwem


Typy uwierzytelniania

DOTYCZY: ZESTAW SDK w wersji 4

W strukturze Bot Framework istnieją dwie szerokie kategorie uwierzytelniania: uwierzytelnianie bota i uwierzytelnianie użytkowników. Każdy z nich ma skojarzony token umożliwiający dostęp do zabezpieczonych zasobów. Na poniższej ilustracji przedstawiono elementy związane zarówno z uwierzytelnianiem bota, jak i użytkownikami.

Diagram illustrating the difference between the token for a bot and the token for a user.

Na poniższej ilustracji:

  • Platforma hosta to platforma hostingu botów. Może to być platforma Azure lub dowolna wybrana platforma hosta.
  • Bot Połączenie or Service ułatwia komunikację między botem a kanałem. Konwertuje komunikaty odebrane z kanałów na obiekty działań i wysyła je do punktu końcowego obsługi komunikatów bota. Podobnie konwertuje obiekty działań odebrane od bota na komunikaty zrozumiałe dla kanału i wysyła je do kanału.
  • Adapter bota jest domyślną kartą Bot Framework. To:
    • Konwertuje ładunek JSON na obiekt działania.
    • Tworzy kontekst kolei i dodaje do niego obiekt działania.
    • Uruchamia oprogramowanie pośredniczące, jeśli istnieje.
    • Przekazuje kontekst kolei do bota.

Uwaga

Gdy jest używana niestandardowa karta kanału, karta wykonuje zadania wykonywane przez usługę Bot Połączenie or i domyślną kartę bota. Ponadto zapewnia mechanizm uwierzytelniania dla powiązanego interfejsu API elementu Web Hook. Aby zapoznać się z przykładem, zobacz Połączenie bota do usługi Slack przy użyciu adaptera Slack.

Uwierzytelnianie bota

Bot jest identyfikowany przez jego identyfikatory MicrosoftAppID i MicrosoftAppPassword, które są przechowywane w plikach ustawień bota (appsettings.json (.NET), .env (JavaScript), config.py (Python)) lub wpisów tajnych lub menedżera kluczy. Aby uzyskać więcej informacji, zobacz MicrosoftAppID i MicrosoftAppPassword.

Podczas rejestrowania bota w witrynie Azure Portal platforma Azure tworzy aplikację rejestracji identyfikatora entra firmy Microsoft. Jeśli używasz interfejsu wiersza polecenia platformy Bot Framework, musisz w szczególności wykonać krok, aby utworzyć rejestrację identyfikatora Entra firmy Microsoft. Ta rejestracja ma identyfikator aplikacji (MicrosoftAppID) i klucz tajny klienta (MicrosoftAppPassword). Platforma Azure używa tych wartości do wygenerowania tokenu, za pomocą którego bot może uzyskać dostęp do bezpiecznych zasobów.

Gdy kanał wysyła żądanie do bota, za pośrednictwem usługi Bot Połączenie or, określa token w nagłówku autoryzacji żądania. Bot uwierzytelnia wywołania z usługi Bot Połączenie or, weryfikując autentyczność tokenu.

Gdy bot wysyła żądanie do kanału za pośrednictwem usługi Bot Połączenie or, musi określić token w nagłówku Autoryzacja żądania. Wszystkie żądania muszą zawierać token dostępu, który jest weryfikowany przez usługę Bot Połączenie or w celu autoryzowania żądania.

Opisane operacje są wykonywane automatycznie przez zestaw Sdk platformy Bot Framework.

Aby uzyskać więcej informacji, zobacz dokumentację interfejsu API REST dotyczącą uwierzytelniania żądań z usługi Bot Połączenie or do bota i uwierzytelniania żądań z bota do usługi Bot Połączenie or.

Kanały

Zazwyczaj kanały komunikują się z botem za pośrednictwem usługi Bot Połączenie or, dlatego stosowane są zwykle poprzednie zasady uwierzytelniania. Niektóre kanały i funkcje mają unikatowe zagadnienia dotyczące uwierzytelniania.

Direct Line

Oprócz standardowych obsługiwanych kanałów aplikacja kliencka może komunikować się z botem przy użyciu kanału Direct Line.

Aplikacja kliencka uwierzytelnia żądania do usługi Direct Line (wersja 3.0) przy użyciu wpisu tajnego uzyskanego ze strony konfiguracji kanału Direct Line w witrynie Azure Portal lub, lepiej, przy użyciu tokenu uzyskanego w czasie wykonywania. Wpis tajny lub token jest określony w nagłówku Autoryzacja każdego żądania.

Ważne

W przypadku korzystania z uwierzytelniania usługi Azure AI Bot Service z czat internetowy należy pamiętać o ważnych kwestiach dotyczących zabezpieczeń. Aby uzyskać więcej informacji, zobacz sekcję zagadnienia dotyczące zabezpieczeń w artykule dotyczącym uwierzytelniania REST.

Aby uzyskać więcej informacji, zobacz Przechowywanie wpisu tajnego w ukryciu, wymiana wpisu tajnego dla tokenu i generowanie osadzania.

Czat internetowy

Czat internetowy ma dwie implementacje: kanał i kontrolkę.

  • Po zarejestrowaniu bota na platformie Azure kanał czat internetowy jest automatycznie skonfigurowany w celu umożliwienia testowania bota. Aby uzyskać więcej informacji, zobacz Połączenie bota do czat internetowy.
  • Aby zapewnić dostęp do bota w aplikacji klienckiej, możesz użyć kontrolki czat internetowy z kanałem Direct Line. Aby uzyskać więcej informacji na temat kontrolki, zobacz Bot Framework czat internetowy.

Umiejętności

Umiejętności i użytkownik umiejętności to dwa odrębne boty, z których każdy ma własny identyfikator aplikacji i hasło.

  • Użytkownik może przekazywać działania użytkownika do umiejętności i przekazywać odpowiedzi umiejętności użytkownikowi.
  • Do umiejętności konsument umiejętności działa jako kanał. Użytkownik ma punkt końcowy hosta umiejętności, który działa jako adres URL usługi, do którego umiejętności wysyła działania.
  • Aby uzyskać więcej informacji na temat umiejętności, zobacz omówienie umiejętności.

Uwierzytelnianie na poziomie usługi jest zarządzane przez usługę Bot Połączenie or. Platforma używa tokenów elementu nośnego i identyfikatorów aplikacji bota do weryfikowania tożsamości każdego bota.

Ważne

Wymaga to, aby wszystkie boty (użytkownik umiejętności i wszystkie używane przez niego umiejętności) miały prawidłowe poświadczenia aplikacji.

Walidacja oświadczeń

Oprócz tego podstawowego poziomu uwierzytelniania należy dodać moduł sprawdzania poprawności oświadczeń do konfiguracji uwierzytelniania umiejętności i użytkownika umiejętności. Oświadczenia są oceniane po nagłówku uwierzytelniania. Ten proces umożliwia każdemu botowi ograniczenie, z których innych botów będzie akceptować działania.

Aby zapoznać się z weryfikacją przykładowych oświadczeń, zobacz, jak zaimplementować umiejętności i wdrożyć konsumenta umiejętności.

Bot Framework Emulator

Bot Framework Emulator ma własny przepływ uwierzytelniania i własne tokeny. Emulator ma własny kanał i wbudowany serwer.

Uwierzytelnianie użytkownika

Czasami bot musi uzyskiwać dostęp do zabezpieczonych zasobów online w imieniu użytkownika. Aby to zrobić, bot musi być autoryzowany. Jest to spowodowane tym, że aby wykonać pewne operacje, takie jak sprawdzanie poczty e-mail, sprawdzanie stanu lotu lub składanie zamówienia, bot musi wywołać usługę zewnętrzną, taką jak Microsoft Graph, GitHub lub usługa REST firmy. Uwierzytelnianie OAuth służy do uwierzytelniania użytkownika i autoryzowania bota.

Uwaga

Dwa kroki makr są związane z botem w celu uzyskania dostępu do zasobów użytkownika.

  1. Uwierzytelnianie. Proces weryfikowania tożsamości użytkownika.
  2. Autoryzacja. Proces sprawdzania, czy bot może uzyskać dostęp do zasobów użytkownika.

Jeśli pierwszy krok zakończy się pomyślnie, zostanie wystawiony token oparty na poświadczeniach użytkownika. W drugim kroku bot używa tokenu w celu uzyskania dostępu do zasobów użytkownika.

Aby uzyskać więcej informacji, zobacz Uwierzytelnianie użytkowników.

Dostawcy tożsamości

Dostawca tożsamości uwierzytelnia tożsamości użytkowników lub klientów i wystawia eksploatacyjne tokeny zabezpieczające. Zapewnia uwierzytelnianie użytkownika jako usługę. Aplikacje klienckie, takie jak aplikacje internetowe, deleguj uwierzytelnianie do zaufanego dostawcy tożsamości.

Bot może używać zaufanego dostawcy tożsamości do:

  • Włącz funkcje logowania jednokrotnego (SSO), co umożliwia dostęp do wielu zabezpieczonych zasobów.
  • Połączenie do zasobów przetwarzania w chmurze w imieniu użytkownika, zmniejszając potrzebę ponownego uwierzytelnienia użytkowników.

Uwaga

Token wystawiony podczas uwierzytelniania bota nie jest tym samym tokenem wystawionym podczas uwierzytelniania użytkownika. Pierwszy służy do ustanawiania bezpiecznej komunikacji między botem, kanałami i ostatecznie aplikacjami klienckimi. Drugi służy do autoryzowania bota w celu uzyskania dostępu do zabezpieczonego zasobu w imieniu użytkownika.

Zwróć uwagę, że kanały zapewniają własne, oddzielne uwierzytelnianie użytkowników, aby umożliwić użytkownikowi logowanie się do kanału.

Zobacz Dostawcy tożsamości, aby uzyskać więcej informacji o tym, jak boty mogą uzyskiwać dostęp do zasobów w imieniu użytkownika za pomocą dostawców tożsamości.