Konfigurer enkeltlogon med en generisk OAuth-udbyder
Copilot Studio understøtter enkelt logon (SSO) med OAuth 2.0-kompatible godkendelsesudbydere. SSO gør det muligt for helpdesk-medarbejdere på dit websted at logge kunder på, hvis de er logget på den side eller app, hvor Helpdesk-medarbejder er installeret.
Forudsætninger
- Konfigurer brugergodkendelse med en generisk OAuth 2.0-udbyder.
- Tilføj brugergodkendelse for emner.
- Tilpas udseendet og funktionaliteten af en agent.
Oprette eller bruge et brugerdefineret lærred, der understøtter det generiske OAuth-provider-SSO-flow
Når godkendelsesemnet udløses i helpdesk-medarbejdere, der er forbundet med en generisk OAuth 2.0-udbyder, Copilot Studio sendes der en meddelelse, der indeholder en sikker URL-adresse, som bruges til at sende brugerens adgangstoken.
Det brugerdefinerede lærred eller en side, hvor lærredet er integreret, skal implementere følgende mønster:
Hent et adgangstoken til den bruger, der er logget på, fra din OAuth 2.0-godkendelsesudbyder ved hjælp af din foretrukne metode.
Få vist en indgående meddelelse fra Copilot Studio, og pak den sikre URL-adresse ud.
Send adgangstoken til den sikre webadresse.
Udtræk den sikre URL-adresse og send token
Det brugerdefinerede lærred sender indgående meddelelser ved hjælp af et middleware-koncept, som er kode, der kører i forbindelse med modtagelse af meddelelser fra Copilot Studio.
For at kunne reagere på logonanmodninger skal det brugerdefinerede lærred sende meddelelser med vedhæftede filer, der har indholdstypen application/vnd.microsoft.card.oauth
. Vedhæftede filer i OAuthCard indeholder en content.tokenPostResource.sasUrl
egenskab, som den sikre URL-adresse kan udtrækkes fra. Til sidst skal det brugerdefinerede lærred sende brugerens adgangstoken til den sikre URL-adresse.
Følgende JavaScript-kode er et eksempel på middleware-kode, der udtrækker den sikre webadresse og sender en token. Hvis indlægget lykkes, returnerer middleware false
. Hvis opslaget ikke lykkes, eller hvis aktiviteten ikke har application/vnd.microsoft.card.oauth
-egenskaben, returneres 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);
}
};
Komplet eksempelkode
Implementeringen af et brugerdefineret lærred eller en brugerdefineret app, der anskaffer en token for en bruger, der er logget på, og som slår denne token op til Copilot Studio, varierer, afhængigt af udbyderen af godkendelse. Du kan finde flere oplysninger i dokumentationen til godkendelsesudbyderen for at få flere oplysninger om logonforløb og om indhentning af adgangstokener. Du kan se et referenceeksempel ved hjælp af OKTA i Tredjeparts-SSO med OKTA.
Brug af token i Copilot Studio
Tokens, der udgives ved hjælp af den sikre URL-adresse, udfyldes i System.User.AccessToken
variablen i Copilot Studio. Helpdesk-medarbejder udviklere kan bruge denne systemvariabel til at få adgang til beskyttede API'er, der er forbundet med den godkendte udbyder, der genererede tokenet.
I følgende eksempel konfigureres et HTTP-opkald med et godkendelsesheader, der bruger System.User.AccessToken
.
Understøttede kanaler
SSO med en generisk OAuth-godkendelsesudbyder er et brugerdefineret mønster, der enten kan implementeres af et brugerdefineret lærred eller en hvilken som helst anden klient, der arbejder med Directline-API'en.