Ρύθμιση παραμέτρων καθολικής σύνδεσης με μια γενική υπηρεσία παροχής OAuth
Το Copilot Studio υποστηρίζει καθολική σύνδεση (SSO) με συμβατές υπηρεσίες παροχής ελέγχου ταυτότητας OAuth 2.0. Το SSO επιτρέπει στους παράγοντες στον ιστότοπό σας να συνδέουν τους πελάτες εάν έχουν συνδεθεί στη σελίδα ή την εφαρμογή όπου αναπτύσσεται ο παράγοντας.
Προαπαιτούμενα
- Ρύθμιση ελέγχου ταυτότητας χρήστη με έναν γενικό πάροχο OAuth 2.0.
- Προσθήκη ελέγχου ταυτότητας χρήστη σε θέματα.
- Προσαρμογή της εμφάνισης και της αίσθησης ενός παράγοντα.
Δημιουργία ή χρήση προσαρμοσμένου καμβά που υποστηρίζει τη γενική ροή SSO υπηρεσίας παροχής OAuth
Όταν το θέμα ελέγχου ταυτότητας ενεργοποιείται σε παράγοντες που είναι συνδεδεμένα με έναν γενικό πάροχο OAuth 2.0, το Copilot Studio στέλνει ένα μήνυμα που περιέχει μια ασφαλή διεύθυνση URL, η οποία χρησιμοποιείται για την αποστολή του διακριτικού πρόσβασης του χρήστη.
Ο προσαρμοσμένος καμβάς ή μια σελίδα όπου ο καμβάς είναι ενσωματωμένος θα πρέπει να εφαρμόζει το παρακάτω μοτίβο:
Αποκτήστε ένα διακριτικό πρόσβασης για τον συνδεδεμένο χρήστη από την υπηρεσία παροχής ελέγχου ταυτότητας OAuth 2.0, χρησιμοποιώντας την προτιμώμενη μέθοδο.
Θα πρέπει να εξασφαλίσετε τη σύνδεση ενός εισερχόμενου μηνύματος από το Copilot Studio και να εξαγάγετε την ασφαλή διεύθυνση URL.
Δημοσιεύστε το διακριτικό πρόσβασης στην ασφαλή διεύθυνση URL.
Εξάγετε την ασφαλή διεύθυνση URL και δημοσιεύστε το διακριτικό
Ο προσαρμοσμένος καμβάς χρησιμοποιεί τα εισερχόμενα μηνύματα χρησιμοποιώντας μια έννοια ενδιάμεσου λογισμικού, η οποία είναι κώδικας που εκτελείται στο πλαίσιο της λήψης μηνυμάτων από Copilot Studio.
Για να ανταποκριθείτε σε αιτήσεις σύνδεσης, ο προσαρμοσμένος καμβάς πρέπει να απαιτεί τη χρήση μηνυμάτων με συνημμένα τα οποία έχουν τον τύπο περιεχομένου application/vnd.microsoft.card.oauth
. Τα συνημμένα OAuthCard περιέχουν μια ιδιότητα content.tokenPostResource.sasUrl
, από την οποία είναι δυνατή η εξαγωγή της ασφαλούς διεύθυνσης URL. Τέλος, ο προσαρμοσμένος καμβάς πρέπει να αναρτήσει το μήνυμα του διακριτικού πρόσβασης στην ασφαλή διεύθυνση URL.
Ο παρακάτω κώδικας JavaScript είναι ένα παράδειγμα κώδικα ενδιάμεσου λογισμικού που εξάγει την ασφαλή διεύθυνση URL και καταχωρεί ένα διακριτικό. Εάν η καταχώρηση είναι επιτυχής, το ενδιάμεσο λογισμικό επιστρέφει false
. Εάν η καταχώρηση δεν είναι επιτυχής ή εάν η δραστηριότητα δεν έχει την ιδιότητα application/vnd.microsoft.card.oauth
, επιστρέφει 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);
}
};
Πλήρες δείγμα κώδικα
Η υλοποίηση ενός προσαρμοσμένου καμβά ή μιας εφαρμογής που λαμβάνει ένα διακριτικό για έναν χρήστη που έχει συνδεθεί και δημοσιεύει το διακριτικό στο Copilot Studio, διαφέρει ανάλογα με τον πάροχο ελέγχου ταυτότητας. Για περισσότερες πληροφορίες, ανατρέξτε στην τεκμηρίωση του παρόχου ελέγχου ταυτότητας για περισσότερες λεπτομέρειες σχετικά με τις ροές σύνδεσης και τη λήψη διακριτικών πρόσβασης. Για ένα δείγμα αναφοράς με τη χρήση του OKTA, ανατρέξτε στο θέμα SSO τρίτου κατασκευαστή με OKTA.
Χρήση του διακριτικού στο Copilot Studio
Τα διακριτικά που καταχωρούνται χρησιμοποιώντας την ασφαλή διεύθυνση URL συμπληρώνονται στη μεταβλητή System.User.AccessToken
στο Copilot Studio. Οι δημιουργοί παραγόντων μπορούν να χρησιμοποιήσουν αυτή τη μεταβλητή συστήματος για να έχουν πρόσβαση σε προστατευμένα API που είναι συνδεδεμένα με τον πιστοποιημένο πάροχο που δημιούργησε το διακριτικό.
Στο παρακάτω παράδειγμα, μια κλήση HTTP έχει ρυθμιστεί με μια κεφαλίδα ελέγχου ταυτότητας που χρησιμοποιεί το System.User.AccessToken
.
Υποστηριζόμενα κανάλια
Το SSO με έναν γενικό πάροχο ελέγχου ταυτότητας OAuth είναι ένα προσαρμοσμένο μοτίβο, το οποίο μπορεί να υλοποιηθεί είτε από έναν προσαρμοσμένο καμβά είτε από οποιονδήποτε άλλο υπολογιστή-πελάτη που εργάζεται με το API Directline.