कॉर्पोरेट RAG वेक्टर सर्च पर सीधे Okta अनुमति फ़िल्टर लागू करने का तरीका
कॉर्पोरेट विकी दस्तावेजों को एम्बेड करके एक कॉर्पोरेट AI सहायक स्थापित करना आधा दिन में हो जाता है। असली समस्या उसके बाद सोमवार की सुबह पैदा होती है। जब कोई इंटर्न डेवलपर AI चैट विंडो में पूछता है, "इस साल के कार्यकारी प्रदर्शन बोनस की गणना के मानदंड क्या हैं?", तो सिस्टम वित्त विभाग के गोपनीय दस्तावेजों को बड़े करीने से सारांशित करके दिखाना शुरू कर देता है।
कॉर्पोरेट ज्ञान आधार का निर्माण करने वाले 3-7 साल के अनुभव वाले प्लेटफॉर्म इंजीनियर इस समस्या को तुरंत भाप लेते हैं। अधिकांश RAG आर्किटेक्चर दस्तावेजों को विभाजित करते हैं और उन्हें एम्बेडिंग वेक्टर में बदलते हैं, और मूल दस्तावेज की अनुमति प्रणाली को पूरी तरह से हटा देते हैं। ऐसा इसलिए होता है क्योंकि Okta या Azure AD में बंधी एक्सेस कंट्रोल पॉलिसी वेक्टर DB के भीतर पूरी तरह से गायब हो जाती हैं। यदि इस अनुमति अंतराल को एप्लिकेशन कोड स्तर पर नहीं बल्कि इंफ्रास्ट्रक्चर पाइपलाइन स्तर पर बंद नहीं किया जाता है, तो निजी ज्ञान आधार वास्तव में एक आंतरिक सूचना रिसाव चैनल बन जाता है।
वेक्टर DB मेटाडेटा में IdP ग्रुप क्लेम को सिंक करना
कॉर्पोरेट प्रमाणीकरण प्रणाली और वेक्टर स्टोरेज के बीच अनुमति असंगति को वास्तविक समय की पूछताछ के बजाय एक आवधिक मेटाडेटा सिंकिंग पाइपलाइन के माध्यम से हल किया जाना चाहिए। हर बार जब कोई क्वेरी आती है, तो कॉर्पोरेट IdP API को कॉल करके अनुमति पूछने वाला तरीका खोज विलंबता को 200 मिलीसेकंड से अधिक बढ़ा देता है और जल्दी ही IdP की प्रति सेकंड कॉल सीमा (Rate Limit) को भर देता है।
आपको दस्तावेजों के स्वामित्व वाले समूहों की सूची को हर घंटे वेक्टर रिकॉर्ड के मेटाडेटा सरणी फ़ील्ड में अपडेट करने के लिए Airflow या Celery का उपयोग करके एक बैच चलाना चाहिए। Qdrant का उदाहरण लेते हुए, प्रत्येक खंड पेलोड में एक allowed_groups फ़ील्ड रखें, और इसमें सीधे Okta समूह ID डालें।
json { "chunk_id": "doc_9281_chunk_04", "text": "2026 की दूसरी छमाही के लिए सर्वर बुनियादी ढांचा संक्रमण बजट योजना...", "allowed_groups": ["group_devops_lead", "group_finance_managers"] }
जब दस्तावेज़ की अनुमति बदलती है, तो मूल दस्तावेज़ के परिवर्तन इवेंट का पता लगाया जाता है और केवल वेक्टर DB के मेटाडेटा को स्वतंत्र रूप से अपडेट किया जाता है। चूंकि संपूर्ण एम्बेडिंग की दोबारा गणना करने की आवश्यकता नहीं है, इसलिए कोई गणना लागत उत्पन्न नहीं होती है। जब उपयोगकर्ता कोई प्रश्न पूछता है, तो JWT से निकाले गए groups क्लेम को खोज फ़िल्टर पैरामीटर के रूप में जबरन डाला जाता है। यदि Open Policy Agent (OPA) साइडकार को वेक्टर DB के सामने रखा जाता है, तो जब क्लाइंट द्वारा प्रेषित क्वेरी से उपयोगकर्ता के अधिकृत समूह फ़िल्टर गायब होते हैं, तो अनुरोध को सीधे HTTP 403 के साथ अस्वीकार किया जा सकता है। 2024 में सैन फ्रांसिस्को के सुरक्षा अनुसंधान समूह Bishop Fox द्वारा जारी RAG अनुमति ऑडिट रिपोर्ट के अनुसार, कॉर्पोरेट LLM पैठ परीक्षण दुर्घटनाओं का 78% मेटाडेटा फ़िल्टर की कमी के कारण हुआ था। बुनियादी ढांचे के प्रवेश द्वार पर फ़िल्टर को अनिवार्य करके, आप मैन्युअल अनुमति जाँच पर खर्च होने वाले प्रति सप्ताह 8 घंटे से अधिक के कार्य प्रयास को बचा सकते हैं।
CODEOWNERS पर आधारित ज्ञान अनुमोदन पाइपलाइन का कॉन्फ़िगरेशन
यदि AI सहायक को कॉर्पोरेट दस्तावेजों को स्वचालित रूप से सारांशित करने या संदर्भ को अपडेट करने की अनुमति दी जाती है, तो अनुमोदन कतार जल्दी ही जाम हो जाती है। यदि सुरक्षा समीक्षा अनुरोध ईमेल इनबॉक्स या बैकलॉग टिकट में जाता है, तो पुष्टि में औसतन 72 घंटे लगते हैं। यदि इस देरी को अनियंत्रित छोड़ दिया जाता है, तो इंजीनियरों को यह देखने को मिलेगा कि उनका कॉर्पोरेट सहायक महीनों पुराने लेगोसी API विनिर्देशों के जवाब दे रहा है।
ज्ञान अनुमोदन को कॉर्पोरेट कोड समीक्षा प्रणाली के समान गिट रिपॉजिटरी के PR (पुल अनुरोध) के रूप में माना जाना चाहिए। जब AI एजेंट किसी नए ज्ञान परिवर्तन का प्रस्ताव करता है, तो उसे Markdown फ़ाइल के रूप में एक शाखा बनाने और PR उत्पन्न करने के लिए बनाया जाना चाहिए।
यह रिपॉजिटरी रूट से CODEOWNERS फ़ाइल को पढ़ता है और बदले गए दस्तावेज़ पथ की ज़िम्मेदार इंजीनियरिंग टीम को स्वचालित रूप से निर्दिष्ट करता है।
`
CODEOWNERS
/docs/architecture/payment/ @team-fintech-core
/docs/infrastructure/k8s/ @team-platform-infra
/docs/security/auth/ @team-infosec
`
एजेंट द्वारा उत्पन्न PR वेबहुक को ज़िम्मेदार टीम के स्लैक-समर्पित चैनल से जोड़ा जाता है, जिससे परिवर्तन से पहले और बाद का अंतर (diff) और अनुमोदन बटन एक साथ दिखाई देते हैं। जब कोई टीम का सदस्य स्लैक में अनुमोदन बटन दबाता है, तो GitHub API काम करता है और शाखा को मर्ज करता है, और तुरंत तैनाती पाइपलाइन काम करती है और केवल संबंधित दस्तावेज़ खंड को वेक्टर DB में फिर से एम्बेड करती है। यदि ज्ञान आधार संशोधन प्रवाह को सामान्य विकास चक्र के साथ संरेखित किया जाता है, तो अनुमोदन बाधा समय को 4 घंटे से कम किया जा सकता है।
एम्बेडिंग से पहले के चरण में रहस्यों और व्यक्तिगत जानकारी को फ़िल्टर करना
इन्फ्रास्ट्रक्चर दस्तावेजों को एकत्र करते समय, AWS एक्सेस कुंजियाँ या स्टेजिंग DB कनेक्शन स्ट्रिंग्स जो इंजीनियरों ने कॉन्फ़िगरेशन उदाहरणों के रूप में गलती से छोड़ दी हैं, वे भी एकत्र हो जाती हैं। यदि इन्हें वैसे ही एम्बेडिंग मॉडल में भेज दिया जाता है, तो कॉर्पोरेट क्रेडेंशियल बाहरी SaaS LLM प्रदाता के कैश लॉग में रह जाते हैं, और यह प्रॉम्प्ट इंजेक्शन हमलों के सामने पूरी तरह से उजागर हो जाते हैं जो संवर्धित खोज संदर्भ को हाइप करते हैं। 2023 में साइबर सुरक्षा अनुसंधान संस्थान Wiz के क्लाउड डेटा लीक विश्लेषण सर्वेक्षण में, उद्यम वातावरण के भीतर आंतरिक दस्तावेजों के लगभग 12% में वैध क्रेडेंशियल स्ट्रिंग्स पाई गईं।
एम्बेडिंग पाइपलाइन के पहले प्रवेश द्वार पर एक उच्च-गति नियमित अभिव्यक्ति (Regex) आधारित मास्किंग प्रॉक्सी मिडलवेयर को निश्चित रूप से तैनात किया जाना चाहिए। पायथन के tiktoken या चंकिंग स्क्रिप्ट को पाठ पास करने से पहले इसे रस्ट-आधारित प्रॉक्सी कंटेनर के माध्यम से पारित करने की संरचना स्थिर है।
`python
import re
PATTERNS = {
"AWS_KEY": r"(?<![A-Z0-9])[A-Z0-9]{20}(?![A-Z0-9])",
"BEARER_TOKEN": r"Bearer\s+[a-zA-Z0-9_-.=]+",
"SLACK_TOKEN": r"xox[baprs]-[0-9]{10,13}-[0-9]{10,13}-[a-zA-Z0-9]{24,32}",
"GENERIC_SECRET": r'(?i)(password|secret|api_key|access_token)\s*[:=]\s*["']?([^"'\s]+)["']?'
}
def scrub_sensitive_data(text: str) -> str:
cleaned = text
for name, pattern in PATTERNS.items():
cleaned = re.sub(pattern, f"[REDACTED_{name}]", cleaned)
return cleaned
`
यदि इस फ़िल्टरिंग को एम्बेडिंग मॉडल के सामने मजबूती से रखा जाता है, भले ही कोई इन्फ्रास्ट्रक्चर इंजीनियर मूल विकी पर गलती से लाइव सर्वर टोकन लिख दे, तो वेक्टर DB और भाषा मॉडल संदर्भ में केवल [REDACTED_SECRET] स्ट्रिंग ही दर्ज होगी। क्रेडेंशियल लीक के खतरे को बुनियादी ढांचा स्तर पर रोकने के लिए इस स्थिति को बनाए रखना आवश्यक है कि केवल अनुमत उपयोगकर्ता ही मूल GitHub रिपॉजिटरी या वॉल्ट तक सीधे पहुँचकर रहस्यों को देख सकें।