हस्ताक्षर कुंजियों का रोटेशन और कुंजी प्रबंधन
जानें कि JWT हस्ताक्षर कुंजियों का सुरक्षित रूप से रोटेशन क्यों और कैसे किया जाता है। इसके लिए key ID (kid), JWK सेट और ओवरलैपिंग वैधता का उपयोग करके सेवा-व्यवधान से बचें।
हस्ताक्षर कुंजियों का रोटेशन और कुंजी प्रबंधन, CoddyKit पर Spring Security 6 और JWT प्रमाणीकरण का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Spring Security 6 और JWT प्रमाणीकरण सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Spring Security 6 और JWT प्रमाणीकरण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
कुंजियाँ क्यों बदलें?
हस्ताक्षर करने वाली कुंजी वह गुप्त जानकारी है जो साबित करती है कि JWT असली है। यदि यह लीक हो जाए, तो हमलावर नकली टोकन बना सकता है। कुंजी बदलना समय-समय पर कुंजियों को बदलता है, ताकि प्रभावित कुंजी की उपयोग-अवधि सीमित रहे।
कुंजी बदलने की चुनौती
आप केवल कुंजी बदल नहीं सकते: पुरानी कुंजी से हस्ताक्षरित टोकन समाप्त होने तक मान्य रहते हैं। संक्रमण अवधि के दौरान सर्वर को पुरानी और नई दोनों कुंजियों को एक साथ स्वीकार करना चाहिए।
kid हेडर
JWT हेडर में kid (कुंजी ID) हो सकता है। यह सत्यापनकर्ता को बताता है कि इस टोकन पर किस कुंजी से हस्ताक्षर किए गए हैं, ताकि सर्वर कई कुंजियों में से सही कुंजी खोज सके।
{
'alg': 'RS256',
'typ': 'JWT',
'kid': 'key-2024-06'
}kid के साथ हस्ताक्षर करना
टोकन बनाते समय वर्तमान कुंजी की ID हेडर में लिखें, ताकि सत्यापनकर्ता बाद में संबंधित सार्वजनिक कुंजी खोज सकें।
const token = sign(payload, privateKey, {
algorithm: 'RS256',
keyid: 'key-2024-06'
});कुंजियों का मानचित्र रखना
सर्वर kid से कुंजी का एक मानचित्र रखता है। कुंजी बदलने के दौरान इसमें हटाई जा रही कुंजी और नई कुंजी दोनों होती हैं।
const keys = {
'key-2024-06': newPublicKey,
'key-2024-03': oldPublicKey
};kid के आधार पर सत्यापन
सत्यापन के समय हेडर से kid पढ़ें, कुंजी चुनें और फिर उसी के विरुद्ध हस्ताक्षर का सत्यापन करें।
const header = decodeHeader(token);
const key = keys[header.kid];
const claims = verify(token, key, { algorithms: ['RS256'] });JWK और JWKS
JWK (JSON Web Key) JSON रूप में एक सार्वजनिक कुंजी है। JWKS (JWK Set) ऐसी कुंजियों की सूची है, जिसे आमतौर पर एक प्रसिद्ध URL पर उपलब्ध कराया जाता है, ताकि संसाधन सर्वर वर्तमान सार्वजनिक कुंजियाँ अपने-आप प्राप्त कर सकें।
{
'keys': [
{ 'kid': 'key-2024-06', 'kty': 'RSA', 'n': '...', 'e': 'AQAB' }
]
}JWKS से Spring Security JwtDecoder
Spring संसाधन सर्वर सीधे JWKS एंडपॉइंट से डिकोडर बना सकता है, इसलिए कुंजी बदलने के लिए क्लाइंट को फिर से परिनियोजित करने की आवश्यकता नहीं होती।
JwtDecoder decoder = NimbusJwtDecoder
.withJwkSetUri('https://auth.example.com/.well-known/jwks.json')
.build();कुंजी बदलने की समय-रेखा
सुरक्षित कुंजी-परिवर्तन इन चरणों का पालन करता है:
- JWKS में नई कुंजी प्रकाशित करें, लेकिन पुरानी कुंजी से हस्ताक्षर करते रहें
- हस्ताक्षर करना नई कुंजी पर बदलें
- सभी पुराने टोकन समाप्त होने तक प्रतीक्षा करें
- पुरानी कुंजी हटा दें
असममित बनाम सममित
असममित कुंजियों (RS256/ES256) के साथ कुंजी बदलना आसान होता है: निजी कुंजी को गुप्त रखते हुए आप JWKS के माध्यम से सार्वजनिक कुंजियाँ स्वतंत्र रूप से साझा कर सकते हैं। सममित (HS256) कुंजियों के लिए साझा गुप्त जानकारी हर सत्यापनकर्ता तक पहुँचानी पड़ती है।
निजी कुंजियों को सुरक्षित रखना
हस्ताक्षर करने वाली कुंजियों को कभी भी स्रोत नियंत्रण में जमा न करें। उन्हें किसी गुप्त-सूचना प्रबंधक (Vault, AWS Secrets Manager, KMS) में रखें और चलते समय लोड करें। यह सीमित करें कि कौन और क्या उन्हें पढ़ सकता है।
त्वरित जाँच
कुंजी बदलने की अपनी समझ जाँचें।
पुनरावलोकन
आपने JWT हस्ताक्षर-कुंजियों को सुरक्षित रूप से बदलना सीखा:
- कुंजी बदलना लीक हुई कुंजी से होने वाले नुकसान को सीमित करता है
- कई कुंजियों को साथ रखने के लिए
kidहेडर का उपयोग करें - JWKS एंडपॉइंट के माध्यम से सार्वजनिक कुंजियाँ प्रकाशित करें
- चरणों में कुंजियाँ बदलें और निजी कुंजियों को गुप्त-सूचना प्रबंधक में रखें
असममित कुंजियाँ और JWKS मिलकर कुंजी-परिवर्तन को सहज और बिना रुकावट वाला बनाते हैं।
एआई शिक्षक के साथ Java सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “हस्ताक्षर कुंजियों का रोटेशन और कुंजी प्रबंधन” पाठ निःशुल्क है?
हाँ — Spring Security 6 और JWT प्रमाणीकरण अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “हस्ताक्षर कुंजियों का रोटेशन और कुंजी प्रबंधन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Spring Security 6 और JWT प्रमाणीकरण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“हस्ताक्षर कुंजियों का रोटेशन और कुंजी प्रबंधन” में मैं क्या सीखूँगा?
जानें कि JWT हस्ताक्षर कुंजियों का सुरक्षित रूप से रोटेशन क्यों और कैसे किया जाता है। इसके लिए key ID (kid), JWK सेट और ओवरलैपिंग वैधता का उपयोग करके सेवा-व्यवधान से बचें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Spring Security 6 और JWT प्रमाणीकरण का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Spring Security 6 और JWT प्रमाणीकरण शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Spring Security 6 और JWT प्रमाणीकरण शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“हस्ताक्षर कुंजियों का रोटेशन और कुंजी प्रबंधन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Spring Security 6 और JWT प्रमाणीकरण पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Spring Security 6 और JWT प्रमाणीकरण पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- रिफ़्रेश टोकन लागू करना
- JWT टोकन निरस्तीकरण रणनीतियाँ
- सुरक्षित टोकन संग्रहण के तरीके
- हस्ताक्षर कुंजियों का रोटेशन और कुंजी प्रबंधन