riper/security-active_directory
Laravel package for Active Directory security integration: authenticate users over LDAP, look up AD accounts, and map directory groups to application roles and permissions. Helps simplify enterprise login, access control, and SSO-style workflows with configurable connection settings.
Architecture fit. This remains a Symfony security bundle for Active Directory authentication, not a Laravel package. v2.0.0 does not change that: it raises the floor to Symfony 2.6 and swaps the deprecated Security context for the token_storage service. That is a modernization step within the Symfony 2.x era, not a step toward modern Symfony (5/6/7) or Laravel. Fit is acceptable only for a legacy Symfony 2.6–2.8 application already using the Symfony Security component and needing simple AD bind authentication. For a modern Symfony app, a Laravel app, or framework-agnostic PHP, architectural fit remains poor. Ecosystem validation is still thin (16 stars, 0 dependents), and a v2 major on a low-adoption package is a weak signal of active stewardship.
Integration feasibility. The BC break matters more than the feature change. The move from the Security context to token_storage means the bundle's service wiring and any custom authentication provider/factory now resolve a different dependency graph; existing 1.x integrations cannot be upgraded in place without configuration and code changes. The Symfony >=2.6 constraint also excludes 2.1–2.5, narrowing the already small set of legacy versions where it installs cleanly, and it does not declare support for Symfony 3.x/4.x, so installation on anything newer is unsupported even if it happens to work. Feasible paths remain: use as a reference implementation, fork and modernize for a legacy 2.6–2.8 app, or replace with a maintained LDAP/AD component. For Laravel, do not integrate this package; evaluate LdapRecord-Laravel or php-ldap instead.
Technical risk. High, and the release does not materially reduce it. Authentication is a security-critical path, and there is still no evidence of a maintained security-patch cadence, test suite, or CI. The BC break introduces its own risk: a major version bump with a service-wiring change on a package with near-zero field usage means the upgrade path is largely untested by anyone but the author. Risks persist around PHP 8 behavior, deprecated Symfony 2.x APIs, weak TLS/AD defaults, credential handling, and absent observability. AD environment risks are unchanged: domain controller discovery, LDAP vs LDAPS, referral chasing, nested groups, Kerberos/SSO, and account lockout semantics. The token_storage change is a positive signal on direction but carries regression risk in exactly the code path (token/session handling) where mistakes are hardest to detect.
Key questions. What is the actual target stack and version: Symfony 2.6–2.8, Symfony 3+/4+, Laravel, or plain PHP? If a 1.x integration exists, what is the cost and risk of the token_storage migration, and is it worth it versus replacing the package? Is the requirement simple AD credential validation, or full LDAP directory features and SSO? Are we willing to own a fork and security patching? What PHP/Symfony support window and compliance requirements apply? Can we use a maintained alternative such as the Symfony LDAP component, LdapRecord, Adldap2, or FreeDSx LDAP? What is the exit and rollback plan if AD authentication fails in production?
Stack fit. If the product is Laravel, this is a non-fit; choose a Laravel-native LDAP/AD package. If the product is legacy Symfony 2.6–2.8, v2.0.0 is the version to evaluate, but assume a fork and pinned dependencies. If the product is Symfony 3+ or modern Symfony, prefer Symfony's LDAP component or a maintained bundle; treat this package as a pattern source, not a dependency. The token_storage rework is worth reading as a reference for how to wire an AD provider into the security firewall, but not worth adopting as a runtime dependency outside the narrow legacy case.
Migration path. Do not make it a greenfield dependency. Recommended path: inventory current authentication flows; confirm whether any existing integration is on 1.x and therefore exposed to the BC break; prototype AD bind in a sandbox on the exact target Symfony version; if the legacy app must use it, fork the repository, tighten Composer constraints, re-verify the new token_storage wiring, add tests for bind success/failure/timeouts and for token/session lifecycle, and wrap it behind an internal auth adapter so it can be swapped later. Otherwise, migrate directly to a maintained LDAP/AD library and use this bundle only to understand configuration keys and flow.
Compatibility. Verify PHP version, Symfony Security interfaces against the 2.6 baseline, the token_storage service contract, LDAP extension availability, TLS/CA trust, and AD schema assumptions. Confirm that the framework version in the target app actually satisfies >=2.4 era constraints (the bundle now requires >=2.6) and that no other dependency pins an older Security component. Also confirm whether it supports LDAPS, custom ports, base DN, user filters, group mapping, and timeout configuration. For Laravel, compatibility remains effectively zero without a rewrite.
Sequencing. 1) Confirm stack and AD requirements. 2) Determine whether the v2.0.0 BC break affects any existing integration. 3) Run a one-to-two-day compatibility spike in a disposable branch against Symfony 2.6–2.8. 4) Perform security review and threat modeling, with specific attention to the new token storage path. 5) Decide: fork/modernize, replace, or defer. 6) If proceeding, build an adapter and integration tests against a test AD. 7) Pilot with a small user cohort. 8) Roll out with fallback local auth and monitoring. 9) Schedule deprecation or replacement.
Maintenance. The package remains effectively abandoned in practical terms: low adoption, 0 dependents, and a single major-version change rather than sustained maintenance activity. Owning it means owning PHP/Symfony upgrades, security patches, AD protocol edge cases, and documentation. The v2.0.0 BC break also means any internal fork must now track two lineages or commit to the new token_storage design. Budget ongoing maintenance or plan to replace it; do not treat it as "set and forget."
Support. Community support is minimal. There is no vendor SLA, and issue response is unlikely. Internal runbooks and an escalation path to the identity/AD team are required. A BC-breaking release with no visible migration guide or changelog detail beyond two lines is itself a support burden: expect to derive the upgrade steps from source. For a security-critical authentication path, lack of support remains a material operational risk.
Scaling. AD authentication adds network latency and a dependency on domain controllers. Per-request binds can be expensive; use connection reuse/pooling or session caching where appropriate. The token_storage change touches session/token handling, so validate behavior under load and across multiple app servers before scaling out. At scale, monitor bind latency, domain controller failover, and lockout storms. The package is unlikely to provide observability; instrument the adapter.
Failure modes. AD outage or network partition blocks login; TLS misconfiguration causes silent authentication failures; wrong base DN or filter denies valid users; account lockout policies can be triggered by retries; timeouts can hang requests; credential-handling bugs can expose secrets in logs. The new token storage path adds a specific failure mode: incorrect service wiring or session/token state divergence producing authenticated-but-unauthorized or stale-identity behavior that is hard to reproduce. Design fail-closed for authentication, fail-open only for explicitly safe paths, and include health checks and circuit breakers.
Ramp-up. The team needs Symfony Security component knowledge and AD/LDAP fundamentals: bind, search, DN, groups, LDAPS, and Kerberos. The token_storage change requires familiarity with Symfony's token storage and firewall internals, which raises the bar slightly for anyone debugging the fork. Expect one to two weeks for a competent PHP engineer to safely evaluate and harden a fork; less if replacing with a maintained library. Document the decision early to avoid sunk-cost integration.
How can I help you explore Laravel packages today?