Dodaj uwierzytelnianie użytkowników do tematu, aby umożliwić klientom logowanie się bezpośrednio w konwersacji. Następnie możesz spersonalizować konwersację przy użyciu zmiennych użytkownika lub uzyskiwać dostęp do systemów zaplecza w imieniu użytkownika.
Aby można było korzystać z uwierzytelniania w Tożsamości Microsoft Entra, należy skonfigurować uwierzytelnianie użytkowników za pomocą identyfikatora.
Postępuj zgodnie z instrukcjami w temacie Konfigurowanie uwierzytelniania użytkownika przy użyciu Tożsamości Microsoft Entra.
Dodawanie uwierzytelniania użytkownika przy użyciu tematu Logowanie do systemu
Podczas tworzenia pomocnika Copilot Studio automatycznie dodaje temat systemowy o nazwie Logowanie. Aby można było korzystać z pomocnika, należy ustawić jego uwierzytelnianie jako ręczne i wymagać od użytkowników zalogowania się. Kiedy klient rozpoczyna rozmowę z pomocnikiem, temat Logowanie jest wyzwalany i monituje użytkownika o zalogowanie. Temat Logowanie można dostosować odpowiednio do potrzeb pomocnika.
Ważne
Zaleca się, aby temat Logowanie był jest używany tylko do podania metody uwierzytelniania podanej przez Copilot Studio. Nie należy go modyfikować w celu wywołania innych akcji, przepływów ani innych metod uwierzytelniania.
Otwórz pomocnika w Copilot Studio, wybierz opcję Ustawienia w górnej części strony, a następnie wybierz opcję Bezpieczeństwo.
Wybierz Uwierzytelnianie.
Wybierz Uwierzytelnij ręcznie, a następnie wybierz Wymagaj logowania użytkowników.
Skonfiguruj wszystkie pola uwierzytelniania ręcznego zgodnie z wymaganiami.
Wybierz pozycję Zapisz.
Dodawanie uwierzytelniania użytkowników za pomocą tematu niestandardowego
Temat Logowanie uwierzytelnia użytkownika na początku rozmowy. Aby umożliwić użytkownikowi późniejsze zalogowanie się, możesz dodać węzeł Uwierzytelnij do dowolnego tematu niestandardowego.
Gdy klienci podają nazwę użytkownika i hasło, może zostać wyświetlony monit o wprowadzenie kodu weryfikacji. Po zalogowaniu się nie jest wyświetlany monit ponownie, nawet jeśli dotrą do innego węzła uwierzytelniania .
Wybierz opcję Ustawienia w górnej części strony, a następnie wybierz opcję Bezpieczeństwo.
Wybierz kafelek Uwierzytelnianie w sieci Web.
Uwaga
Aby dodać uwierzytelnianie użytkownika do tematu niestandardowego, należy wybrać opcję Uwierzytelniaj ręcznie.
Wyczyść pole wyboru Wymagaj logowania użytkowników.
Skonfiguruj wszystkie pola uwierzytelniania ręcznego zgodnie z wymaganiami.
Wybierz pozycję Zapisz.
W górnej części strony wybierz pozycję Tematy.
Wybierz opcję Dodaj węzeł () >Zaawansowane>Uwierzytelnij.
Przetestuj temat z użytkownikiem skonfigurowanym z dostawcą tożsamości.
Napiwek
Ważne jest, aby tworzyć ścieżki dla sukcesu i niepowodzenia logowania. Logowanie może się nie powieść z wielu powodów, w tym błędów podczas logowania do dostawcy tożsamości.
Zmienne uwierzytelniania
Po skonfigurowaniu uwierzytelniania użytkownika dla drugiego pilota można używać zmiennych uwierzytelniania w tematach. Poniższa tabela zawiera porównanie dostępności tych zmiennych w oparciu o wybraną opcję uwierzytelniania.
Aby uzyskać więcej informacji na temat zmiennych, zobacz Praca ze zmiennymi.
Zmienna uwierzytelniania |
Bez uwierzytelniania |
Uwierzytelnij za pomocą usługi firmy Microsoft |
Uwierzytelnij ręcznie |
User.DisplayName (Nazwa_wyświetlana) |
Niedostępny |
Dostępna |
Dostępna |
Użytkownik.FirstName |
Niedostępny |
Dostępna |
Dostępna |
Użytkownik.LastName |
Niedostępny |
Dostępna |
Dostępna |
Użytkownik.PrincipalName |
Niedostępny |
Dostępna |
Dostępna |
Użytkownik.Email |
Niedostępny |
Dostępna |
Dostępna |
User.Id |
Niedostępny |
Dostępna |
Dostępna |
User.IsLoggedIn |
Niedostępny |
Dostępna |
Dostępna |
User.AccessToken (Identyfikator dostępu) |
Niedostępny |
Niedostępny |
Dostępna |
SignInReason |
Niedostępny |
Dostępna |
Dostępna |
User.DisplayName
Ostrzeżenie
W przypadku tej zmiennej nie ma gwarancji, że zawiera wartość. Przeprowadź test z użytkownikiem z poziomu dostawcy tożsamości, aby upewnić się, że tematy działają poprawnie.
Zmienna User.DisplayName
zawiera wyświetlaną nazwę przechowywaną w dostawcy tożsamości. Użyj tej zmiennej, aby powitać użytkownika lub odwołać się do niego bez konieczności jawnego podawania jego nazwy pomocnikowi, co zwiększa stopień personalizacji konwersacji.
Usługa Copilot Studio automatycznie ustawia wartość User.DisplayName
z oświadczenia name
dostarczonego przez dostawcę tożsamości, o ile zakres profile
został zdefiniowany podczas konfigurowania uwierzytelniania ręcznego. Aby uzyskać więcej informacji na temat zakresu, zobacz Konfigurowanie uwierzytelniania użytkownika przy użyciu usługi Microsoft Entra ID.
User.Id
Ostrzeżenie
W przypadku tej zmiennej nie ma gwarancji, że zawiera wartość. Przeprowadź test z użytkownikiem z poziomu dostawcy tożsamości, aby upewnić się, że tematy działają poprawnie.
Zmienna User.Id
zawiera identyfikator użytkownika przechowywany w dostawcy tożsamości. Ta wartość może być używana przez przepływy usługi Power Automate do wywołania interfejsów API, które mają identyfikator UserID jako wartość.
Usługa Copilot Studio automatycznie ustawia wartość User.DisplayName
na podstawie oświadczenia sub
podanego przez dostawcę tożsamości.
User.IsLoggedIn
User.IsLoggedIn
to zmienna logiczna, która przechowuje stan logowania użytkownika. Wartość true
wskazuje, że użytkownik jest zalogowany. Zmiennej tej można użyć do utworzenia logiki rozgałęziania w tematach, które wyszukują pomyślne zalogowanie, lub pobierania informacji o użytkowniku tylko wtedy, gdy jest on zalogowany.
User.AccessToken
Ostrzeżenie
Upewnij się, że zmienna User.AccessToken
jest przekazywana tylko zaufanym źródłom. Zawiera informacje o uwierzytelnianiu użytkownika, które w przypadku złamania naruszenia zabezpieczeń mogą zaszkodzić użytkownikowi.
Zmienna User.AccessToken
zawiera token użytkownika uzyskiwany po jego zalogowaniu. Tą zmienną można przekazać do przepływów usługi Power Automate, tak aby mogły łączyć się z interfejsami API zaplecza i pobierać informacje o użytkowniku lub podejmować działania w imieniu użytkownika.
Nie używaj elementu User.AccessToken
w węzłach Wiadomość lub w przepływach, którym nie ufasz.
SignInReason
SignInReason
to zmienna typu wyboru, która wskazuje, kiedy użytkownik musi się zalogować. Ma dwie możliwe wartości:
SignInRequired
Wskazuje, że użytkownik musi zalogować się na początku konwersacji, korzystając z tematu systemowego logowania . Opcja Wymagaj od użytkowników logowania musi być włączona.
Initializer
Wskazuje, że gdy użytkownik nie jest zalogowany i dotrze do punktu konwersacji, w którym używane są zmienne uwierzytelniania, zostanie wyświetlony monit o zalogowanie się.
Zmienne uwierzytelniania
Jeśli drugi pilot jest skonfigurowany z opcjami uwierzytelniania ręcznego lub uwierzytelniania ręcznego , masz zestaw zmiennych uwierzytelniania dostępnych w tematach. Więcej informacji o konfiguracji uwierzytelnienia w pomocniku znajdziesz w pomocniku, zobacz Konfigurowanie uwierzytelnienia użytkownika w Copilot Studio.
Poniższa tabela zawiera porównanie dostępności zmiennych uwierzytelniania według opcji konfiguracji uwierzytelniania:
Zmienna uwierzytelniania |
Bez uwierzytelniania |
Uwierzytelnij za pomocą usługi firmy Microsoft |
Ręcznie |
User.DisplayName |
❌ |
✔️ |
✔️ |
User.Id |
❌ |
✔️ |
✔️ |
User.IsLoggedIn |
❌ |
❌ |
✔️ |
User.AccessToken |
❌ |
❌ |
✔️ |
Zmienna UserDisplayName
Zmienna User.DisplayName
zawiera wyświetlaną nazwę użytkownika przechowywaną w obrębie dostawcy tożsamości. Można z niej skorzystać, aby powitać użytkownika końcowego lub odwołać się do niego bez konieczności jawnego informowania pomocniku o tym, co zwiększa stopień jego personalizacji.
Ta wartość pola jest otrzymana z Tożsamości Microsoft Entra o oświadczeniu name
. W przypadku OAuth dostawców ta wartość jest przechowywana name
w oświadczeniu. Program Copilot Studio automatycznie wyodrębnienia to pole do zmiennej, dlatego należy się upewnić, że element profile
stanowi część konfiguracji zakresu uwierzytelnienia.
Zmienna UserID
Zmienna User.Id
zawiera wyświetlany identyfikator użytkownika przechowywany w obrębie dostawcy tożsamości. Power Automate przepływy mogą używać tej wartości do wywoływania interfejsów API, które przyjmują identyfikator użytkownika jako wartość.
Ta wartość pola jest otrzymana z Tożsamości Microsoft Entra o oświadczeniu sub
. W przypadku OAuth dostawców ta wartość jest przechowywana sub
w oświadczeniu. Program Copilot Studio automatycznie wyodrębnia to pole do zmiennej.
Ostrzeżenie
Nie User.DisplayName
ma gwarancji, że zmienne i User.Id
zostaną wypełnione i mogą być pustymi ciągami, w zależności od konfiguracji użytkownika w dostawcy tożsamości. Przeprowadź test z użytkownikiem z poziomu dostawcy identyfikacji, aby upewnić się, że tematy będą działały poprawnie, nawet jeśli te zmienne są puste.
Zmienna IsLoggedIn
Zmienna User.IsLoggedIn
wskazuje, czy użytkownik jest zalogowany (w wyniku zalogowania się lub już zalogowany, znany również jako ścieżka powodzenia logowania), czy niezalogowany (co skutkowałoby ścieżką niepowodzenia logowania).
User.IsLoggedIn
to zmienna logiczna zawierająca stan zalogowania użytkownika. Zmiennej tej można użyć do utworzenia logiki rozgałęziania w tematach, które wyszukują pomyślne zalogowanie (na przykład w szablonie już dostarczonym jako część dodawania węzła uwierzytelnienia), lub okazyjnego pobierania informacji o użytkowniku tylko wtedy, gdy jest on zalogowany.
User.AccessToken zmienna
Zmienna User.AccessToken
zawiera token użytkownika uzyskiwany po jego zalogowaniu. Tą zmienną można przekazać do przepływów usługi Power Automate, tak aby mogły łączyć się z interfejsami API zaplecza i pobierać informacje o użytkowniku lub podejmować działania w imieniu użytkownika.
Ostrzeżenie
Upewnij się, że zmienna User.AccessToken
jest przekazywana tylko zaufanym źródłom. Zawiera informacje o uwierzytelnianiu użytkownika, które w przypadku złamania naruszenia zabezpieczeń mogą zaszkodzić użytkownikowi.
Nie należy używać elementu User.AccessToken
wewnątrz węzłów Komunikat lub niezaufanych przepływów.
Testowanie zmiennych uwierzytelniania
Domyślnie okienko Testowanie bota używa konta aktualnie zalogowanego użytkownika do wypełnienia User.DisplayName
zmiennych i User.Id
. Podczas testowania tematów, które korzystają z uwierzytelniania, można jednak użyć innych wartości tych zmiennych (lub nawet pustej wartości).
Można na przykład przetestować sposób, w jaki są używane znaki specjalne, lub co się dzieje, jeśli zmienna jest pusta.
W poniższej tabeli wymieniono polecenia służące do wypełniania tych zmiennych. Te polecenia mają zastosowanie tylko do okienka Testowanie bota ; nie można ich używać w opublikowanym drugim pilocie wdrożonym w kanale.
Wprowadź żądane polecenie do okienka Testowanie bota , tak jakbyś normalnie rozmawiał z drugim pilotem. Jeśli Ci się uda, otrzymasz komunikat z potwierdzeniem z pomocnika. Jeśli pomocnik nie korzysta z uwierzytelniania, zobaczysz błąd.
Jeśli zresetujesz okienko Testowanie bota (lub wprowadzisz zmiany w temacie, które spowodująTestowanie bota zostanie automatycznie zresetowane), musisz ponownie wysłać polecenia.
Zmienna |
Wartość niestandardowa — polecenie |
Polecenie —pusta (blank) wartość |
User.DisplayName |
/debug set bot.UserDisplayName "Value" |
/debug set bot.UserDisplayName "" |
User.Id |
Niedostępny |
/debug set bot.UserID "" |
Ważne
Ze względów bezpieczeństwa nie można wypełnić zmiennej User.Id
wartością niestandardową (inną niż wartość pusta lub pusta).
Uwierzytelnianie podczas korzystania z funkcji "Uwierzytelnij się w firmie Microsoft"
Jeśli opcja uwierzytelniania jest ustawiona na wartość Uwierzytelnij się w firmie Microsoft, nie musisz jawnie dodawać uwierzytelniania do tematów. W tej konfiguracji każdy użytkownik w programie Microsoft Teams jest automatycznie logowany za pośrednictwem poświadczeń Teams i nie musi jawnie zalogować się przy użyciu karty uwierzytelniania. Jeśli opcja uwierzytelniania jest ustawiona na wartość Ręcznie, musisz dodać węzeł Uwierzytelnianie (nawet dla kanału Teams).
Uwaga
Jeśli opcja uwierzytelniania jest ustawiona na wartość Uwierzytelnij za pomocą firmy Microsoft, nie masz możliwości jawnego dodania uwierzytelniania do tematów.
Dodawanie uwierzytelniania użytkowników do tematu
Węzeł Uwierzytelnianie monituje użytkownika o zalogowanie się przy użyciu karty logowania. Po zalogowaniu użytkownik nie jest monitowany ponownie, nawet jeśli dotrze do innego węzła uwierzytelniania .
Gdy użytkownik wprowadzi swoją nazwę użytkownika i hasło w monicie (hostowanym przez dostawcę tożsamości), może zostać poproszony o wprowadzenie kodu walidacji w zależności od kanału. Niektóre kanały, takie jak Microsoft Teams kanały, nie wymagają od użytkownika kodu weryfikacyjnego.
Jeśli Twój pomocnik ma skonfigurowane logowanie jednokrotne, użytkownik nie będzie monitowany o zalogowanie się.
Aby dodać węzeł Uwierzytelnianie do tematu:
Przejdź do strony tematów pomocnika, którego chcesz edytować.
Otwórz temat, do którego chcesz dodać szablon uwierzytelniania.
Uwaga
Jeśli pomocnik jest połączona z aplikacją Dynamics 365 Customer Service, węzeł Uwierzytelnianie nie może być częścią ścieżki rozmowy, którą użytkownik śledzi podczas początkowego powitania użytkowników. W przeciwnym razie karta logowania zostanie pokazana dwa razy. Zamiast tego należy dodać węzeł Uwierzytelnianie do innego tematu, który jest wyzwalany przez odpowiedź użytkownika.
Wybierz Dodaj węzeł (+), aby dodać węzeł komunikatu. Wprowadź tekst, który pomocnik powinien wypowiedzieć, aby wskazać, że nastąpi operacja logowania.
Pod węzłem wiadomości wybierz ikonę plusa Add node (+), wybierz opcję Wywołaj akcję, a następnie wybierz opcję Uwierzytelnienie.
Uwaga
Węzeł Uwierzytelnianie jest dostępny w selektorze akcji na końcu drzewa dialogu (jako węzeł typu liść). Nie może być dodany w połowie okna dialogowego. Po dodaniu można dodać do niego inne węzły.
Automatycznie pojawiają się nowe węzły: element nadrzędnyAuthenticate , a następnie węzły dla ścieżki powodzenia i ścieżki niepowodzenia.
Użycie User.AccessToken bez węzła uwierzytelniania
Zmienne User.IsLoggedIn
i User.AccessToken
są dostępne nawet wtedy, gdy nie korzystasz z szablonu dostarczonego w pozycji menu Wywołaj akcję . Jeśli zmienna zostanie przekazana User.AccessToken
bez uprzedniego przejścia użytkownika przez węzeł Uwierzytelnianie , użytkownik zostanie poproszony o zalogowanie się w tym kroku.
Przekazanie zmiennej User.AccessToken
może być przydatne, jeśli zawsze oczekujesz, że użytkownik będzie zalogowany lub jeśli Twój użytkownik jest przekierowywany z innego tematu. Sugerujemy, aby użyć szablonu określonego przez wpis Wywołaj akcję w celu obsługi przypadków, dla których użytkownik nie może się zalogować.
Uwaga
Jeśli użytkownik wyloguje się w trakcie konwersacji, zostanie poproszony o ponowne zalogowanie się, jeśli temat zostanie wyświetlony w węźle, który używa User.AccessToken
zmiennej.
Ścieżka powodzenia
Ścieżka powodzenia jest równa miejscu, w którym User.IsLoggedIn = True
użytkownik został pomyślnie zalogowany (lub był już zalogowany).
Jeśli masz logikę, która używa zmiennej User.AccessToken
(na przykład do nawiązywania połączenia z systemem zaplecza przy użyciu przepływu w celu pobrania informacji o użytkowniku), powinna ona przejść pod tą ścieżką.
Ścieżka niepowodzenia
Ścieżka niepowodzenia jest równa dowolnemu warunkowi innemu niż IsLoggedIn = True
. W większości przypadków ścieżka niepowodzenia występuje, ponieważ użytkownik nie mógł się zalogować, użył nieprawidłowego hasła lub anulował logowanie.
Dodaj dowolną logikę, nad którą chcesz pracować w tej sprawie. Jako przykład udostępniliśmy opcje ponawiania próby lub eskalacji do prawdziwego przedstawiciela. Dostosuj akcje ścieżki niepowodzenia do konkretnego scenariusza i sposobu korzystania.
Testowanie tematu
Należy upewnić się, że przetestowano temat przy użyciu prawdziwego użytkownika skonfigurowanego we własnym dostawcy tożsamości. Upewnij się, że są wykonywane zarówno ścieżki powodzenia, jak i niepowodzenia logowania, aby nie było niespodzianek, jeśli użytkownik nie może się zalogować lub wystąpi błąd w środowisku logowania dostawcy tożsamości.