यूज़र पूल, आइडेंटिटी पूल, और JWTs

डेवलपर्स के लिए AWS Security का उपयोग

Rahul Singh

Technical Product Manager

Cognito: एक नाम, दो सर्विसेज

Amazon Cognito

  • आपके एप्लिकेशन के यूज़र्स के लिए managed identity
  • एक नाम, दो अलग सर्विसेज

डैश्ड बॉर्डर "Amazon Cognito" के ऊपर दो प्रश्न. बॉर्डर के भीतर साथ-साथ दो नीले पैनल: एक यूज़र पूल, "your user directory"; दूसरा आइडेंटिटी पूल, "a credential broker". दोनों से रेखाएँ नीचे डैश्ड नारंगी बॉक्स पर मिलती हैं, जो बताता है कि कई एप्लिकेशन दोनों का उपयोग करते हैं.

डेवलपर्स के लिए AWS Security का उपयोग

Cognito: एक नाम, दो सर्विसेज

Amazon Cognito

  • आपके एप्लिकेशन के यूज़र्स के लिए managed identity
  • एक नाम, दो अलग सर्विसेज

किसकी ज़रूरत है?

  • साइन-इन और यूज़र प्रोफ़ाइल: user pool
  • ब्राउज़र या मोबाइल से सीधे AWS कॉल: identity pool

डैश्ड बॉर्डर "Amazon Cognito" के ऊपर दो प्रश्न. बॉर्डर के भीतर साथ-साथ दो नीले पैनल: एक यूज़र पूल, "your user directory"; दूसरा आइडेंटिटी पूल, "a credential broker". दोनों से रेखाएँ नीचे डैश्ड नारंगी बॉक्स पर मिलती हैं, जो बताता है कि कई एप्लिकेशन दोनों का उपयोग करते हैं.

डेवलपर्स के लिए AWS Security का उपयोग

यूज़र पूल यूज़र्स को साइन-इन कराता है

एक managed यूज़र डायरेक्टरी

  • साइन-अप और साइन-इन
  • पासवर्ड रीसेट
  • मल्टी-फैक्टर ऑथेंटिकेशन

वर्टिकल फ़्लो: ऐप यूज़र एक यूज़र पूल में साइन-इन करता है जो पासवर्ड रखता है, और पूल एक बॉक्स लौटाता है जिसमें ID token, access token और refresh token हैं

डेवलपर्स के लिए AWS Security का उपयोग

यूज़र पूल यूज़र्स को साइन-इन कराता है

एक managed यूज़र डायरेक्टरी

  • साइन-अप और साइन-इन
  • पासवर्ड रीसेट
  • मल्टी-फैक्टर ऑथेंटिकेशन

 

सफल होने पर, तीन टोकन

वर्टिकल फ़्लो: ऐप यूज़र एक यूज़र पूल में साइन-इन करता है जो पासवर्ड रखता है, और पूल एक बॉक्स लौटाता है जिसमें ID token, access token और refresh token हैं

डेवलपर्स के लिए AWS Security का उपयोग

यूज़र पूल यूज़र्स को साइन-इन कराता है

एक managed यूज़र डायरेक्टरी

  • साइन-अप और साइन-इन
  • पासवर्ड रीसेट
  • मल्टी-फैक्टर ऑथेंटिकेशन

 

सफल होने पर, तीन टोकन

  • ID token: यूज़र कौन है
  • Access token: वे क्या कॉल कर सकते हैं
  • Refresh token: बाद में नए टोकन लें

वर्टिकल फ़्लो: ऐप यूज़र एक यूज़र पूल में साइन-इन करता है जो पासवर्ड रखता है, और पूल एक बॉक्स लौटाता है जिसमें ID token, access token और refresh token हैं

डेवलपर्स के लिए AWS Security का उपयोग

आइडेंटिटी पूल AWS credentials जारी करता है

टोकन credentials नहीं होते

  • आपके ऐप के लिए identity प्रूफ़
  • AWS सर्विसेज़ एक्सेस करने के credentials नहीं

 

Identity pools: trusted token इन, credentials आउट

यूज़र पूल डायग्राम जैसी ही वर्टिकल फ़्लो: एक trusted token आइडेंटिटी पूल को दिया जाता है, जो issuer जाँचता है और एक role-स्कोप्ड, expiring AWS credentials लौटाता है

डेवलपर्स के लिए AWS Security का उपयोग

आइडेंटिटी पूल AWS credentials जारी करता है

टोकन credentials नहीं होते

  • आपके ऐप के लिए identity प्रूफ़
  • AWS सर्विसेज़ एक्सेस करने के credentials नहीं

 

Identity pools: trusted token इन, credentials आउट

  • एक build job ने OIDC token एक्सचेंज किया
  • आपके पास प्रूफ़, बदले में keycard मिला

यूज़र पूल डायग्राम जैसी ही वर्टिकल फ़्लो: एक trusted token आइडेंटिटी पूल को दिया जाता है, जो issuer जाँचता है और एक role-स्कोप्ड, expiring AWS credentials लौटाता है

डेवलपर्स के लिए AWS Security का उपयोग

एक ऐप, दोनों हिस्से

ब्राउज़र में दोनों का उपयोग

  1. साइन-इन करें, एक token पाएँ
  2. वह token अपने API को भेजें

Bearer token: जिसके पास, वही उपयोग

वर्टिकल फ़्लो: ब्राउज़र यूज़र पूल पर साइन-इन करता है और एक token मिलता है. वही token दो दिशाओं में जाता है: बाएँ आपके API को और दाएँ आइडेंटिटी पूल को. आइडेंटिटी पूल credentials लौटाता है, और वही credentials S3 तक पहुँचते हैं.

डेवलपर्स के लिए AWS Security का उपयोग

