Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Symfony Graph Authenticator Laravel Package

robert-kampas/symfony-graph-authenticator

Symfony Graph Authenticator adds a Symfony Security authenticator for Microsoft Graph, simplifying OAuth-based login and user profile retrieval for Azure AD and Microsoft 365 accounts in Symfony applications.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Enterprise SSO / "Sign in with Microsoft" onboarding: If your roadmap includes letting users authenticate against Microsoft Entra ID (formerly Azure AD) and then call Microsoft Graph (Outlook calendar, OneDrive, Teams, SharePoint) on their behalf, a Symfony authenticator bundle is the plumbing for that flow. Product value is in the outcome — reduced onboarding friction for Microsoft 365 shops, fewer password-reset tickets, access to Graph data for calendar/email-driven features.
  • Build vs. buy (or build vs. borrow): This is a borrow candidate, not a buy. The realistic decision is "wrap a small third-party bundle vs. write our own Symfony security authenticator + Graph client configuration." Because the package is thin and near-zero-signal, the honest comparison is against league/oauth2-client / thenetworg/oauth2-azure plus a custom authenticator — roughly 1–2 days of engineering.
  • Roadmap sequencing: Relevant only if you are on Symfony and have an Entra ID tenant already configured. It does not unlock any new product capability; it shortens an integration task. Do not let it drive roadmap; let roadmap (enterprise SSO, Graph integrations) pull it in.
  • Use cases it plausibly serves: B2B SaaS sold into Microsoft-heavy enterprises, internal tools behind corporate SSO, admin dashboards needing Graph-scoped consent, and multi-tenant apps where each customer brings their own tenant ID and client credentials.
  • Framework reality check: This is a Symfony bundle, not a Laravel package. That changes the decision materially — in a Laravel codebase you would not install this at all; you'd use Laravel Socialite with a Microsoft/Entra ID driver, or the Azure provider from socialiteproviders/microsoft-azure. Framing it as a "Laravel/PHP package" in evaluation would be a category error and should be corrected before any architecture review.

When to Consider This Package

Consider it only when all of the following hold:

  • The application is on Symfony (5.4+/6.x/7.x era), uses the native Security component, and you want an authenticator wired into the firewall rather than hand-rolling one.
  • You have a concrete near-term need for Microsoft Graph delegated permissions — i.e., you need tokens with scopes, not just identity assertions. If you only need "log in with Microsoft," a plain OIDC authenticator or Socialite-style provider is simpler.
  • You have the appetite to vendor or fork it. With zero stars, zero dependents, and a single-maintainer Bitbucket repo, treat it as sample code you own, not a dependency you trust. Pin it, read every line, and be prepared to maintain it.
  • You can absorb the audit cost: review the OAuth flow (state/nonce handling, PKCE, token storage, refresh logic, tenant validation, redirect URI handling, error paths). At this maturity level that review is mandatory, not optional.

Look elsewhere when:

  • You are on Laravel — use Laravel Socialite + socialiteproviders/microsoft-azure, or a maintained OIDC client. This package does not apply.
  • You want a maintained, supported dependency with a security response process. Prefer thenetworg/oauth2-azure, hslavich/OneloginSamlBundle, or a generic OIDC bundle with an active maintainer and CVE history.
  • You need SAML rather than OAuth2/OIDC — wrong tool entirely.
  • Your requirement is enterprise-grade SSO (SCIM provisioning, conditional access, admin consent workflows, multi-tenant lifecycle). Those are identity-platform problems; a small authenticator bundle won't carry them, and you should be looking at an IdP broker or a mature library.
  • You cannot tolerate bus-factor risk of one on the auth path. Authentication is a security-critical surface; a single unmaintained repo there is a governance problem, not just a code-quality one.

How to Pitch It (Stakeholders)

For executives: This is a small, unmaintained open-source connector that would let a Symfony application sign users in with their Microsoft work accounts and call Microsoft Graph APIs. It is not a platform or a vendor relationship — it is roughly a day or two of integration work in code we would own and support ourselves. The strategic value is real (enterprise SSO for Microsoft 365 customers, fewer login-support tickets, and a path to calendar/email features), but the connector is not the value; the Entra ID tenant configuration and the product feature are. Recommendation: do not adopt as a dependency; use it as a reference implementation, and fund 1–2 engineering days to build the authenticator in-house on a maintained OAuth2/Azure provider. That gives us the same capability with a maintainer we control.

For engineering: Treat this as sample code. Zero stars, zero dependents, single maintainer on Bitbucket, no release history — no signal for production use. Read it, extract the Graph-specific bits (scope construction, token endpoint handling, user-info mapping), and implement against thenetworg/oauth2-azure or Symfony's generic OIDC support so we inherit security maintenance. Whatever we do, we must review state/nonce/PKCE, tenant-ID validation, token storage and refresh, and redirect-URI allowlisting before it touches the login path.

For the product owner: Framing correction — this is a Symfony bundle, so it is irrelevant to any Laravel service. Where we are on Symfony and need "Sign in with Microsoft" plus Graph access, it accelerates a task we'd otherwise do ourselves; it does not change scope, cost, or timeline in any material way. Do not put it on a roadmap slide; treat it as an implementation detail inside an SSO epic that already has a business case.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core