{"id":17952125,"url":"https://github.com/thesuess/laada","last_synced_at":"2026-04-28T11:05:08.310Z","repository":{"id":93286266,"uuid":"471338029","full_name":"theSuess/laada","owner":"theSuess","description":"LDAP Azure Active Directory Authentication","archived":false,"fork":false,"pushed_at":"2022-04-09T10:03:41.000Z","size":274,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T16:23:51.028Z","etag":null,"topics":["active-directory","authentication","azure","azure-active-directory","ldap"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theSuess.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-18T11:15:07.000Z","updated_at":"2022-03-29T19:01:31.000Z","dependencies_parsed_at":"2023-04-24T14:55:23.507Z","dependency_job_id":null,"html_url":"https://github.com/theSuess/laada","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/theSuess/laada","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theSuess%2Flaada","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theSuess%2Flaada/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theSuess%2Flaada/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theSuess%2Flaada/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theSuess","download_url":"https://codeload.github.com/theSuess/laada/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theSuess%2Flaada/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32377599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T09:24:15.638Z","status":"ssl_error","status_checked_at":"2026-04-28T09:24:15.071Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["active-directory","authentication","azure","azure-active-directory","ldap"],"created_at":"2024-10-29T09:54:49.545Z","updated_at":"2026-04-28T11:05:08.293Z","avatar_url":"https://github.com/theSuess.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"Laada\n===\n[![Continuous integration](https://github.com/theSuess/laada/actions/workflows/ci.yml/badge.svg)](https://github.com/theSuess/laada/actions/workflows/ci.yml)\n\n_LDAP Azure Active Directory Authentication_\n\nLaada is a small service, allowing LDAP authentication with Azure Active\nDirectory as a backend. The primary use case is to allow authentication with\nAzure AD for services which do not implement OIDC or SAML.\n\nIt accomplishes this by verifying the LDAP bind password with a registered TOTP\n(either Hardware or software based).\n\nAfter a user has registerd for the first time using the web interface, the\ntarget flow looks like this:\n\n1. Application asks user for credentials\n2. User enters their email as username and TOTP token as password\n3. The application sends this to the Laada LDAP endpoint\n4. Laada verifies this bind with the TOTP backend\n5. The bind succeeds or fails based on the response\n\n\nLaada also exposes LDAP search capabilities (currently only supporting top-level\nequality filters), backed by the Microsoft Graph API\n\n\n# FAQ\n\n## Why not use Azure AD Domain Services?\n\nBecause it costs money and I don't want to spend it.\n\n## Why use Azure AD at all?\n\nBecause I like its features (Self-Service, External user management, Advanced\naccess policies) and it is free in the basic variant.\n\n## Why rust?\n\nBecause it was the first language with a usable LDAP server implementation that\nI found and I wanted to learn it for a long time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesuess%2Flaada","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthesuess%2Flaada","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesuess%2Flaada/lists"}