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 są oni ponownie monitowani, 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 przy użyciu użytkownika skonfigurowanego w dostawcy 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żytkowników dla pomocnika można w tematach używać zmiennych uwierzytelniania. 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 |
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 |
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ę użytkownika przechowywaną w obrębie 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 wyświetlany identyfikator użytkownika przechowywany w obrębie 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 przechowująca 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
oznacza, że użytkownik musi zalogować się na początku rozmowy przy użyciu funkcji Logowanie w temacie systemowym. Opcja Wymagaj od użytkowników logowania musi być włączona.
Initializer
wskazuje, że gdy użytkownik nie jest zalogowany i osiągnie punkt w konwersacji, który wykorzystuje zmienne uwierzytelniające, zostanie poproszony o zalogowanie się.
Zmienne uwierzytelniania
Jeśli pomocnik jest skonfigurowany z opcjami uwierzytelniania Uwierzytelnianie za pomocą Microsoft lub Ręcznie, w tematach dostępny jest zestaw zmiennych uwierzytelniających. 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 dostawców OAuth jest to wartość przechowywana w oświadczeniu name
. 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. Przepływy Power Automate mogą wykorzystywać tę wartość do wywoływania interfejsów API, które przyjmują UserID jako wartość.
Ta wartość pola jest otrzymana z Tożsamości Microsoft Entra o oświadczeniu sub
. W przypadku dostawców OAuth jest to wartość przechowywana w oświadczeniu sub
. Program Copilot Studio automatycznie wyodrębnia to pole do zmiennej.
Ostrzeżenie
Wypełnienie zmiennych User.DisplayName
i User.Id
nie jest gwarantowane. Mogą być one 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 (albo w wyniku zalogowania, czy był już zalogowany, tzw. ścieżką powodzenia logowania) albo nie zalogował się (co może skutkować ścieżką niepowodzenia logowania).
User.IsLoggedIn
to zmienna typu „wartość logiczna” zawierająca stan zalogowanego 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.
Zmienna User.AccessToken
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 Przetestuj bota będzie używać konta aktualnie zalogowanego użytkownika, aby zapełnić listy zmiennych User.DisplayName
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, które będą wypełniać pola tymi zmiennymi. Polecenia te mają zastosowanie tylko do panelu Testuj bota; nie można ich używać w opublikowanym Copilocie wdrożonym na kanale.
Wprowadź polecenie w okienku Przetestuj bota tak samo, jak podczas normalnej rozmowy z pomocnikiem. Jeśli Ci się uda, otrzymasz komunikat z potwierdzeniem z pomocnika. Jeśli pomocnik nie korzysta z uwierzytelniania, zobaczysz błąd.
Jeśli okienko Przetestuj bota zostanie zresetowane (lub użytkownik wprowadzi zmiany w temacie, które powodują automatyczne zresetowanie funkcji Przetestuj bota), konieczne będzie ponowne wysłanie poleceń.
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ż pusta lub pusta wartość).
Uwierzytelnianie przy użyciu opcji „Uwierzytelnianie przez Microsoft”
Jeśli opcja uwierzytelniania jest ustawiona Uwierzytelnianie za pomocą Microsoft, nie trzeba 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 Ręczne, konieczne będzie dodanie węzła uwierzytelnienia (nawet w przypadku kanału aplikacji Teams).
Uwaga
Jeśli opcja uwierzytelniania jest ustawiona na Uwierzytelnianie z Microsoft, nie można jawnie dodawać 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 się użytkownik nie jest już monitowany, 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, nie wymagają od użytkownika wprowadzenia kodu walidacji przez użytkownika.
Jeśli Twój pomocnik ma skonfigurowane logowanie jednokrotne, użytkownik nie będzie monitowany o zalogowanie się.
Dodanie węzła uwierzytelniania 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ł uwierzytelnienia 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.
Nowe węzły pojawiają się automatycznie: węzeł nadrzędny Uwierzytelniania, a następnie węzły dla ścieżki sukcesu i ścieżki niepowodzenia.
Użycie zmiennej User.AccessToken bez węzła uwierzytelniania
Zmienne User.IsLoggedIn
i User.AccessToken
są dostępne nawet wtedy, gdy nie jest używany szablon dostarczony przez wpis menu Wywołaj akcję. Jeśli przekażesz zmienną User.AccessToken
bez wcześniejszego przejścia przez użytkownika przez węzeł uwierzytelniania, zostanie wyświetlony monit o zalogowanie się użytkownika w tym kroku.
Przekazanie zmiennej User.AccessToken
może być przydatne, jeśli użytkownik ma być zawsze zalogowany lub jeśli 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 środku konwersacji, będzie monitowany o ponowne zalogowanie się, jeśli temat znajdzie się w węźle, który korzysta ze zmiennej User.AccessToken
.
Ścieżka powodzenia
Ścieżka powodzenia jest równa miejscu, w którym zmienna User.IsLoggedIn = True
, i wskazuje, czy użytkownik został pomyślnie zalogowany (lub był zalogowany wcześniej).
Jeśli korzystasz z logiki używającej zmiennej User.AccessToken
(na przykład do łączenia się z systemem zaplecza przy użyciu przepływu w celu pobrania informacji o użytkowniku), powinno się ją znaleźć 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 jest spowodowana błędem logowania użytkownika przy użyciu niewłaściwego hasła lub anulowanym doświadczeniem podczas logowania.
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 ścieżki powodzenia i niepowodzenia logowania są wykonywane, aby nie było niespodzianek, gdy użytkownikowi nie uda się zalogować, lub gdy wystąpi błąd dotyczący sposobu logowania się dla dostawcy tożsamości.