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 pozwala agentom witryny sieci Web na logowanie klientów po zalogowaniu się do strony lub aplikacji, w której wdrożony jest agent klienta.

Wymagania wstępne

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

Po wyzwoleniu tematu uwierzytelniania w agentach powiązanych z dostawcą ogólnym OAuth 2.0 Copilot Studio wysyła wiadomość zawierającą bezpieczny adres URL używany do wpisu informacji token dostępu.

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. Twórcy agenta tej zmiennej systemowej mogą używać tej zmiennej systemowej do uzyskiwania dostępu do chronionych interfejsów API połączonych 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.