Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Copilot Studio stöder enkel inloggning (SSO) med OAuth 2.0-kompatibla autentiseringsleverantörer. Med SSO kan agenter på webbplatsen logga in kunder som har loggat in på sidan eller appen där agenten distribueras.
Krav
- Konfigurera användarautentisering med en generisk OAuth 2.0-provider.
- Lägga till användarautentisering till ämnen.
- Anpassa agentens utseende och känsla.
Skapa eller använda en anpassad arbetsyta som stöder det generiska SSO-flödet från OAuth-providern
När autentiseringsämnet triggas i agenter som är anslutna till en generisk OAuth 2.0-leverantör skickar Copilot Studio ett meddelande som innehåller en säker URL, vilken används för att posta användarens access token.
Den anpassade arbetsytan eller en sida där arbetsytan är inbäddad bör implementera följande mönster:
Hämta en åtkomsttoken för den inloggade användaren från din OAuth 2.0-autentiseringsprovider med hjälp av önskad metod.
Fånga upp ett inkommande meddelande från Copilot Studio och extrahera den säkra URL:en.
Publicera inlägget åtkomsttoken den säkra URL:en.
Extrahera den säkra URL:en och publicera token
Den anpassade arbetsytan intercepterar inkommande meddelanden med hjälp av ett middleware-koncept, vilket är kod som körs i samband med att meddelanden tas emot från Copilot Studio.
För att kunna svara på inloggningsförfrågningar måste anpassade arbetsytan fånga in meddelanden med bifogade filer som har innehållstypen application/vnd.microsoft.card.oauth. OAuthCard-bilagor innehåller en content.tokenPostResource.sasUrl-egenskap som den säkra URL:en kan extraheras från. Slutligen bör användarens anpassade arbetsyta publicera åtkomsttoken den säkra URL:en.
Följande JavaScript-kod är ett exempel på mellanprogramkod som extraherar den säkra URL:en och publicerar en token. Om publiceringen lyckas returnerar mellanprogrammet false. Om publiceringen inte lyckas, eller om aktiviteten inte har någon application/vnd.microsoft.card.oauth-egenskap , returneras 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);
}
};
Full exempelkod
Implementeringen av en anpassad arbetsyta eller app som hämtar en token för en inloggad användare och skickar token till Copilot Studio varierar beroende på din autentiseringsleverantör. Mer information finns i autentiseringsproviderns dokumentation för mer information om inloggningsflöden och hur du hämtar åtkomsttokens. För ett referensexempel med OKTA, se Tredjeparts SSO med OKTA.
Användning av token i Copilot Studio
Tokens som skickas via den säkra URL:en lagras i variabeln System.User.AccessToken i Copilot Studio. Agentutvecklare kan använda systemvariabeln för att få åtkomst till skyddade API:er som är anslutna till den autentiserade providern som skapade tokens.
I följande exempel konfigureras ett HTTP-anrop med ett autentiseringshuvud som använder System.User.AccessToken.
Kanaler som stöds
SSO med en generisk OAuth-autentiseringsprovider är ett anpassat mönster som kan implementeras antingen av en anpassad klient eller av valfri annan klient som arbetar med Directline API.