Ρυθμίστε τις παραμέτρους καθολικής σύνδεσης με το Microsoft Entra ID
Άρθρο
Σημαντικό
Οι δυνατότητες του Power Virtual Agents αποτελούν τώρα μέρος του Microsoft Copilot Studio μετά από σημαντικές επενδύσεις σε παραγωγική τεχνητή νοημοσύνη και βελτιωμένες ενσωματώσεις στο Microsoft Copilot.
Ορισμένα άρθρα και στιγμιότυπα οθόνης ενδέχεται να αναφέρονται στο Power Virtual Agents ενώ ενημερώνουμε την τεκμηρίωση και το εκπαιδευτικό περιεχόμενο.
To Copilot Studio υποστηρίζει καθολική σύνδεση (SSO). Το SSO επιτρέπει στους copilot στον ιστότοπό σας να συνδέουν τους πελάτες εάν έχουν ήδη συνδεθεί στη σελίδα ή την εφαρμογή όπου αναπτύσσεται ο copilot.
1 Αν έχετε επίσης ενεργοποιημένο το κανάλι Teams, πρέπει να ακολουθήσετε τις οδηγίες ρύθμισης παραμέτρων στην τεκμηρίωση Ρύθμιση παραμέτρων SSO για το κανάλι Teams. Εάν δεν ρυθμίσετε τις παραμέτρους της SSO του Teams σύμφωνα με τις οδηγίες σε αυτήν τη σελίδα, οι χρήστες αποτυγχάνουν πάντα στον έλεγχο ταυτότητας κατά τη χρήση του καναλιού Teams.
Δημιουργήστε καταχωρήσεις εφαρμογής για την προσαρμοσμένη τοποθεσία web σας
Για να ενεργοποιήσετε το SSO, πρέπει να χρησιμοποιήσετε δύο ξεχωριστές εγγραφές εφαρμογών:
Μια εγγραφή εφαρμογής ελέγχου ταυτότητας, η οποία επιτρέπει στο Microsoft Entra ID να κάνει έλεγχο ταυτότητας χρήστη για το copilot σας
Μια καταχώρηση εφαρμογής καμβά που ενεργοποιεί το SSO για την προσαρμοσμένη ιστοσελίδα σας
Δεν συνιστούμε την επαναχρησιμοποίηση της ίδιας καταχώρισης εφαρμογής τόσο για τον copilot σας όσο και για τον προσαρμοσμένο ιστότοπό σας για λόγους ασφαλείας.
Ακολουθήστε ξανά τις ίδιες οδηγίες για να δημιουργήσετε μια δεύτερη εγγραφή εφαρμογής, η οποία θα λειτουργεί ως εγγραφή εφαρμογής καμβά.
Επιστρέψτε σε αυτό το άρθρο.
Ρύθμιση παραμέτρων της καταχώρησης εφαρμογής καμβά
Αφού δημιουργήσετε την καταχώρηση εφαρμογής καμβά, μεταβείτε στην επιλογή Έλεγχος ταυτότητας και μετά επιλέξτε Προσθήκη πλατφόρμας.
Στην περιοχή Ρυθμίσεις παραμέτρων πλατφόρμας επιλέξτε Προσθήκη πλατφόρμας και, στη συνέχεια, επιλέξτε Web.
Στην περιοχή Ανακατεύθυνση URI, καταχωρήστε τη διεύθυνση URL για την ιστοσελίδα σας, για παράδειγμα http://contoso.com/index.html.
Στην ενότητα Εκχώρηση έμμεσων και υβριδικές ροέςενεργοποιήστε τα Διακριτικά πρόσβασης (χρησιμοποιούνται για έμμεσες ροές) και Διακριτικά αναγνωριστικού (χρησιμοποιούνται για έμμεσες και υβριδικές ροές).
Επιλέξτε Ρύθμιση παραμέτρων.
Βρείτε τη διεύθυνση URL διακριτικού του τελικού σημείου copilot
Στο Copilot Studio, μεταβείτε στις Ρυθμίσεις, και έπειτα επιλέξτε Κανάλια.
Επιλέξτε Εφαρμογή για κινητές συσκευές.
Στο Τελικό σημείο διακριτικού, επιλέξτε Αντιγραφή.
Ρύθμιση παραμέτρων SSO στην ιστοσελίδα σας
Χρησιμοποιήστε τον κώδικα που παρέχεται στοαποθετήριο GitHub του Copilot Studio για να δημιουργήσετε μια ιστοσελίδα για τη διεύθυνση URL ανακατεύθυνσης. Αντιγράψτε τον κώδικα από το αποθετήριο του GitHub και τροποποιήστε τον χρησιμοποιώντας τις οδηγίες παρακάτω.
Μεταβείτε στη σελίδα Επισκόπηση στην πύλη Azure και αντιγράψτε το Αναγνωριστικό εφαρμογής (προγράμματος-πελάτη) και το Αναγνωριστικό καταλόγου (μισθωτής) από την καταχώρηση της εφαρμογής καμβά.
Για να ρυθμίσετε τις παραμέτρους της Βιβλιοθήκης ελέγχου ταυτότητας της Microsoft (MSAL):
Ανάθεση το clientId στο αναγνωριστικό εφαρμογής (προγράμαμτος-πελάτη).
Αναθέστε το authority στο https://login.microsoftonline.com/ και προσθέστε το αναγνωριστικό καταλόγου (μισθωτή) στο τέλος.
Για παράδειγμα:
var clientApplication;
(function (){
var msalConfig = {
auth: {
clientId: '692e92c7-xxxx-4060-76d3-b381798f4d9c',
authority: 'https://login.microsoftonline.com/7ef988bf-xxxx-51af-01ab-2d7fd011db47'
},
Ορίστε τη μεταβλητή theURL στη διεύθυνση URL του τελικού σημείου διακριτικού που αντιγράψατε νωρίτερα. Για παράδειγμα:
(async function main() {
var theURL = "https://1c0.0.environment.api.powerplatform.com/powervirtualagents/bots/5a099fd/directline/token?api-version=2022-03-01-preview"
Επεξεργαστείτε την τιμή του userId ώστε να περιλαμβάνει ένα προσαρμοσμένο πρόθεμα. Για παράδειγμα:
Δοκιμάστε τον copilot σας χρησιμοποιώντας την ιστοσελίδα σας
Ανοίξτε την ιστοσελίδα σας στο πρόγραμμα περιήγησης.
Επιλέξτε Σύνδεση.
Σημείωμα
Εάν το πρόγραμμα περιήγησης αποκλείει αναδυόμενα παράθυρα ή χρησιμοποιείτε ένα ανώνυμο ή ιδιωτικό παράθυρο περιήγησης, θα σας ζητηθεί να συνδεθείτε. Διαφορετικά, η σύνδεση ολοκληρώνεται με χρήση ενός κωδικού επικύρωσης.
Ανοίγει μια νέα καρτέλα προγράμματος περιήγησης.
Μεταβείτε στη νέα καρτέλα και αντιγράψτε τον κωδικό επικύρωσης.
Μεταβείτε ξανά στην καρτέλα με τον copilot σας και επικολλήστε τον κωδικό επικύρωσης στη συνομιλία copilot σας.
Το Copilot Studio στέλνει μια ειδοποίηση σύνδεσης για να μπορεί ο χρήστης να συνδεθεί με την υπηρεσία παροχής ταυτότητας που έχει ρυθμίσει.
Ο προσαρμοσμένος καμβάς του copilot διακόπτει την ειδοποίηση για σύνδεση και ζητά ένα διακριτικό εκ μέρους (OBO) από το Microsoft Entra ID. Ο καμβάς στέλνει το διακριτικό στο copilot.
Μετά τη λήψη του διακριτικού OBO, το copilot ανταλλάσει το διακριτικό OBO για ένα διακριτικό πρόσβασης και συμπληρώνει τη μεταβλητή AuthToken χρησιμοποιώντας την τιμή του διακριτικού πρόσβασης. Η μεταβλητή IsLoggedIn ορίζεται επίσης αυτήν τη στιγμή.
Δημιουργήστε μια καταχώρηση εφαρμογής στο Microsoft Entra ID για τον προσαρμοσμένο καμβά σας
Για να ενεργοποιήσετε το SSO, χρειάζεστε δύο ξεχωριστές εγγραφές εφαρμογών:
Μία για τον προσαρμοσμένο καμβά για ενεργοποίηση του SSO.
Σημαντικό
Δεν μπορείτε να χρησιμοποιήσετε ξανά την ίδια εγγραφή εφαρμογής τόσο για τον έλεγχο ταυτότητας χρηστών του copilot σας όσο και για τον προσαρμοσμένο καμβά σας.
Δημιουργήστε μια καταχώρηση εφαρμογής στον καμβά του copilot σας
Μεταβείτε στις καταχωρίσεις εφαρμογών, επιλέγοντας το εικονίδιο ή την αναζήτηση στην επάνω γραμμή αναζήτησης.
Επιλέξτε Νέα καταχώριση.
Πληκτρολογήστε ένα όνομα για την καταχώρηση. Μπορεί να είναι χρήσιμο να χρησιμοποιήσετε το όνομα του copilot του οποίου τον καμβά καταχωρείτε και να συμπεριλάβετε έναν "καμβά" για να τον διαχωρίσετε από την καταχώρηση εφαρμογής για τον έλεγχο ταυτότητας.
Για παράδειγμα, αν το copilot ονομάζεται "Βοήθεια πωλήσεων Contoso", μπορείτε να ονομάσετε την καταχώρηση της εφαρμογής "ContosoSalesCanvas" ή κάτι παρόμοιο.
Επιλέξτε τον τύπο λογαριασμού κάτω από το στοιχείο Υποστηριζόμενοι τύποι λογαριασμού. Συνιστάται να επιλέξετε Λογαριασμοί σε οποιονδήποτε κατάλογο οργανισμού (Οποιοσδήποτε Microsoft Entra ID κατάλογος - Multitenant) και προσωπικούς λογαριασμούς Microsoft (π.χ. Skype, Xbox).
Αφήστε την ενότητα URI ανακατεύθυνσης κενή προς το παρόν, καθώς καταχωρείτε αυτές τις πληροφορίες στα επόμενα βήματα. Επιλέξτε Καταχώρηση.
Αφού ολοκληρωθεί η καταχώριση, ανοίγει η σελίδα Επισκόπηση. Μεταβείτε στο Δηλωτικό. Επιβεβαιώστε ότι το accessTokenAcceptedVersion έχει οριστεί σε 2. Αν όχι, αλλάξτε το σε 2 και μετά επιλέξτε Αποθήκευση.
Προσθέστε τη διεύθυνση URL ανακατεύθυνσης
Ενώ η καταχώριση είναι ανοιχτή, μεταβείτε στην επιλογή Έλεγχος ταυτότητας και μετά επιλέξτε Προσθήκη πλατφόρμας.
Στο επίπεδο ρύθμισης παραμέτρων πλατφορμών, επιλέξτε Web.
Στην περιοχή URI ανακατεύθυνσης, προσθέστε την πλήρη διεύθυνση URL στη σελίδα όπου φιλοξενείται ο καμβάς συνομιλίας σας. Στην ενότητα Έμμεση εκχώρηση, επιλέξτε τα πλαίσια ελέγχου Διακριτικά αναγνωριστικού και Διακριτικά πρόσβασης.
Επιλέξτε Ρύθμιση παραμέτρων για να επιβεβαιώσετε τις αλλαγές σας.
Μεταβείτε στα Δικαιώματα API. Επιλέξτε Εκχώρηση συναίνεσης διαχειριστή για <το όνομα του μισθωτή σας> και στη συνέχεια Ναι.
Σημαντικό
Για να μην χρειάζεται οι χρήστες να συναινούν σε κάθε εφαρμογή, ένας καθολικός διαχειριστής, ένας διαχειριστής εφαρμογών ή ένας διαχειριστής εφαρμογών cloud πρέπει ναεκχωρεί συναίνεση σε όλους τους μισθωτές για τις καταχωρίσεις εφαρμογών σας.
Ορίστε ένα προσαρμοσμένο πεδίο για το copilot σας
Καθορίστε ένα προσαρμοσμένο πεδίο εκθέτοντας ένα API για την καταχώριση της εφαρμογής καμβά στην καταχώριση εφαρμογής ελέγχου ταυτότητας.
Τα πεδία σάς επιτρέπουν να προσδιορίζετε ρόλους χρηστών και διαχειριστών καθώς και δικαιώματα πρόσβασης.
Αυτό το βήμα δημιουργεί μια σχέση αξιοπιστίας μεταξύ της καταχώρισης της εφαρμογής ελέγχου ταυτότητας για έλεγχο ταυτότητας και της καταχώρισης της εφαρμογής για τον προσαρμοσμένο καμβά σας.
Μεταβείτε στα Δικαιώματα API και βεβαιωθείτε ότι έχουν προστεθεί τα σωστά δικαιώματα για το copilot σας. Επιλέξτε Εκχώρηση συναίνεσης διαχειριστή για <το όνομα του μισθωτή σας> και στη συνέχεια Ναι.
Σημαντικό
Για να μην χρειάζεται οι χρήστες να συναινούν σε κάθε εφαρμογή, ένας καθολικός διαχειριστής, ένας διαχειριστής εφαρμογών ή ένας διαχειριστής εφαρμογών cloud πρέπει ναεκχωρεί συναίνεση σε όλους τους μισθωτές για τις καταχωρίσεις εφαρμογών σας.
Μεταβείτε στην Εμφάνιση ενός API και επιλέξτε Προσθήκη πεδίου.
Εισαγάγετε ένα όνομα για το πεδίο, μαζί με τις εμφανιζόμενες πληροφορίες που θα πρέπει να εμφανίζονται στους χρήστες όταν εισέρχονται στην οθόνη SSO. Επιλέξτε Προσθήκη πεδίου.
Επιλέξτε Προσθήκη εφαρμογής προγράμματος-πελάτη.
Εισαγάγετε το Αναγνωριστικό εφαρμογής (πρόγραμμα-πελάτης) από τη σελίδα Επισκόπηση για την καταχώριση της εφαρμογής καμβά στο πεδίο Αναγνωριστικό πελάτη. Επιλέξτε το πλαίσιο ελέγχου για το πεδίο που δημιουργήσατε.
Επιλέξτε Προσθήκη εφαρμογής.
Ρυθμίστε τις παραμέτρους ελέγχου ταυτότητας στο Copilot Studio για την ενεργοποίηση SSO
Η Διεύθυνση URL ανταλλαγής διακριτικών στη σελίδα διαμόρφωσης ελέγχου ταυτότητας του Copilot Studio χρησιμοποιείται για την ανταλλαγή του διακριτικού OBO για το διακριτικό πρόσβασης που ζητήθηκε μέσω του Bot Framework.
Το Copilot Studio καλεί το Microsoft Entra ID για την εκτέλεση της πραγματικής ανταλλαγής.
Συνδεθείτε στο Copilot Studio.
Επιβεβαιώστε ότι έχετε επιλέξει το copilot για το οποίο θέλετε να ενεργοποιήσετε τον έλεγχο ταυτότητας επιλέγοντας το εικονίδιο copilot στο επάνω μενού και επιλέγοντας το σωστό copilot.
Στο μενού πλοήγησης, στις Ρυθμίσεις επιλέξτε Ασφάλεια. Έπειτα, επιλέξτε την κάρτα Έλεγχος ταυτότητας.
Εισαγάγετε το πλήρες URI πεδίου από το επίπεδο Έκθεση ενός API για την καταχώρηση της εφαρμογής ελέγχου ταυτότητας του copilot στο πεδίο Διεύθυνση URL του διακριτικού ανταλλαγής. Το URI πρέπει να έχει τη μορφή του api://1234-4567/scope.name.
Επιλέξτε Αποθήκευση και μετά δημοσιεύστε το περιεχόμενο του copilot.
Ρυθμίστε τις παραμέτρους του κώδικα HTML προσαρμοσμένου καμβά για να ενεργοποιήσετε SSO
Ενημερώστε τη σελίδα προσαρμοσμένου καμβά όπου βρίσκεται το copilot για να διακόψετε το αίτημα κάρτας σύνδεσης και να ανταλλάξετε το διακριτικό OBO.
Ρυθμίστε τις παραμέτρους της Βιβλιοθήκης ελέγχου ταυτότητας της Microsoft (MSAL) προσθέτοντας τον παρακάτω κώδικα σε μια ετικέτα <script> στην ενότητα <head>.
Ενημερώστε το clientId με το Αναγνωριστικό εφαρμογής (πρόγραμμα-πελάτης) για την καταχώριση της εφαρμογής καμβά. Αντικαταστήστε το <Directory ID> με το Αναγνωριστικό καταλόγου (μισθωτής). Μπορείτε να λάβετε αυτά τα αναγνωριστικά από τη σελίδα Επισκόπηση για την καταχώρηση της εφαρμογής καμβά.
<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>
Εισαγάγετε το ακόλουθο <script> στην ενότητα <body>. Αυτή η δέσμη ενεργειών καλεί μια μέθοδο για ανάκτηση του resourceUrl και ανταλλαγή του τρέχοντος διακριτικού που ζητήθηκε από την προτροπή OAuth.
<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>
Εισαγάγετε το ακόλουθο <script> στην ενότητα <body>. Στη μέθοδο main, ο κωδικός αυτός προσθέτει ένα στοιχείο υπό όρους στο store σας με το μοναδικό αναγνωριστικό του copilot σας. Δημιουργεί επίσης ένα μοναδικό αναγνωριστικό ως μεταβλητή userId.
Ενημερώστε το <COPILOT ID> με το αναγνωριστικό του copilot σας. Μπορείτε να δείτε το αναγνωριστικό του copilot στην καρτέλα καναλιών για το copilot που χρησιμοποιείτε και επιλέγοντας Εφαρμογή για κινητές συσκευές στην πύλη Copilot Studio.
<script>
(async function main() {
// Add your COPILOT 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') {
// copilot 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>
Πλήρες δείγμα κώδικα
Για περισσότερες πληροφορίες, μπορείτε να βρείτε το πλήρες δείγμα κώδικα, με το MSAL και να αποθηκεύσετε δέσμες ενεργειών υπό όρους που περιλαμβάνονται ήδη στο αρχείο repo του GitHub.
Σύντομα διαθέσιμα: Καθ' όλη τη διάρκεια του 2024 θα καταργήσουμε σταδιακά τα ζητήματα GitHub ως μηχανισμό ανάδρασης για το περιεχόμενο και θα το αντικαταστήσουμε με ένα νέο σύστημα ανάδρασης. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα: https://aka.ms/ContentUserFeedback.