ruwork/runet-id-bundle
Symfony bundle for integrating Runet ID authentication into your application. It provides configuration and services to connect Runet ID accounts with Symfony security, enabling single sign-on and streamlined user login flows.
Architecture fit. Despite being catalogued as a Laravel/PHP package, ruwork/runet-id-bundle is a Symfony bundle, not a Laravel package. It targets the Symfony Security component and DI container, exposing a runet_id firewall/authenticator and an API client for the RUNET-ID identity provider (the Russian national digital identity service operated in the .RU/.РФ ecosystem). It has no Laravel service provider, guard, or Socialite driver, so it does not fit a Laravel application's auth stack without a port. Treat it as a reference implementation and API client, not a drop-in dependency.
Integration feasibility. Feasible only as a source-extraction exercise. The realistic path is to fork or vendor the RUNET-ID OAuth2/identity flow (HTTP client, DTOs, token handling) and reimplement the framework-facing layer as a Laravel Socialite provider or a custom guard. Installing it directly is not viable: pinned to 2018-era constraints (likely PHP 7.x, Symfony 3.4/4.0), it will conflict with modern Laravel (PHP 8.1+) on composer require, and its dependency tree pulls Symfony components Laravel either doesn't use or uses differently.
Technical risk. High.
Key questions.
Stack fit. Poor as-is, acceptable as a source reference. The bundle's value is the RUNET-ID-specific logic (endpoints, scopes, claim mapping, error codes), not its Symfony integration. That logic is framework-agnostic and portable.
Migration path.
composer.json. Clone the repo, audit the API client and DTOs, and port them into a first-party Laravel integration (Socialite provider preferred; custom guard if RUNET-ID session semantics differ from standard OAuth2).composer.json platform constraints, replace Symfony-coupled layers with Laravel equivalents, and vendor only the API client.--ignore-platform-reqs installs or bridging Symfony Security into Laravel — brittle, hard to test, and hard to hand over.Compatibility. Verify PHP version floor, PSR/HTTP client choice (Guzzle/HTTPlug), and Symfony component major versions before estimating effort. Expect to rewrite the authenticator, user provider, and DI wiring; retain the transport and DTO layer with light edits.
Sequencing.
Maintenance. Zero upstream support; we own the code indefinitely. Budget a recurring line item for dependency updates and API-drift checks, and assign a named owner. Pin the ported code with tests so it survives Laravel upgrades.
Support. No maintainer, no documentation beyond the source, no community. Internal runbooks and an on-call contact are mandatory before launch.
Scaling. Identity flows are low-QPS relative to core traffic; the bundle itself is not a scaling bottleneck. The real decisions are token/session storage (cache vs. database) and callback endpoint resilience — both our design choices, not the package's.
Failure modes.
Ramp-up. Low for a PHP/Symfony-literate engineer (small codebase, standard OAuth2), higher for a Laravel-only team. Allocate 2–3 days of reading and a half-day knowledge transfer; document the ported flow and the RUNET-ID contract as part of the deliverable so the integration is not tribal knowledge.
TPM recommendation. Do not adopt the package as a dependency. Treat it as an archived reference, extract and reimplement the RUNET-ID-specific logic in a first-party Laravel integration, and gate the decision on confirming the API is still current and that RUNET-ID is a validated product requirement.
How can I help you explore Laravel packages today?