एक ऐप, दोनों हिस्से

ब्राउज़र में दोनों का उपयोग

  1. साइन-इन करें, एक token पाएँ
  2. वह token अपने API को भेजें
  3. उसी token के बदले credentials लें

वर्टिकल फ़्लो: ब्राउज़र यूज़र पूल पर साइन-इन करता है और एक token मिलता है. वही token दो दिशाओं में जाता है: बाएँ आपके API को और दाएँ आइडेंटिटी पूल को. आइडेंटिटी पूल credentials लौटाता है, और वही credentials S3 तक पहुँचते हैं.

डेवलपर्स के लिए AWS Security का उपयोग

एक ऐप, दोनों हिस्से

ब्राउज़र में दोनों का उपयोग

  1. साइन-इन करें, एक token पाएँ
  2. वह token अपने API को भेजें
  3. उसी token के बदले credentials लें
  4. उन credentials से S3 तक पहुँचें

Tokens आपके कोड को, credentials AWS को

वर्टिकल फ़्लो: ब्राउज़र यूज़र पूल पर साइन-इन करता है और एक token मिलता है. वही token दो दिशाओं में जाता है: बाएँ आपके API को और दाएँ आइडेंटिटी पूल को. आइडेंटिटी पूल credentials लौटाता है, और वही credentials S3 तक पहुँचते हैं.

डेवलपर्स के लिए AWS Security का उपयोग

टोकन: सिग्नेचर सहित टेक्स्ट

तीन खंड डॉट्स से जुड़े, लेबल: Header, Payload, Signature. Payload पर खुला ताला, और पहले दो खंडों के नीचे ब्रैकेट दिखाता है कि हस्ताक्षर कहाँ तक लागू है.

JWT: JSON Web Token

  • Claims: यूज़र पर लेबल्ड स्टेटमेंट्स
डेवलपर्स के लिए AWS Security का उपयोग

टोकन: सिग्नेचर सहित टेक्स्ट

तीन खंड डॉट्स से जुड़े, लेबल: Header, Payload, Signature. Payload पर खुला ताला, और पहले दो खंडों के नीचे ब्रैकेट दिखाता है कि हस्ताक्षर कहाँ तक लागू है.

JWT: JSON Web Token

  • Claims: यूज़र पर लेबल्ड स्टेटमेंट्स
  • Encoded, encrypted नहीं
  • कोई भी इसे पढ़ सकता है और बदल भी सकता है
डेवलपर्स के लिए AWS Security का उपयोग

पढ़ने से पहले वेरिफ़ाई करें

पहले वेरिफ़िकेशन

  • JWKS: JSON Web Key Set, issuer की public signing keys
  • Signature उन्हीं keys से जाँची जाती है

एक वर्टिकल गेट डायग्राम. एक token आता है और क्रम से चार चेक पास करता है: signature, issuer, audience और expiry. Issuer की public keys साइड से signature चेक में जाती हैं. चौथे चेक के बाद ही पथ claims पढ़ने वाले हरे बॉक्स तक पहुँचता है.

डेवलपर्स के लिए AWS Security का उपयोग

पढ़ने से पहले वेरिफ़ाई करें

पहले वेरिफ़िकेशन

  • JWKS: JSON Web Key Set, issuer की public signing keys
  • Signature उन्हीं keys से जाँची जाती है

 

फिर तीन claims

  • iss: आपका user pool
  • ID token पर aud, access token पर client_id
  • exp: अभी वैध

एक वर्टिकल गेट डायग्राम. एक token आता है और क्रम से चार चेक पास करता है: signature, issuer, audience और expiry. Issuer की public keys साइड से signature चेक में जाती हैं. चौथे चेक के बाद ही पथ claims पढ़ने वाले हरे बॉक्स तक पहुँचता है.

डेवलपर्स के लिए AWS Security का उपयोग

वेरिफ़ाइड टोकन फिर भी गलत हो सकता है

साथ-साथ दो कार्ड. ID token कार्ड "identity token" के रूप में, audience claim में client ID दिखाता है, और बताता है कि इसमें scope नहीं है, ऊपर ग्रे बॉक्स: यूज़र कौन है. Access token कार्ड "access token" के रूप में, अपने client identifier claim में client ID दिखाता है, और बताता है कि इसमें scope है, ऊपर ऑरेंज बॉक्स: वे क्या कॉल कर सकते हैं. नीचे की डैश्ड पट्टी बताती है कि Cognito groups claim दोनों टोकन में आता है.

वेरिफ़ाइड, फिर भी गलत टोकन

डेवलपर्स के लिए AWS Security का उपयोग

वेरिफ़ाइड टोकन फिर भी गलत हो सकता है

साथ-साथ दो कार्ड. ID token कार्ड "identity token" के रूप में, audience claim में client ID दिखाता है, और बताता है कि इसमें scope नहीं है, ऊपर ग्रे बॉक्स: यूज़र कौन है. Access token कार्ड "access token" के रूप में, अपने client identifier claim में client ID दिखाता है, और बताता है कि इसमें scope है, ऊपर ऑरेंज बॉक्स: वे क्या कॉल कर सकते हैं. नीचे की डैश्ड पट्टी बताती है कि Cognito groups claim दोनों टोकन में आता है.

वेरिफ़ाइड, फिर भी गलत टोकन

token_use टोकन का प्रकार बताता है

  • cognito:groups दोनों में आता है, और यह scope नहीं है

  • scope: टोकन क्या कॉल कर सकता है

  • sub: कौन-सा यूज़र, और यह कभी नहीं बदलता
  • पहचान, अनुमति नहीं होती
डेवलपर्स के लिए AWS Security का उपयोग

अभ्यास करते हैं!

डेवलपर्स के लिए AWS Security का उपयोग

Preparing Video For Download...