Microsoft Entra आईडी के साथ एकल साइन-ऑन कॉन्फ़िगर करें
आलेख
Copilot Studio एकल साइन-ऑन (SSO) का समर्थन करता है. SSO आपकी वेबसाइट पर एजेंटों को ग्राहकों को साइन इन करने की अनुमति देता है, यदि वे पहले से ही उस पेज या ऐप पर लॉग इन हैं जहां एजेंट तैनात है।
उदाहरण के लिए, एजेंट को कॉर्पोरेट इंट्रानेट या किसी ऐसे ऐप पर होस्ट किया जाता है, जिसमें उपयोगकर्ता पहले से लॉग इन होता है।
Copilot Studioके लिए SSO को कॉन्फ़िगर करने के चार मुख्य चरण हैं:
अपने कस्टम कैनवास के लिए एक ऐप पंजीकरण in Microsoft Entra ID बनाएं.
अपने एजेंट के लिए एक कस्टम स्कोप परिभाषित करें.
SSO को सक्षम करने के लिए Copilot Studio में प्रमाणीकरण कॉन्फ़िगर करें.
SSO को सक्षम करने के लिए अपना कस्टम कैनवास HTML कोड कॉन्फ़िगर करें.
निम्न तालिका उन चैनलों का विवरण देती है जो वर्तमान में SSO का समर्थन करते हैं। आप विचार मंच पर अतिरिक्त चैनलों के लिए समर्थन का सुझाव दे सकते हैं। Copilot Studio
प्रमाणीकरण ऐप पंजीकरण को फिर से बनाने के लिए निर्देशों का पालन करें, दूसरा ऐप पंजीकरण बनाएं, जो आपके कैनवास ऐप पंजीकरण के रूप में कार्य करता है.
प्रमाणीकरण ऐप पंजीकरण में कैनवास ऐप पंजीकरण ID जोड़ें.
टोकन एक्सचेंज URL जोड़ें
Microsoft Entra आईडी प्रमाणीकरण सेटिंग को Copilot Studio में अपडेट करने के लिए, आपको अपने ऐप और Copilot Studio को जानकारी साझा करने की अनुमति देने के लिए टोकन एक्सचेंज URL जोड़ना होगा।
अपने प्रमाणीकरण ऐप पंजीकरण ब्लेड पर Azure पोर्टल में, API एक्सपोज़ करें पर जाएँ.
स्कोप्स के अंतर्गत, क्लिपबोर्ड पर कॉपी करें आइकन का चयन करें.
Copilot Studioमें, सेटिंग्स के अंतर्गत नेविगेशन मेनू में, सुरक्षा का चयन करें, और फिर प्रमाणीकरण टाइल का चयन करें।
टोकन एक्सचेंज URL (SSO के लिए आवश्यक) के लिए, आपके द्वारा पहले कॉपी किया गया स्कोप पेस्ट करें.
सहेजें चुनें.
अपना कैनवास ऐप पंजीकरण कॉन्फ़िगर करें
अपना कैनवास ऐप पंजीकरण बनाने के बाद, प्रमाणीकरण पर जाएँ, और फिर प्लेटफ़ॉर्म जोड़ें चुनें.
प्लेटफ़ॉर्म कॉन्फ़िगरेशन के अंतर्गत, एक प्लेटफ़ॉर्म जोड़ें चुनें, और फिर वेब चुनें।
रीडायरेक्ट URI के अंतर्गत, अपने वेब पृष्ठ का URL दर्ज करें; उदाहरण के लिए, http://contoso.com/index.html।
निहित अनुदान और हाइब्रिड प्रवाह अनुभाग में, एक्सेस टोकन (अंतर्निहित प्रवाह के लिए प्रयुक्त) और ID टोकन (अंतर्निहित और हाइब्रिड प्रवाह के लिए प्रयुक्त) दोनों को चालू करें.
कॉन्फ़िगर करें को चुनें.
अपने एजेंट का टोकन एंडपॉइंट URL खोजें
Copilot Studioमें, अपना एजेंट खोलें और फिर चैनल चुनें।
मोबाइल ऐप चुनें.
टोकन एंडपॉइंट के अंतर्गत, कॉपी करें का चयन करें.
अपने वेब पेज में SSO कॉन्फ़िगर करें
रीडायरेक्ट URL के लिए वेब पेज बनाने के लिए Copilot Studio GitHub रेपो में दिए गए कोड का उपयोग करें। GitHub repo से कोड कॉपी करें और निम्नलिखित निर्देशों का उपयोग करके इसे संशोधित करें।
नोट
GitHub रिपो में दिए गए कोड के लिए आवश्यक है कि उपयोगकर्ता लॉगिन बटन का चयन करें या किसी अन्य साइट से लॉगिन करें। स्वचालित लॉगिन सक्षम करने के लिए, aysnc function main() के आरंभ में निम्नलिखित कोड जोड़ें:
JavaScript
(asyncfunctionmain() {
if (clientApplication.getAccount() == null) {
await clientApplication.loginPopup(requestObj).then(onSignin).catch(function (error) {console.log(error) });
}
// Add your BOT ID below var theURL =
Azure पोर्टल में अवलोकन पृष्ठ पर जाएं और अपने कैनवास अनुप्रयोग पंजीकरण से अनुप्रयोग (क्लाइंट) ID और निर्देशिका (टेनेंट) ID की प्रतिलिपि बनाएँ.
Microsoft प्रमाणीकरण लाइब्रेरी (MSAL) को कॉन्फ़िगर करने के लिए:
clientIdअपने आवेदन (क्लाइंट) आईडी को असाइन करें।
authority को https://login.microsoftonline.com/ असाइन करें और अंत में अपनी निर्देशिका (किरायेदार) आईडी जोड़ें।
उदाहरण के लिए:
JavaScript
var clientApplication;
(function (){
var msalConfig = {
auth: {
clientId: '00001111-aaaa-2222-bbbb-3333cccc4444',
authority: 'https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
},
theURL वैरिएबल को आपके द्वारा पहले कॉपी किए गए टोकन एंडपॉइंट URL पर सेट करें। उदाहरण के लिए:
JavaScript
(asyncfunctionmain() {
var theURL = "https://<token endpoint URL>"
एक कस्टम उपसर्ग शामिल करने के लिए userId के मान को संपादित करें। उदाहरण के लिए:
सत्यापित करें कि आपने SSO को सफलतापूर्वक कॉन्फ़िगर किया है.
अपने एजेंट का परीक्षण करते समय, यदि SSO सफलतापूर्वक कॉन्फ़िगर नहीं किया गया है, तो आपको लॉग इन करने के लिए कहा जाएगा, जो आपको एक सत्यापन कोड देगा जिसे आपको चैट विंडो में कॉपी करना होगा।
यदि आपको साइन-इन संकेत दिखाई दे, तो सत्यापित करें कि आपने इस प्रक्रिया के चरण 1 से 5 तक को सही ढंग से पूरा किया है। यदि SSO सफलतापूर्वक कॉन्फ़िगर हो जाता है, तो आपको लॉग इन करने के लिए संकेत नहीं दिया जाता है।
Copilot Studio उपयोगकर्ता को उनके कॉन्फ़िगर किए गए पहचान प्रदाता के साथ लॉग इन करने की अनुमति देने के लिए एक लॉगिन प्रॉम्प्ट भेजता है।
एजेंट का कस्टम कैनवास साइन-इन प्रॉम्प्ट को इंटरसेप्ट करता है और Microsoft Entra आईडी से ऑन-बिहाफ-ऑफ (OBO) टोकन का अनुरोध करता है। कैनवास एजेंट को टोकन भेजता है।
ओबीओ टोकन प्राप्त होने पर, एजेंट ओबीओ टोकन को "एक्सेस टोकन" के लिए एक्सचेंज करता है और एक्सेस टोकन के मूल्य का उपयोग करके वेरिएबल को भरता है। AuthToken इस समय IsLoggedIn चर भी सेट किया जाता है।
अपने कस्टम कैनवस के लिए एक ऐप पंजीकरण in Microsoft Entra ID बनाएं
SSO सक्षम करने के लिए, आपको दो अलग-अलग ऐप पंजीकरण की आवश्यकता होगी:
ऐप पंजीकरण पर जाएं, या तो आइकन का चयन करके या शीर्ष खोज बार में खोज करके।
नया पंजीकरण चुनें.
पंजीकरण के लिए एक नाम दर्ज करें. आप जिस एजेंट का कैनवास पंजीकृत कर रहे हैं, उसके नाम का उपयोग करना तथा प्रमाणीकरण के लिए उसे ऐप पंजीकरण से अलग करने के लिए "कैनवास" शामिल करना उपयोगी हो सकता है।
उदाहरण के लिए, यदि आपके एजेंट का नाम "Contoso बिक्री सहायता" है, तो आप ऐप पंजीकरण का नाम "ContosoSalesCanvas" या कुछ ऐसा रख सकते हैं।
समर्थित खाता प्रकार के अंतर्गत, किसी भी संगठनात्मक टेनेंट में खाते (कोई भी Microsoft Entra आईडी निर्देशिका - मल्टीटेनेंट) और व्यक्तिगत Microsoft खाते (उदा. Skype, Xbox) का चयन करें.
रीडायरेक्ट URI अनुभाग को अभी खाली छोड़ दें, क्योंकि आप अगले चरणों में वह जानकारी दर्ज करेंगे।
पंजीकरण करें चुनें.
पंजीकरण पूरा होने के बाद, यह अवलोकन पृष्ठ पर खुलता है।
मेनिफेस्ट पर जाएं. पुष्टि करें कि accessTokenAcceptedVersion को 2 पर सेट किया गया है. यदि ऐसा नहीं है, तो इसे 2 में बदलें और फिर सहेजें चुनें।
रीडायरेक्ट URL जोड़ें
पंजीकरण खुला होने पर, प्रमाणीकरण पर जाएं और फिर प्लेटफ़ॉर्म जोड़ें का चयन करें।
प्लेटफ़ॉर्म कॉन्फ़िगर करें ब्लेड पर, वेब का चयन करें.
रीडायरेक्ट URIs के अंतर्गत, उस पृष्ठ का पूरा URL जोड़ें जहां आपका चैट कैनवास होस्ट किया गया है।
अन्तर्निहित अनुमति खंड के अन्तर्गत, आईडी टोकन और एक्सेस टोकन चैकबॉक्सों को चुनें.
अपने परिवर्तनों की पुष्टि करने के लिए कॉन्फ़िगर करें चुनें.
API अनुमतियाँ पर जाएँ.
अपने किराएदार नाम के लिए व्यवस्थापक सहमति प्रदान करें <चुनें और फिर > हां चुनें।
महत्वपूर्ण
उपयोगकर्ताओं को प्रत्येक एप्लिकेशन के लिए सहमति देने से बचने के लिए, कम से कम एप्लिकेशन व्यवस्थापक या क्लाउड एप्लिकेशन व्यवस्थापक की भूमिका वाला कोई व्यक्ति आपके एप्लिकेशन पंजीकरणों के लिए टेनेंट-व्यापी सहमति प्रदान कर सकता है।
अपने एजेंट के लिए कस्टम स्कोप परिभाषित करें
प्रमाणीकरण अनुप्रयोग पंजीकरण के भीतर कैनवास अनुप्रयोग पंजीकरण के लिए API को अनावृत्त करके एक कस्टम व्यापकता को परिभाषित करें.
स्कोप्स आपको उपयोगकर्ता और व्यवस्थापक भूमिकाएं और पहुंच अधिकार निर्धारित करने की अनुमति देते हैं।
यह चरण प्रमाणीकरण के लिए प्रमाणीकरण अनुप्रयोग पंजीकरण और आपके कस्टम कैनवास के लिए अनुप्रयोग पंजीकरण के मध्य एक विश्वास संबंध बनाता है.
वह ऐप पंजीकरण खोलें जिसे आपने प्रमाणीकरण कॉन्फ़िगर करते समय बनाया था .
API अनुमतियाँ पर जाएँ और सुनिश्चित करें कि आपके एजेंट के लिए सही अनुमतियाँ जोड़ी गई हैं।
अपने किराएदार नाम के लिए व्यवस्थापक सहमति प्रदान करें <चुनें और फिर > हां चुनें।
महत्वपूर्ण
उपयोगकर्ताओं को प्रत्येक एप्लिकेशन के लिए सहमति देने से बचने के लिए, कम से कम एप्लिकेशन व्यवस्थापक या क्लाउड एप्लिकेशन व्यवस्थापक की भूमिका वाला कोई व्यक्ति आपके एप्लिकेशन पंजीकरणों के लिए टेनेंट-व्यापी सहमति प्रदान कर सकता है।
API एक्सपोज़ करें पर जाएं और स्कोप जोड़ेंचुनें.
प्रदर्शन जानकारी सहित कार्यक्षेत्र का नाम दर्ज करें जो उपयोगकर्ताओं को SSO स्क्रीन पर आने पर दिखाई जानी चाहिए.
स्कोप जोड़ें चुनें.
क्लाइंट अनुप्रयोग जोड़ें का चयन करें.
कैनवास ऐप पंजीकरण के लिए एप्लिकेशन (क्लाइंट) आईडी अवलोकन पेज से क्लाइंट आईडी फ़ील्ड में दर्ज करें। आपके द्वारा बनाए गए सूचीबद्ध व्यापकता के लिए चेकबॉक्स का चयन करें.
एप्लिकेशन जोड़ें चुनें.
SSO सक्षम करने के लिए Copilot Studio में प्रमाणीकरण कॉन्फ़िगर करें
प्रमाणीकरण कॉन्फ़िगरेशन पृष्ठ में टोकन एक्सचेंज URL का उपयोग बॉट फ्रेमवर्क के माध्यम से अनुरोधित एक्सेस टोकन के लिए OBO टोकन का आदान-प्रदान करने के लिए किया जाता है। Copilot Studio
Copilot Studio वास्तविक आदान-प्रदान करने के लिए Microsoft Entra आईडी को कॉल करता है।
Copilot Studioपर लॉग इन करें.
शीर्ष मेनू पर एजेंट आइकन का चयन करके और सही एजेंट चुनकर पुष्टि करें कि आपने वह एजेंट चुना है जिसके लिए आप प्रमाणीकरण सक्षम करना चाहते हैं।
नेविगेशन मेनू में, सेटिंग के अंतर्गत, सुरक्षा चुनें. फिर प्रमाणीकरण कार्ड चुनें.
एजेंट के प्रमाणीकरण ऐप पंजीकरण के लिए एक्सपोज़ एन एपीआई टोकन एक्सचेंज यूआरएल फ़ील्ड में पूर्ण स्कोप यूआरआई दर्ज करें। URI api://1234-4567/scope.name प्रारूप में है.
सहेजें चुनें और फिर एजेंट सामग्री प्रकाशित करें.
SSO को सक्षम करने के लिए अपना कस्टम कैनवास HTML कोड कॉन्फ़िगर करें
लॉगिन कार्ड अनुरोध को रोकने और OBO टोकन का आदान-प्रदान करने के लिए एजेंट जहां स्थित है, उस कस्टम कैनवास पृष्ठ को अपडेट करें।
अपने <head> अनुभाग में <script> टैग में निम्न कोड जोड़कर Microsoft प्रमाणीकरण लाइब्रेरी (MSAL) को कॉन्फ़िगर करें।
कैनवास ऐप पंजीकरण के लिए clientId एप्लिकेशन (क्लाइंट) ID से अपडेट करें.<Directory ID> को डायरेक्ट्री (टेनेंट) ID से प्रतिस्थापित करें. आपको ये आईडी कैनवास ऐप पंजीकरण के लिए अवलोकन पृष्ठ से मिलती हैं.
HTML
<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>
निम्नलिखित <स्क्रिप्ट> को <बॉडी> अनुभाग में प्रविष्ट करें। यह स्क्रिप्ट resourceUrl को पुनः प्राप्त करने के लिए एक विधि को कॉल करती है और OAuth प्रॉम्प्ट द्वारा अनुरोधित टोकन के लिए आपके वर्तमान टोकन का आदान-प्रदान करती है।
HTML
<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 IDreturn 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>
निम्नलिखित <स्क्रिप्ट> को <बॉडी> अनुभाग में प्रविष्ट करें।
main विधि के अंतर्गत, यह कोड आपके storeएजेंट के विशिष्ट पहचानकर्ता के साथ एक शर्त जोड़ता है। यह आपके userId चर के रूप में एक अद्वितीय आईडी भी उत्पन्न करता है।
अपने एजेंट की आईडी अपडेट करें. <COPILOT ID> आप जिस एजेंट का उपयोग कर रहे हैं उसके लिए चैनल टैब पर जाकर और पोर्टल पर मोबाइल ऐप Copilot Studio का चयन करके अपने एजेंट की आईडी देख सकते हैं।
HTML
<script>
(async function main() {
// Add your AGENT 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 oauthCardreturn next(action);
}
// else: tokenexchange successful and we do not display the oauthCard
},
error => {
// an error occurred to display the oauthCardreturn next(action);
}
);
return;
} elsereturn next(action);
});
} elsereturn next(action);
} elsereturn 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>
पूर्ण नमूना कोड
अधिक जानकारी के लिए, आप हमारे GitHub repo पर MSAL और स्टोर कंडीशनल स्क्रिप्ट के साथ पूरा नमूना कोड पा सकते हैं।
पहचान समाधानों को आधुनिक बनाने, हाइब्रिड समाधानों को कार्यान्वित करने और पहचान संचालन कार्यान्वित करने के लिए Microsoft Entra ID की सुविधाओं का प्रदर्शन करें.