Konfigurera enkel inloggning med en generisk OAuth-provider
Copilot Studio har stöd för enkel inloggning (SSO) med OAuth 2.0-kompatibla autentiseringsproviders. Med SSO kan agenter på webbplatsen logga in kunder som har loggat in på sidan eller appen där agenten distribueras.
Förutsättningar
- 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 utlöses i agenter som är anslutna till en generisk OAuth 2.0-provider skickar Copilot Studio ett meddelande med en säker URL som används för att publicera användarens åtkomsttoken.
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 fångar upp inkommande meddelanden med hjälp av ett mellanprogramkoncept, som är kod som körs i samband med mottagning av meddelanden 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 erhåller en token för en inloggad användare och publicerar token till Copilot Studio, varierar beroende på vilken autentiseringsprovider du använder. 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ända token i Copilot Studio
Tokens som publiceras med hjälp av den säkra URL:en fylls i System.User.AccessToken
-variabeln 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.