
KcMapper Keycloak के लिए एक सुरक्षा ऑडिटिंग टूल है। यह आपके Keycloak कॉन्फ़िगरेशन (realms, clients, users, roles, आदि) को Neo4j ग्राफ डेटाबेस में निर्यात करता है। यह प्रतिनिधित्व पूर्व-परिभाषित क्वेरीज़ के साथ एक अंतर्निहित इंटरैक्टिव वेब UI के माध्यम से जटिल संबंध विश्लेषण और सुरक्षा ऑडिटिंग को सक्षम बनाता है।
KcMapper एक टूल है जो Keycloak कॉन्फ़िगरेशन डेटा को Neo4j ग्राफ़ डेटाबेस में निर्यात करता है। यह प्रस्तुति realms, clients, users, groups और roles के बीच संबंधों के विश्लेषण की अनुमति देती है। टूल में विश्लेषण और सुरक्षा ऑडिटिंग के लिए पूर्व-निर्धारित Cypher क्वेरी चलाने हेतु एक वेब इंटरफ़ेस शामिल है।
webapp/queries.json फ़ाइल को संशोधित करके कस्टम विश्लेषण क्वेरी जोड़ी जा सकती हैं।यह मार्गदर्शिका KcMapper की स्थानीय इंस्टॉलेशन को कवर करती है। इस विधि के लिए आपको अपनी मशीन पर Python और Neo4j इंस्टॉल करना आवश्यक है।
आप इन चरणों का पालन करके Neo4j Community Edition इंस्टॉल कर सकते हैं:
# Add the Neo4j GPG key
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
# Add the Neo4j repository
echo 'deb https://debian.neo4j.com stable 5' | sudo tee /etc/apt/sources.list.d/neo4j.list
# Update packages and install Neo4j
sudo apt-get update
sudo apt-get install neo4j -y
# Start the Neo4j service
sudo systemctl start neo4j
इंस्टॉलेशन के बाद, अपने ब्राउज़र में http://localhost:7474 पर जाएँ और प्रारंभिक पासवर्ड सेट करें (डिफ़ॉल्ट neo4j/neo4j है)।
अन्य सिस्टम (Windows, macOS, आदि) के लिए:
रिपॉज़िटरी क्लोन करें
git clone https://github.com/synacktiv/kcmapper.git
cd kcmapper
Python वर्चुअल वातावरण सेट करें (अनुशंसित)
python -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
निर्भरताएँ इंस्टॉल करें
pip install -r requirements.txt
पर्यावरण चर कॉन्फ़िगर करें
.env.example फ़ाइल को .env में कॉपी करें।
cp .env.example .env
अपने Keycloak इंस्टेंस और अपने स्थानीय Neo4j डेटाबेस की ओर इंगित करने के लिए .env फ़ाइल को संशोधित करें।
# --- Keycloak Connection ---
KEYCLOAK_URL=http://your-keycloak-server:8080/
KEYCLOAK_USER=admin
KEYCLOAK_PASSWORD=your_keycloak_admin_password
# Optional - for confidential clients
KEYCLOAK_CLIENT_SECRET=
# Optional - for users with 2FA enabled
KEYCLOAK_TOTP=
# Optional - for mTLS authentication
KEYCLOAK_CERT_PATH=
# --- Neo4j Connection (for local environment) ---
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your_local_neo4j_password
डेटा निर्यात करें
अपने Neo4j डेटाबेस को भरने के लिए export कमांड चलाएँ।
python kcmapper_cli.py export
--clean विकल्प का उपयोग करें:
python kcmapper_cli.py export --clean
डेटा का विश्लेषण करें निर्यात पूरा हो जाने पर, वेब विश्लेषण इंटरफ़ेस लॉन्च करें।
python kcmapper_cli.py analyze
kcmapper_cli.py: मुख्य कमांड-लाइन प्रवेश बिंदु।/processors: प्रत्येक Keycloak ऑब्जेक्ट प्रकार के लिए निष्कर्षण और लोडिंग तर्क शामिल करता है।/utils: उपयोगिता फ़ंक्शन, मुख्य रूप से Neo4j कनेक्शन और डेटा सफाई के लिए।/webapp: डेटा विश्लेषण के लिए Flask वेब एप्लिकेशन शामिल करता है।योगदान का स्वागत है। बग रिपोर्ट करने या नई सुविधा सुझाने के लिए स्वतंत्र रूप से एक issue खोलें। नई विश्लेषण क्वेरी जोड़ने के लिए, webapp/queries.json फ़ाइल को संशोधित करें और एक pull request सबमिट करें।
यह प्रोजेक्ट MIT लाइसेंस के तहत लाइसेंस प्राप्त है। विवरण के लिए LICENSE फ़ाइल देखें।