Interlock Technical Overview
Glossary
- Samba LDAP: Lightweight Directory Access Protocol (Tested with Samba LDAP)
- Microsoft ADDS: Active Directory Domain Services (Tested with WS2022)
Overview
Interlock is an Open-Source SSO Identity Provider that may also serve as an LDAP/ADDS Directory Management Tool, allowing for User, Groups, OU, and DNS CRUD operations.
See below the full contributor list.
This tool consists of a Front-end and a Back-end that allow for a responsive and intuitive way to administrate SSO Applications, Local and LDAP/ADDS Servers from anywhere through a Web GUI.
It also allows for End-user Self-management (Password and Detail changes) and administration logging.
To learn more feel free to check out the other sub-sections within the Interlock Documentation.
Dependencies Used
- python3 (>= 3.11),
- python3-venv,
- python3-pip (>= 23.0.1),
- postgresql (>= 14),
- curl (>= 7),
- nginx (>= 1.18),
- openssl,
- lsb-release,
- sudo
Development Only
- yarn (Yarn Package Repo)
- nodejs (Node Source Distributions)
Interlock Front-end Overview
The front-end is made in VueJS and Vuetify, a Java-script Framework and UI Library respectively.
It’s structure is designed with simplicity and modularity in mind to be able to easily add whatever new functionalities we might be require in the future.
Interlock Back-end Overview
The back-end was created with Python and DRF (Django Rest Framework), and is essentially the workhorse that communicates with the LDAP Server or Servers (if a server pool is used).
It uses SSL (unless explicitly disabled) and JWT Authentication to communicate with the Front-end securely.
It’s where all the magic happens: bytes, structures, and weird encoded stuff gets converted into readable data, and it’s been some tough stuff to work with as LDAP saves stuff like DNS Records and Permissions in a very cryptic, low-level way.
Full Contributor List
- Javier Blanqué
- Site: https://javier.blanque.com.ar/
- Credited for Assistance with Samba Binary Permission Parsing.
- Martin Vilche
- Site: https://martinvsolutions.com/
- Credited for Calls Module and Constructors in Interlock Front-end.
- Credited for Notification Bus: Assistance with Implementation.
- Other Minor Fixes and Assistance.
- Brian Blanqué
- Site: https://brian.blanque.com.ar/
- Credited Assistance with initial pytest construction and recommendations.
- etianen
- Credited for creating the Django-python3-ldap module.
- Site: django-python3-ldap (Github)
- dirkjanm
- Credited for his amazing krbrelayx repo and scripts.
- Initial analysis by his repository saved a lot of researching time.
- Repo Link: krbrelayx (Github)
- Juan Ignacio Fiorentino
- Credited for his “django-oidc-provider” python library.
- Repo Link: Django OpenID Connect Provider