हमने इस ब्लॉग पर Amazon इंटरएक्टिव वीडियो सर्विस (Amazon IVS) के साथ लाइव स्ट्रीमिंग अनुभव बनाने के कई अलग-अलग तरीकों पर ध्यान दिया है, लेकिन उन सभी उदाहरणों ने अब तक सार्वजनिक चैनलों पर ध्यान केंद्रित किया है, जिन्हें बिना किसी प्लेबैक प्राधिकरण के कोई भी देख सकता है। सत्यापित करें कि दर्शक को लाइव स्ट्रीम देखने की अनुमति है। कई लाइव स्ट्रीमिंग यूजर जनरेटेड कंटेंट (यूजीसी) प्लेटफॉर्म को स्ट्रीम देखने के लिए किसी प्राधिकरण की आवश्यकता नहीं होती है, लेकिन ऐसे उपयोग मामले हैं जहां हम अपने स्ट्रीम व्यूअर को अपने दर्शकों के एक सबसेट तक सीमित करना चाहते हैं। उदाहरण के लिए, हो सकता है कि हमारे सामग्री निर्माता अपने द्वारा उत्पादित सामग्री के लिए सदस्यता शुल्क लेना चाहते हों। या, शायद स्ट्रीम सामग्री के लिए लाइसेंसिंग की सीमाएँ हैं जो कुछ जनसांख्यिकी या भौगोलिक स्थानों पर वितरण को प्रतिबंधित करती हैं। उपयोग के मामलों को संबोधित करने के लिए जहां प्लेटफॉर्म को प्लेबैक प्राधिकरण लागू करना चाहिए, Amazon IVS निजी चैनलों का समर्थन करता है। ये चैनल प्लेबैक को उन दर्शकों तक सीमित कर देंगे जिन्होंने एक टोकन प्राप्त किया है जो एक निजी कुंजी के साथ हस्ताक्षरित है और एक सार्वजनिक कुंजी के साथ सत्यापित है। इस पोस्ट में, हम देखेंगे कि प्लेबैक प्राधिकरण को कैसे सक्षम किया जाए, प्लेबैक कुंजी जोड़ी कैसे बनाई जाए, एक टोकन उत्पन्न किया जाए और एक निजी स्ट्रीम कैसे चलाया जाए। एक निजी चैनल बनाना इस कार्यप्रवाह में पहला कदम एक निजी चैनल बनाना है। एक निजी चैनल बनाना एक सार्वजनिक चैनल बनाने के समान है - प्लेबैक प्राधिकरण को सक्षम करने के लिए चैनल बनाते समय एकमात्र अंतर एक सेटिंग है। हम के माध्यम से, AWS CLI के माध्यम से, या किसी भी AWS SDK के माध्यम से प्लेबैक प्राधिकरण को सक्षम कर सकते हैं। Amazon IVS कंसोल आइए Amazon IVS कंसोल के माध्यम से एक निजी चैनल बनाने का तरीका देखें। कंसोल में चैनलों की सूची में, क्लिक करें. चैनल बनाएं पृष्ठ पर, एक चैनल नाम दर्ज करें (#1), (#2) चुनें, और चालू करें (#3)। चैनल बनाएं कस्टम कॉन्फ़िगरेशन वीडियो प्लेबैक के लिए टोकन-प्राधिकरण आवश्यकता सक्षम करें यदि आप चैनल बनाने के लिए सीएलआई का उपयोग करना पसंद करते हैं, तो आप विकल्प जोड़ सकते हैं। --authorized $ aws ivs create-channel --name demo-private-channel --latency-mode LOW --type STANDARD --authorized वास्तव में, आप अपने उपयोगकर्ता के चैनल बनाने के लिए शायद AWS SDK का उपयोग करने जा रहे हैं। इस मामले में, आप प्लेबैक के लिए सेट करने के लिए उचित तर्क निर्धारित करने के लिए अपनी पसंदीदा भाषा के लिए एडब्ल्यूएस एसडीके दस्तावेज का उल्लेख कर सकते हैं। उदाहरण के लिए, यहाँ JavaScript v3 के लिए AWS SDK के लिए के दिए गए हैं जो बताते हैं कि चैनल बनाते समय हम एक बूलियन संपत्ति सेट कर सकते हैं। authorized CreateChannelCommandInput दस्तावेज़ authorized अब जब हमने प्लेबैक प्राधिकरण को सक्षम कर दिया है, अगर हम चैनल पर प्रसारण करते हैं और प्लेबैक टोकन को जनरेट और पास किए बिना लाइव प्लेबैक देखने का प्रयास करते हैं, तो हमें प्लेबैक त्रुटि प्राप्त होगी। यहाँ Amazon IVS प्लेयर SDK का उपयोग करके प्लेबैक का एक उदाहरण दिया गया है जहाँ हमने प्लेबैक त्रुटियों को पकड़ने के लिए एक श्रोता जोड़ा है। ERROR const streamUrl = '[private channel Playback Url]'; const ivsPlayer = IVSPlayer.create(); ivsPlayer.attachHTMLVideoElement(document.getElementById('video-player')); ivsPlayer.load(streamUrl); ivsPlayer.play(); ivsPlayer.addEventListener(IVSPlayer.PlayerEventType.ERROR, (err) => { console.log(err); }); किसी निजी चैनल की ओर इंगित किए जाने पर इसे ब्राउज़र में चलाने से कंसोल में निम्न त्रुटि लॉग हो जाएगी। { "type": "ErrorAuthorization", "code": 7, "source": "MasterPlaylist", "message": "invalid_playback_auth_token" } यह पुष्टि करता है कि हमारा चैनल वास्तव में निजी है, और प्लेबैक को अधिकृत करने के लिए के साथ जनरेट और पास करने के लिए एक की आवश्यकता होती है। प्लेबैक यूआरएल token प्लेबैक कुंजी बनाना इससे पहले कि हम प्लेबैक टोकन उत्पन्न कर सकें, हमें एक निजी/सार्वजनिक कुंजी जोड़ी बनानी होगी और इसे Amazon IVS कंसोल पर अपलोड करना होगा। इस कुंजी जोड़ी का उपयोग टोकन उत्पन्न करने के लिए किया जाएगा जो कि निजी कुंजी के साथ हस्ताक्षरित है, और प्लेबैक को अधिकृत करने के लिए सार्वजनिक कुंजी के साथ सत्यापित है। JWT Amazon IVS कंसोल के साथ प्लेबैक कुंजियों को प्रबंधित करने के लिए, बाएं नेविगेशन साइडबार में का चयन करें। प्लेबैक कुंजियों हम या तो कंसोल के साथ एक कुंजी बना सकते हैं, या मैन्युअल रूप से अपनी स्थानीय मशीन पर OpenSSL ऑफ़लाइन के साथ बना सकते हैं। सीधे कंसोल में कुंजी जोड़ी बनाने के लिए। इसके लिए पर क्लिक करें। क्रिएट प्लेबैक की कुंजी को एक नाम दें और क्लिक करें. बनाएं इस जोड़ी की सार्वजनिक कुंजी आपके AWS खाते में सहेजी गई है और इसका उपयोग किसी भी प्लेबैक अनुरोध को सत्यापित करने के लिए किया जाएगा जिसमें निजी कुंजी के साथ हस्ताक्षरित टोकन शामिल है। कुंजी जोड़ी उत्पन्न करने के लिए Amazon IVS कंसोल का उपयोग करते समय, निजी कुंजी तुरंत आपकी मशीन पर डाउनलोड हो जाती होती है। है और कंसोल में सहेजी नहीं जाती है या आगे डाउनलोड के लिए उपलब्ध नहीं एक कुंजी जोड़ी ऑफ़लाइन बनाना यदि आप अपनी स्वयं की कुंजी जोड़ी बनाना पसंद करते हैं, तो आप वह ऑफ़लाइन कर सकते हैं और फिर सार्वजनिक कुंजी को Amazon IVS कंसोल में आयात कर सकते हैं। यहाँ OpenSSL के साथ एक प्रमुख जोड़ी बनाने का एक उदाहरण दिया गया है। $ openssl ecparam -name secp384r1 -genkey -noout -out demo-private-channel-private-key-1.pem $ openssl ec -in demo-private-channel-private-key-1.pem -pubout -out demo-private-channel-public-key-1.pem सार्वजनिक कुंजी आयात करने के लिए, सूची पृष्ठ पर पर क्लिक करें। प्लेबैक कुंजी आयात आयातित कुंजी को एक नाम दें, और कुंजी फ़ाइल के लिए ब्राउज़ करें (या कुंजी फ़ाइल सामग्री पेस्ट करें)। सार्वजनिक सार्वजनिक यह एडब्ल्यूएस सीएलआई के माध्यम से भी किया जा सकता है: $ aws ivs \ import-playback-key-pair \ --name demo-private-channel-playback-key-1 \ --public-key-material "`cat /path/to/your/public-key.pem`" या एडब्ल्यूएस एसडीके (जावास्क्रिप्ट उदाहरण के लिए ) के माध्यम से। डॉक्स निजी चैनल प्लेबैक अब जबकि हमने एक निजी चैनल और एक प्लेबैक कुंजी युग्म बना लिया है, हम हस्ताक्षरित प्लेबैक प्राधिकरण टोकन उत्पन्न करने के लिए तैयार हैं। आपके आवेदन में, आपका व्यावसायिक तर्क तय करेगा कि किन उपयोगकर्ताओं को प्राधिकरण टोकन दिया जाना चाहिए। जैसा कि ऊपर उल्लेख किया गया है, हो सकता है कि आपका एप्लिकेशन लॉजिक पहले जाँच करे कि उपयोगकर्ता डेटाबेस से क्वेरी करके चैनल का एक वैध ग्राहक है। या, भौगोलिक प्रतिबंधों के मामले में, शायद आपको यह सुनिश्चित करने के लिए दर्शक का आईपी पता देखना होगा कि वह उस क्षेत्र से संबद्ध है जो स्ट्रीम को देखने में सक्षम है। सटीक कार्यान्वयन अलग-अलग होगा, लेकिन एक बार जब आप यह निर्धारित कर लेते हैं कि क्या दर्शक वास्तव में स्ट्रीम देखने के लिए अधिकृत है, तो आप नीचे वर्णित टोकन जनरेशन विधि के साथ आगे बढ़ सकते हैं। बैकएंड पर आप जिस भाषा का उपयोग कर रहे हैं, उसके आधार पर टोकन जेनरेशन अलग-अलग होगी। आवश्यकताओं के विवरण के लिए देखें। सावधान: उपयोगकर्ता मार्गदर्शिका Node.js के साथ एक टोकन उत्पन्न करने के लिए, हम लाइब्रेरी ( ) का उपयोग कर सकते हैं। यह लाइब्रेरी प्रक्रिया को आसान बनाएगी और हमें Amazon IVS की आवश्यकता के अनुसार साइनिंग एल्गोरिद्म के साथ अपने पेलोड पर हस्ताक्षर करने की अनुमति देगी। हमारे पेलोड में होना चाहिए, एक विशिष्ट डोमेन (या सभी डोमेन के लिए ) और एक टोकन समाप्ति टाइमस्टैम्प के लिए प्लेबैक को सीमित करने के लिए एक । पेलोड पर हस्ताक्षर करने के लिए, हम इसे नीचे के रूप में स्वरूपित करेंगे और उस निजी कुंजी का उपयोग करेंगे जिसे हमने ऊपर बनाया और आयात किया था। jsonwebtoken डॉक्स SHA-384 चैनल एआरएन * access-control-origin टोकन का उपयोग निजी चैनल पर प्लेबैक शुरू करने के लिए किया जाता है, इसलिए समाप्ति अवधि केवल टोकन जनरेशन और प्लेबैक प्रारंभ के बीच के समय पर लागू होती है। यह उस समय से संबंधित नहीं है जब उपयोगकर्ता किसी दिए गए स्ट्रीम को चला सकता है। प्लेबैक अधिकृत होने के बाद, यह तब तक जारी रह सकता है जब तक कि उपयोगकर्ता वेब पेज को डिस्कनेक्ट या पुनः लोड नहीं करता। नोट: यहाँ Node.js का उपयोग करके बैकएंड (एक माइक्रोसर्विस या सर्वर रहित एप्लिकेशन के माध्यम से) पर एक टोकन उत्पन्न करने का एक तरीका है। import jwt from "jsonwebtoken"; const getToken = () => { const privateChannelArn = process.env.DEMO_PRIVATE_CHANNEL_ARN; // private channel ARN const privateChannelPrivateKey = process.env.DEMO_PRIVATE_CHANNEL_PRIVATE_KEY; // playback private key const payload = { "aws:channel-arn": privateChannelArn, "aws:access-control-allow-origin": "*", "exp": Date.now() + (60 * 1000), // expires in 1 minute }; const token = jwt.sign(payload, privateChannelPrivateKey, { algorithm: 'ES384' }); return token; } हमारे फ्रंटएंड में, हम बैकएंड से टोकन को पुनः प्राप्त कर सकते हैं और इसे निजी चैनल के में जोड़ सकते हैं। नीचे दिए गए उदाहरण में, मैंने संक्षिप्तता के लिए प्लेबैक यूआरएल ( ) को छोटा कर दिया है। प्लेबैक यूआरएल streamUrl const streamUrl = `https://[truncated].m3u8?token=${token}` const ivsPlayer = IVSPlayer.create(); ivsPlayer.attachHTMLVideoElement(document.getElementById('video-player')); ivsPlayer.load(streamUrl); ivsPlayer.play(); सारांश इस पोस्ट में हमने निजी चैनल बनाने, प्लेबैक कीपेयर बनाने और आयात करने और प्लेबैक प्राधिकरण के लिए JWT टोकन बनाने का तरीका सीखा। निजी चैनलों के बारे में अधिक जानने के लिए, देखें। उपयोगकर्ता मार्गदर्शिका