Udostępnij za pośrednictwem


Konfigurowanie jednokrotnego logowania z ogólnymi dostawcami OAuth

Copilot Studio obsługuje logowanie jednokrotne u dostawców uwierzytelniania zgodnego z programem OAuth 2.0. Logowanie jednokrotne umożliwia agentom w Twojej witrynie logowanie klientów, jeśli zalogowali się na stronie lub w aplikacji, w której wdrożono agent.

Wymagania wstępne

Tworzenie i używanie kanw niestandardowych obsługujący ogólny przepływ jednokrotnego logowania dostawcy OAuth

Gdy temat uwierzytelniania zostanie wyzwolony w agentach połączonych z ogólnym OAuth dostawcą 2.0, Copilot Studio wysyła wiadomość zawierającą bezpieczny adres URL, który jest używany do publikowania tokenu dostępu użytkownika.

Kanwa niestandardowa lub strona, na której kanwa jest osadzona, powinna implementować następujący wzorzec:

  1. Należy uzyskać token dostępu logowania od dostawcy uwierzytelniania OAuth 2.0, używając preferowanej metody.

  2. Odszukaj przychodzącą wiadomość z Copilot Studio i wyodrębnij bezpieczny adres URL.

  3. Opublikuj token dostępu do bezpiecznego adresu URL.

Wyodrębnij token dostępu do bezpiecznego adresu URL i go opublikuj

Kanwę niestandardową przechwytuje wiadomości przychodzące przy użyciu pojęcia oprogramowania pośredniczącego, czyli kodu uruchamianego w kontekście odbierania wiadomości z Copilot Studio.

Aby zareagować na żądania logowania, kanwa niestandardowa musi odpowiedzieć na wiadomości z załącznikami z application/vnd.microsoft.card.oauth typ zawartości. Załączniki OAuthCard zawierają właściwość content.tokenPostResource.sasUrl, z której można wyodrębnić bezpieczny adres URL. Na koniec kanwa niestandardowa powinna opublikować wpis token dostępu użytkownika pod bezpiecznym adresem URL.

Następujący kod JavaScript jest przykładem kodu middleware, który wyodrębnia bezpieczny adres URL i publikuje token. Jeśli wpis będzie pomyślny, oprogramowanie pośredniczące zwraca false. Jeśli wpis kończy się niepowodzeniem lub działanie nie ma tej właściwości application/vnd.microsoft.card.oauth, jest zwracane next(…args).

const activityMiddleware = () => next => (...args) => {
  if (args[0].activity.attachments?.[0]?.contentType === 'application/vnd.microsoft.card.oauth') {
    var postEndpoint = args[0].activity.attachments?.[0].content.tokenPostResource.sasUrl;

    // Perform an HTTP POST to the secure URL with the body of:
    // {
    //     "token": <user_token> 
    // } 

    if(success)
       return false;
    else
       return next(...args);
  } else {
    return next(...args);
  }
};

Pełny przykładowy kod

Implementacja niestandardowego kanwy lub aplikacji, która uzyskuje token dla zalogowanego użytkownika i publikuje token w Copilot Studio, różni się w zależności od dostawcy uwierzytelniania. Aby uzyskać więcej informacji, zobacz dokumentację dostawcy uwierzytelniania, aby uzyskać więcej szczegółowych informacji na temat przepływów logowania i uzyskiwania tokenów dostępu. Aby uzyskać przykład odwołania przy użyciu funkcji OKTA, zobacz logowanie jednokrotne innej firmy przy użyciu funkcji OKTA.

Korzystanie z tokenu w Copilot Studio

Tokeny publikowane przy użyciu bezpiecznego adresu URL są wypełniane zmienną System.User.AccessToken w Copilot Studio. Agent twórcy mogą używać tej zmiennej systemowej do uzyskiwania dostępu do chronionych interfejsów API, które są połączone z uwierzytelnionym dostawcą, który wygenerował token.

W poniższym przykładzie wywołania protokołu HTTP są skonfigurowane przy użyciu nagłówka autoryzacji, używającego System.User.AccessToken.

Zrzut ekranu ilustrujący rozmowę z protokołu HTTP, która uzyskuje dostęp do bezpiecznego połączenia APU.

Obsługiwane kanały

Logowanie jednokrotne z ogólnym dostawcą uwierzytelniania OAuth to niestandardowy wzorzec, który można wdrożyć za pomocą kanwy niestandardowej lub dowolnego innego klienta pracującego z bezpośrednim interfejsem API.