diff --git a/README.md b/README.md index cacecfa63d296cc611199a293cc8fde995492eb0..00d3a1cac4e6386e4e7546bd8efb40cf568d1f61 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,38 @@ # Keycloak SAML2 metadata feed importer -config +# requirements +Python3.10+ +(optional) an external database, to keep track of the syncs, if there is no external DB, sqlite has to be selected +## use +install the required Python packages +```bash +pip install -r requirements.txt +``` +prepare the configuration as mentioned below + +run the sync script with +```bash +./main.py +``` + +## configuration +### Environment variables - SAML2_METADATA_URL (e.g. https://eduid.at/md/aconet-registered.xml) - KEYCLOAK_URL (url to Keycloak instance) - KEYCLOAK_REALM (Keycloak realm) - KEYCLOAK_USER (Keycloak user) - KEYCLOAK_PASSWORD (Keycloak users password) - DB_TYPE (postresql, mysql or sqlite) + +for external datbases - DB_USER (database user) - DB_PASSWORD (database password) - DB_HOST (dbms host) - DB_PORT (dbms port) - - DB_DATABASE (database ) \ No newline at end of file + - DB_DATABASE (database ) + +### mappings +edit ./attribute_mapping.json, key is the SAML2 attribute, value is the keycloak user attribute + +### blacklist IDPs and or SPs +edit blacklist.json , for SPs list the clientId for IDPs the entityIds \ No newline at end of file diff --git a/main.py b/main.py index d573559929aa26dc2974ed1780e9bf5cefc11127..4ecb3ec886c6618dac0956989565ab5c8d3cc76b 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,9 @@ -import hashlib +#!/usr/bin/env python3 +# import hashlib import json import os import sqlite3 from datetime import datetime -from pprint import pprint import database