Copilot Studio tukee kertakirjautumista. SSO:n avulla sivustosi agentit voivat kirjata asiakkaita sisään, jos he ovat jo kirjautuneet sivulle tai sovellukseen, jossa agentti on otettu käyttöön.
Jos agenttia esimerkiksi isännöidään yrityksen intranetissä tai sovelluksessa, johon käyttäjä on jo kirjautunut.
Kertakirjautumisen määrittämisessä Copilot Studiossa on viisi päävaihetta:
Ota agenttisi manuaalinen todentaminen käyttöön Microsoft Entra ID avulla
Luo sovelluksen rekisteröinti Microsoft Entra ID mukautettua pohjaa varten.
Määritä agenttisi mukautettu vaikutusalue Microsoft Entra ID.
Lisää mukautettu toimialue asiakaspalvelijan määrityksiin.
Määritä mukautetun kaavion asiakkaan puolen koodi, jotta SSO voidaan ottaa käyttöön.
Edellytykset
Tuetut kanavat
Seuraavassa taulukossa on esitetty kanavat, jotka tukevat tällä hetkellä SSO:ta. Voit ehdottaa tukea ylimääräisille kanaville tai Copilot Studio ideas -keskustelupalstalla.
1 Jos julkaiset Teams-kanavan, sinun on noudatettava konfigurointiohjeita artikkelissa Kertakirjautumisen määrittäminen Microsoft Entra -tunnuksella agenteille Microsoft Teams -dokumentaatiossa . Jos Teamsin kertakirjautumisasetuksia ei määritetä kyseisen sivun ohjeiden mukaisesti, käyttäjiesi todennus epäonnistuu aina käytettäessä Teams-kanavaa.
2 Vain live-keskustelukanavaa tuetaan. Lisätietoja on kohdassa Toiminnon määrittäminen Dynamics 365 Customer Service:
Sovelluksen rekisteröintien luominen mukautettua verkkosivustoa varten
Jos haluat ottaa kertakirjautumisen käyttöön, luo kaksi erillistä sovelluksen rekisteröintiä:
-
todentamissovelluksen rekisteröinti joka mahdollistaa Microsoft Entra ID käyttäjän todentamisen agentillesi.
-
Pohjaan perustuvan sovelluksen rekisteröinti, joka mahdollistaa SSO-kirjautumisen mukautetulle verkkosivustolle
Suojaussyistä älä käytä samaa sovelluksen rekisteröintiä uudelleen sekä agentillesi että mukautetulle sivustollesi.
Luo todennussovelluksen rekisteröinti noudattamalla ohjeita artikkelissa Käyttäjän todentamisen määrittäminen Microsoft Entra -tunnuksella.
Luo toinen sovelluksen rekisteröinti, joka toimii pohjaan perustuvan sovelluksen rekisteröintinä.
Tunnuksenvaihdon URL-osoitteen lisääminen
Jos haluat päivittää Microsoft Entra ID -todennusasetukset Copilot Studiossa, lisää tunnuksen vaihdon URL-osoite, jotta sovelluksesi ja Copilot Studio voivat jakaa tietoja.
Siirry todennussovelluksen rekisteröintisivun Azure-portaalissa kohtaan Expose aPI.
Valitse Vaikutusalueet-kohdassa Kopioi leikepöydälle -kuvake.
Valitse Copilot Studiossa Settings -kohdan siirtymisvalikosta Security ja valitse sitten Authentication -ruutu.
Liitä Tunnuksen vaihdon URL-osoite (vaaditaan kertakirjautumisessa) -kenttään aiemmin kopioimasi vaikutusalue.
Valitse Tallenna.
Siirry Azure-portaalissa todennussovelluksesi rekisteröintisivulla kohtaan Yleiskatsaus.
Kopioi Sovelluksen (asiakkaan) tunnus -arvo kohdasta Essentials.
Valitse siirtymispalkissaOhjelmointirajapinnan paljastamisen>.
Valitse Valtuutetut asiakassovellukset-kohdassa Lisää asiakassovellus ja liitä kopioitu asiakastunnus.
Valitse Tallenna.
Kun olet luonut pohjaan perustuvan sovelluksen rekisteröinnin, siirry kohtaan Todennus ja valitse sitten Lisää ympäristö.
Valitse Ympäristömääritykset-kohdassa Lisää ympäristö ja valitse sitten SPA.
Kirjoita Uudelleenohjauksen URI-osoitteet -kohtaan verkkosivusi URL-osoite. Esimerkki: http://contoso.com/index.html.
Ota Implisiittinen myöntäminen ja hybridityönkulku -osassa käyttöön Käyttöoikeustietueet (käytetään implisiittisiin työnkulkuihin) sekä ID-tunnukset (käytetään implisiittisiin ja hybridityönkulkuihin).
Valitse Määritä.
Agentin tunnuksen päätepiste-URL-osoitteen löytäminen
Avaa Copilot Studiossa agenttisi ja valitse sitten Kanavat.
Valitse Mobiilisovellus.
Valitse Tunnuksen päätepiste -kohdasta Kopioi.
SSO-kirjautumisen määrittäminen verkkosivustolle
Tärkeä
Vieraskäyttäjät eivät voi käyttää tekoälyn luomia vastauksia SharePointin ja Graph Connectorin tietolähteistä kertakirjautumista käyttävissä sovelluksissa.
Luo uudelleenohjauksen URL-osoite käyttämällä Copilot Studio Samples GitHub -säilössä annettua koodia. Kopioi koodi GitHub-säilöstä ja muokkaa sitä noudattamalla seuraavia ohjeita.
Siirry Azure portaalin Overview -sivulle ja kopioi Application (asiakas) -tunnus ja Directory (vuokraaja) -tunnus pohjasovelluksen rekisteröinnistä.
Microsoft Authentication Library (MSAL) määrittäminen:
- Määritä sovelluksesi (asiakas) tunnukseen .
- Aseta
authority osoitteeseen https://login.microsoftonline.com/ ja lisää loppuun Hakemiston (vuokralaisen) tunnus.
Esimerkki:
var clientApplication;
(function (){
var msalConfig = {
auth: {
clientId: '00001111-aaaa-2222-bbbb-3333cccc4444',
authority: 'https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
},
Määritä theURL-muuttuja aiemmin kopioidulle tunnuksen päätepisteen URL-osoitteelle. Esimerkki:
(async function main() {
var theURL = "https://<token endpoint URL>"
Muokkaa userId-arvo sisältämään mukautettu etuliite. Esimerkki:
var userId = clientApplication.account?.accountIdentifier != null ?
("My-custom-prefix" + clientApplication.account.accountIdentifier).substr(0, 64)
: (Math.random().toString() + Date.now().toString()).substr(0,64);
Tallenna tekemäsi muutokset.
Varmista, että kertakirjautumisen määrittäminen onnistui.
Jos kertakirjautumista ei määritetä onnistuneesti agenttia testattaessa, sinua kehotetaan kirjautumaan sisään. Sisäänkirjautumisprosessi antaa sinulle vahvistuskoodin, joka sinun on kopioitava keskusteluikkunaan.
Jos näet kirjautumiskehotteen, tarkista, että tämän menettelyn vaiheet 1–5 on suoritettu oikein. Jos SSO on määritetty onnistuneesti, sinua ei pyydetä kirjautumaan sisään.
Muistiinpano
GitHub säilön koodi edellyttää, että käyttäjät valitsevat kirjautumispainikkeen. Tuotantoympäristössä haluat ehkä korvata painiketoiminnon asianmukaisemmalla tapahtumalla, kuten sivulle siirtymisellä.
Liittyvä sisältö
Tekninen yleiskatsaus
Seuraavasta kuvasta näet, miten käyttäjä kirjautuu sisään ilman kirjautumiskehotetta (SSO) Copilot Studiossa:
Agentin käyttäjä kirjoittaa lauseen, joka käynnistää kirjautumisaiheen. Kirjautumisaihe on suunniteltu kirjaamaan käyttäjä sisään ja käyttämään käyttäjän todennettua tunnusta (User.AccessToken-muuttujaa).
Copilot Studio lähettää sisäänkirjautumiskehotteen, jotta käyttäjä voi kirjautua sisään määritetyn tunnistetietopalvelun avulla.
Agentin mukautettu pohja sieppaa kirjautumiskehotteen ja pyytää valtuutustokenia Microsoft Entra ID:n puolesta. Kaavio lähettää tunnuksen agentille.
OBO-tunnuksen vastaanottamisen jälkeen agentti vaihtaa OBO-tunnuksen "käyttöoikeustietueelle" ja täyttää muuttujan AuthToken käyttämällä käyttöoikeustietueen arvoa. Myös muuttuja IsLoggedIn määritetään tässä yhteydessä.
Sovelluksen rekisteröinnin luominen Microsoft Entra ID mukautettua pohjaa varten
Jos haluat ottaa SSO-kirjautumisen käyttöön, tarvitset kaksi erillistä sovelluksen rekisteröintiä:
Tärkeä
Samaa sovelluksen rekisteröintiä ei voi käyttää uudelleen sekä agenttien käyttäjän todennuksessa että mukautetussa kaaviossa.
Sovelluksen rekisteröinnin luominen agentin kaaviolle
Kirjaudu sisään Azure-portaaliin.
Siirry kohtaan App registrations joko valitsemalla kuvake tai etsimällä yläreunan hakupalkista.
Valitse Uusi rekisteröinti.
Anna rekisteröinnille nimi. Käytä sen agentin nimeä, jonka kangasta olet rekisteröimässä ja johon sisältyy "kangas", jotta voit erottaa sen sovelluksen rekisteröinnistä todentamista varten.
Jos agenttisi nimi esimerkiksi on Contoson myyntiapu, sovellusrekisteröinnin nimeksi voisi antaa ContosoSalesCanvas tai vastaavaa.
Valitse kohdassa Tukevat tilityypitTilit missä tahansa organisaation vuokraajassa (Any Microsoft Entra ID directory – Multitenant) ja henkilökohtaiset Microsoft-tilit (esim. Skype, Xbox).
Jätä Uudelleenohjauksen URI -osa vielä tyhjäksi, koska syötät kyseiset tiedot seuraavissa vaiheissa. Valitse Rekisteröi.
Kun rekisteröinti on valmis, Yleiskatsaus-sivu avautuu. Siirry kohtaan Luettelo. Vahvista, että accessTokenAcceptedVersion-arvo on 2. Jos näin ei ole, muuta sen arvoksi 2 ja valitse sitten Tallenna.
Uudelleenohjauksen URL-osoitteen lisääminen
Kun rekisteröinti on auki, siirry kohtaan Todennus ja valitse sitten Lisää ympäristö.
Valitse Määritä ympäristöt -paneelissa Verkko.
Lisää kohtaan Uudelleenohjauksen URI-osoitteet täysi URL-osoite sille sivulle, jolla keskustelun kaaviota isännöidään. Valitse Implisiittinen myöntäminen -osassa valintaruudut ID-tunnukset ja Käyttöoikeustunnukset.
Vahvista muutoksesi valitsemalla Määritä.
Siirry Ohjelmointirajapintaoikeuksiin. Valitse Myönnä järjestelmänvalvojan suostumus vuokraajalle <your tenant name> ja sitten Kyllä.
Tärkeä
Jotta käyttäjien ei tarvitsisi antaa suostumusta jokaiseen sovellukseen, sovelluksen järjestelmänvalvojan tai pilvisovelluksen järjestelmänvalvojan on myönnettävä vuokraajanlaajuinen suostumus sovellusrekisteröinneillesi.
Mukautetun vaikutusalueen määrittäminen agentille
Määritä mukautettu vaikutusalue tarjoamalla ohjelmointirajapinta pohjaan perustuvan sovelluksen rekisteröinnille todennussovelluksen rekisteröinnin sisällä.
Vaikutusalueiden avulla voit määrittää käyttäjä- ja järjestelmänvalvojan rooleja sekä käyttöoikeuksia.
Tämä vaihe luo luottamussuhteen todennusta varten luotavan todennussovelluksen rekisteröinnin ja mukautetun kaavion sovellusrekisteröinnin välille.
Avaa sovellusrekisteröinti, jonka loit määrittäessäsi todennuksen.
Siirry kohtaan Ohjelmointirajapintaoikeudet ja varmista, että agentillesi on lisätty oikeat oikeudet. Valitse Myönnä järjestelmänvalvojan suostumus vuokraajalle <your tenant name> ja sitten Kyllä.
Tärkeä
Jotta käyttäjien ei tarvitsisi antaa suostumusta jokaiseen sovellukseen, sovelluksen järjestelmänvalvojan tai pilvisovelluksen järjestelmänvalvojan on myönnettävä vuokraajanlaajuinen suostumus sovellusrekisteröinneillesi.
Siirry kohtaan Tarjoa ohjelmointirajapintaa ja valitse Lisää vaikutusalue.
Anna vaikutusalueen nimi sekä näyttötiedot, jotka käyttäjät näkevät tullessaan kertakirjautumisnäyttöön. Valitse Lisää vaikutusalue.
Valitse Lisää asiakassovellus -.
Syötä Yleiskatsaus-sivun Sovelluksen (asiakas) tunnus pohjaan perustuvan sovelluksen rekisteröintiä varten Asiakastunnus-kenttään. Valitse luomasi luettelon vaikutusalueen valintaruutu.
Valitse Lisää sovellus.
Käytä Token Exchange -URL-osoitetta Copilot Studion todennuksen määrityssivulla, kun haluat vaihtaa OBO-tunnuksen pyydettyä käyttöoikeustietuetta varten bottikehyksen kautta.
Copilot Studio kutsuu Microsoft Entra ID todellisen vaihdon suorittamiseksi.
Kirjaudu sisään Copilot Studioon.
Vahvista, että olet valinnut agentin, jolle haluat ottaa todennuksen käyttöön, valitsemalla ylimmästä valikosta agenttikuvake ja valitsemalla oikea agentti.
Valitse siirtymisvalikon Asetukset-kohdasta Suojaus. Valitse sitten Todentaminen-kortti.
Anna koko alan URI API:n paljastaminen -sivulta agentin todentamissovelluksen rekisteröintiin Token exchange URL -kentässä. Kanavan URI-osoitteen muoto on api://1234-4567/scope.name.
Valitse Tallenna ja julkaise sitten agentin sisältö.
Päivitä sen mukautetun kaavion sivu, jolla agentti sijaitsee, siepataksesi kirjautumiskorttipyynnön ja vaihtaaksesi OBO-tunnuksen.
Määritä Microsoft Authentication Library (MSAL) lisäämällä seuraava koodi <script>-tunnisteeseen <head> -osassa.
Päivitä clientIdSovelluksen (asiakas) tunnus -arvolla pohjaan perustuvan sovelluksen rekisteröintiä varten. Korvaa <Directory ID> arvolla Hakemiston (vuokraaja) tunnus. Hae nämä tunnukset pohjaan perustuvan sovelluksen rekisteröinnin Yleiskatsaus-sivulta.
<head>
<script>
var clientApplication;
(function () {
var msalConfig = {
auth: {
clientId: '<Client ID [CanvasClientId]>',
authority: 'https://login.microsoftonline.com/<Directory ID>'
},
cache: {
cacheLocation: 'localStorage',
storeAuthStateInCookie: false
}
};
if (!clientApplication) {
clientApplication = new Msal.UserAgentApplication(msalConfig);
}
} ());
</script>
</head>
Lisää seuraava <skripti><body>-osaan. Tämä skripti kutsuu menetelmää resourceUrl-osoitteen noutamiseen ja nykyisen tunnuksesi vaihtamiseen OAuth-kehotteen pyytämään tunnukseen.
<script>
function getOAuthCardResourceUri(activity) {
if (activity &&
activity.attachments &&
activity.attachments[0] &&
activity.attachments[0].contentType === 'application/vnd.microsoft.card.oauth' &&
activity.attachments[0].content.tokenExchangeResource) {
// asking for token exchange with Microsoft Entra ID
return activity.attachments[0].content.tokenExchangeResource.uri;
}
}
function exchangeTokenAsync(resourceUri) {
let user = clientApplication.getAccount();
if (user) {
let requestObj = {
scopes: [resourceUri]
};
return clientApplication.acquireTokenSilent(requestObj)
.then(function (tokenResponse) {
return tokenResponse.accessToken;
})
.catch(function (error) {
console.log(error);
});
}
else {
return Promise.resolve(null);
}
}
</script>
Lisää seuraava <skripti><body>-osaan.
main-menetelmässä tämä koodi lisää ehdon store-kauppaasi käyttäen agentin yksilöllistä tunnusta. Se luo myös yksilöllisen tunnuksen userId-muuttujaksesi.
Päivitä <BOT ID> agenttisi tunnuksella. Jos haluat nähdä agenttisi tunnuksen Copilot Studiossa, siirry agentin Channels -sivulle ja valitse Mobile-sovellus.
<script>
(async function main() {
// Add your BOT ID below
var BOT_ID = "<BOT ID>";
var theURL = "https://powerva.microsoft.com/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID;
const {
token
} = await fetchJSON(theURL);
var directline = await fetchJSON(regionalChannelSettingsURL).then(res=> res.channelUrlsById.directline);
const directLine = window.WebChat.createDirectLine({
domain: `${directline}v3/directline`,
token
});
var userID = clientApplication.account?.accountIdentifier != null ?
("Your-customized-prefix-max-20-characters" + clientApplication.account.accountIdentifier).substr(0, 64) :
(Math.random().toString() + Date.now().toString()).substr(0, 64); // Make sure this will not exceed 64 characters
const store = WebChat.createStore({}, ({
dispatch
}) => next => action => {
const {
type
} = action;
if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
dispatch({
type: 'WEB_CHAT/SEND_EVENT',
payload: {
name: 'startConversation',
type: 'event',
value: {
text: "hello"
}
}
});
return next(action);
}
if (action.type === 'DIRECT_LINE/INCOMING_ACTIVITY') {
const activity = action.payload.activity;
let resourceUri;
if (activity.from && activity.from.role === 'bot' &&
(resourceUri = getOAuthCardResourceUri(activity))) {
exchangeTokenAsync(resourceUri).then(function(token) {
if (token) {
directLine.postActivity({
type: 'invoke',
name: 'signin/tokenExchange',
value: {
id: activity.attachments[0].content.tokenExchangeResource.id,
connectionName: activity.attachments[0].content.connectionName,
token,
},
"from": {
id: userID,
name: clientApplication.account.name,
role: "user"
}
}).subscribe(
id => {
if (id === 'retry') {
// The agent was not able to handle the invoke, so display the oauthCard
return next(action);
}
// else: tokenexchange successful and we do not display the oauthCard
},
error => {
// an error occurred to display the oauthCard
return next(action);
}
);
return;
} else
return next(action);
});
} else
return next(action);
} else
return next(action);
});
const styleOptions = {
// Add styleOptions to customize Web Chat canvas
hideUploadButton: true
};
window.WebChat.renderWebChat({
directLine: directLine,
store,
userID: userID,
styleOptions
},
document.getElementById('webchat')
);
})().catch(err => console.error("An error occurred: " + err));
</script>
Täysi näytekoodi
Koko mallikoodi löytyy, kun käytössä on MSAL ja tallenna Copilot Studio Samples GitHub -säilöön jo sisältyvät ehdolliset komentosarjat.