उपयोगकर्ता प्रतिरूपण
किसी भी उपयोगकर्ता से उसका पासवर्ड मांगे बिना समर्थन और डिबगिंग के लिए उसकी ओर से कार्य करें। 10 मिनट तक सीमित, सुरक्षा लॉग में कड़ाई से ऑडिट किया गया।
प्रतिरूपण क्या है?
उपयोगकर्ता प्रतिरूपण एक प्रशासक या सहायक इंजीनियर को एक अल्पकालिक वाहक टोकन उत्पन्न करने की अनुमति देता है जो एक विशिष्ट उपयोगकर्ता के रूप में कार्य करता है। यह ग्राहक बग को पुन: उत्पन्न करने, RLS नीति अनुमतियों की जांच करने, या क्रेडेंशियल का अनुरोध किए बिना डेटा समस्याओं का निवारण करने में सक्षम बनाता है।
Aurabase में प्रतिरूपण तीन मूलभूत सुरक्षा सिद्धांतों की गारंटी देता है:
- लघु जीवनकाल: प्रतिरूपण टोकन 1 से 600 सेकंड (अधिकतम 10 मिनट, डिफ़ॉल्ट 300 सेकंड) के बीच वैध होते हैं। उनमें कभी भी ताज़ा टोकन शामिल नहीं होता है।
- स्पष्ट अभिनेता एट्रिब्यूशन: जारी किए गए एक्सेस टोकन में मानक RFC 8693
actका दावा है जो दर्शाता है कि सत्र की शुरुआत किसने की। - जारी करने से पहले ऑडिट: टोकन उत्पन्न होने से पहले कार्रवाई को अभिनेता, कारण, अवधि और लक्ष्य उपयोगकर्ता के साथ
auth_audit_logमें रिकॉर्ड किया जाता है। यदि लॉग प्रविष्टि विफल हो जाती है, तो कोई टोकन जारी नहीं किया जाता है।
आरएफसी 8693 अधिनियम दावा संरचना
एक प्रतिरूपण टोकन परियोजना की सक्रिय ES256 कुंजी के साथ हस्ताक्षरित है और एक अतिरिक्त act (अभिनेता) ऑब्जेक्ट के साथ मानक उपयोगकर्ता एक्सेस टोकन प्रारूप के अनुरूप है:
sub: प्रतिरूपित किए जा रहे उपयोगकर्ता की पहचान। Postgres RLS (auth.uid()) इस मान का मूल्यांकन करता है।act.sub: टोकन जनरेट करने वाले ऑपरेटर की पहचान (जैसे कंसोल यूजर आईडी याservice_role)।
व्यवस्थापक समापनबिंदु
प्रतिरूपण के लिए service_role कुंजी या admin भूमिका वाले ऑपरेटर के माध्यम से व्यवस्थापक प्राधिकरण की आवश्यकता होती है।
निकाय से अनुरोध करें
| मैदान | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
reason | डोरी | वैकल्पिक | सुरक्षा लॉग में औचित्य दर्ज किया गया। विशेषाधिकार प्राप्त लक्ष्य खातों के लिए आवश्यक (admin/owner)। |
ttl_seconds | संख्या | वैकल्पिक | टोकन जीवनकाल सेकंड में (1 से 600, डिफ़ॉल्ट 300)। |
allow_privileged | बूलियन | वैकल्पिक | यदि लक्षित उपयोगकर्ता के पास admin या owner भूमिका है, तो उसे true पर सेट किया जाना चाहिए। |
प्रतिक्रिया (200 OK)
TypeScript एसडीके
service_role कुंजी के साथ कॉन्फ़िगर किए गए Aurabase क्लाइंट के साथ authAdmin.impersonate() का उपयोग करें:
विशेषाधिकार प्राप्त खाते और ऑडिट लॉग
विशेषाधिकार प्राप्त खातों की सुरक्षा करना
लक्ष्य खाते जिनमें प्रशासनिक भूमिकाएँ होती हैं (जैसे role = 'admin', role = 'owner', या app_metadata.roles जिनमें 'admin') उच्च-मूल्य वाले लक्ष्यों का प्रतिनिधित्व करते हैं। आकस्मिक विशेषाधिकार उन्नयन को रोकने के लिए:
- आपको स्पष्ट रूप से
allow_privileged: trueपास करना होगा। - एक गैर-रिक्त
reasonस्ट्रिंग प्रदान की जानी चाहिए। - यदि कोई भी चेक विफल हो जाता है, तो बैकएंड
403 Forbiddenके साथ अनुरोध को अस्वीकार कर देता है।
सुरक्षा ऑडिट लॉग
प्रत्येक प्रतिरूपण घटना को किरायेदार की auth_audit_log तालिका में डाला जाता है:
- क्रिया:
admin_impersonation - उपयोगकर्ता आईडी: लक्ष्य उपयोगकर्ता की आईडी
- मेटाडेटा: JSON ऑब्जेक्ट जिसमें
{ "actor": "...", "reason": "...", "ttl_seconds": 300, "privileged": false }है
यह ट्रेल स्टूडियो › प्रमाणीकरण › ऑडिट लॉग में दिखाई देता है और डेटाबेस ड्रेन के माध्यम से इसे SIEM टूल पर अग्रेषित किया जा सकता है।