Konfigurace jednotného přihlašování pomocí obecného poskytovatele OAuth
Copilot Studio podporuje jednotné přihlašování (SSO) s poskytovateli ověřování kompatibilními s OAuth 2.0. Jednotné přihlašování umožňuje agentům na vašem webu přihlašovat zákazníky, pokud se přihlásili na stránku nebo aplikaci, kde je nasazen agent.
Předpoklady
- Nakonfigurujte ověřování uživatele pomocí obecného poskytovatele OAuth 2.0.
- Přidání ověřování uživatele do témat.
- Přizpůsobte si vzhled a chování agenta.
Vytvořte nebo použijte vlastní plátno, které podporuje obecný postup jednotného přihlašování poskytovatele OAuth
Když se téma ověřování aktivuje v agentech připojených k obecnému OAuth poskytovateli 2.0, Copilot Studio odešle zprávu obsahující zabezpečenou adresu URL, která se používá k publikování přístupového tokenu uživatele.
Vlastní plátno nebo stránka, kde je plátno vloženo, by mělo implementovat následující vzor:
Získejte přístupový token pro přihlášeného uživatele od svého poskytovatele ověření OAuth 2.0 pomocí preferované metody.
Zachyťte příchozí zprávu od Copilot Studio a extrahujte zabezpečenou adresu URL.
Zveřejněte přístupový token na zabezpečenou adresu URL.
Extrahujte zabezpečenou adresu URL a vystavte token
Vlastní plátno zachycuje příchozí zprávy pomocí konceptu middlewaru, což je kód, který běží v kontextu přijímání zpráv od Copilot Studio.
Aby bylo možné reagovat na požadavky na přihlášení, musí vlastní plátno zachytit zprávy s přílohami, které mají typ obsahu application/vnd.microsoft.card.oauth
. Přílohy OAuthCard obsahují vlastnost content.tokenPostResource.sasUrl
, ze které lze získat zabezpečenou adresu URL. Nakonec by vlastní plátno mělo odeslat přístupový token uživatele na zabezpečenou adresu URL.
Následující kód JavaScript je příkladem middlewarového kódu, který extrahuje zabezpečenou adresu URL a odešle token. Pokud je příspěvek úspěšný, middleware vrátí false
. Pokud je příspěvek neúspěšný nebo pokud aktivita nemá vlastnost application/vnd.microsoft.card.oauth
, vrátí 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);
}
};
Celý ukázkový kód
Implementace vlastního plátna nebo aplikace, která získá token pro přihlášeného uživatele a odešle token do Copilot Studio, se liší podle vašeho poskytovatele ověření. Další informace najdete v dokumentaci poskytovatele ověření, kde najdete další podrobnosti o postupech přihlašování a získávání přístupových tokenů. Referenční vzorek pomocí OKTA naleznete v části Jednotné přihlašování třetí strany s OKTA.
Použití tokenu v Copilot Studio
Tokeny zaslané pomocí zabezpečené adresy URL se vloží do proměnné System.User.AccessToken
v Copilot Studio. Tvůrci agent mohou tuto systémovou proměnnou použít pro přístup k chráněným rozhraním API, která jsou připojena k ověřenému poskytovateli, který token vygeneroval.
V následujícím příkladu je volání HTTP nakonfigurováno s autorizační hlavičkou, která používá System.User.AccessToken
.
Podporované kanály
Jednotné přihlašování s obecným poskytovatelem autentizace OAuth je vlastní vzor, který lze implementovat buď vlastním plátnem, nebo jakýmkoli jiným klientem pracujícím s rozhraním Directline API.