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 sinulla on myös Teams-kanava käytössä, sinun on noudatettava Configure single sign-on with Microsoft Entra ID for agents in Microsoft Teams -dokumentaatiossa olevia määritysohjeita. 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 SSO-kirjautumisen käyttöön, sinun on luotava 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
Emme suosittele saman sovellusrekisteröinnin käyttämistä uudelleen sekä agentillesi että mukautetulle verkkosivustollesi turvallisuussyistä.
Luo todennussovelluksen rekisteröinti noudattamalla ohjeita kohdassa Käyttäjätodentamisen määrittäminen Microsoft Entra ID avulla.
Luo toinen sovelluksen rekisteröinti, joka toimii pohjaan perustuvan sovelluksen rekisteröintinä.
Tunnuksenvaihdon URL-osoitteen lisääminen
Jotta Microsoft Entra ID-todennusasetukset voidaan päivittää Copilot Studiossa, sinun on lisättävä 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 todennussovelluksen rekisteröintisivun Azure-portaalissa kohtaan Overview.
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.
Syötä Uudelleenohjauksen URI-osoitteet -kohdassa verkkosivuston URL-osoite, esimerkiksi 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ä
SharePoint:n ja Graph Connectorin tietolähteiden tekoälyn luomat vastaukset eivät ole vieraskäyttäjien käytettävissä kertakirjautumista käyttävissä sovelluksissa.
Luo uudelleenohjauksen URL-osoitteen verkkosivu Copilot Studio GitHub -säilössä annettua koodia. Kopioi koodi GitHub säilöstä ja muokkaa sitä seuraavien ohjeiden mukaisesti.
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, sinua kehotetaan kirjautumaan sisään, jolloin saat 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ä on kirjautunut 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ää kirjautumiskehotteen, jonka avulla käyttäjä voi kirjautua sisään määritetyllä tunnistetietopalvelullaan.
Agentin mukautettu pohja sieppaa kirjautumiskehotteen ja pyytää valtuutustokenia Microsoft Entra ID:n puolesta. Kaavio lähettää tunnuksen agentille.
Kun agentti on vastaanottanut OBO-tunnuksen, botti vaihtaa sen "käyttöoikeustunnukseen" ja täyttää AuthToken-muuttujan käyttäen käyttöoikeustunnuksen 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. Voi olla hyödyllistä käyttää sen agentin nimeä, jonka kaaviota olet rekisteröimässä, ja sisällyttää nimeen "kaavio". Tämä auttaa erottamaan sen sovelluksen rekisteröinnistä todennusta 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öjä -ikkunassa 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.
Syötä nimi vaikutusalueelle sekä näyttötiedot, jotka näytetään käyttäjille, kun he saapuvat 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 luetellun vaikutusalueen valintaruutu.
Valitse Lisää sovellus.
Copilot Studion todennuksen määrityssivun Token Exchange URL käytetään OBO-tunnuksen vaihtamiseen pyydetylle käyttöoikeustietueelle botin kehyksen 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. Saat 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
Jos haluat lisätietoja, löydät koko mallikoodin, jonka MSAL- ja store-ehdolliset komentosarjat ovat jo alle GitHub-säilössämme.