{"id":51040242,"url":"https://github.com/sgoranov/identity-link","last_synced_at":"2026-06-22T10:02:20.560Z","repository":{"id":211438741,"uuid":"699893671","full_name":"sgoranov/identity-link","owner":"sgoranov","description":"Identity Link is a modular, extensible OAuth2 and OpenID Connect (OIDC) authorization server built with Symfony and PHP. It provides a complete authentication and authorization solution designed for modern, distributed applications requiring token-based security.","archived":false,"fork":false,"pushed_at":"2026-06-09T12:26:29.000Z","size":1727,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2026-06-09T14:15:06.168Z","etag":null,"topics":["2fa","authentication","authorization","identity-provider","jwt","microservices","oauth2","oauth2-server","openid-connect","php","rest-api","symfony","totp"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sgoranov.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-10-03T14:47:31.000Z","updated_at":"2026-06-09T12:26:50.000Z","dependencies_parsed_at":"2023-12-08T15:08:33.881Z","dependency_job_id":"4885ac94-39cf-4281-9648-4d8c465e6389","html_url":"https://github.com/sgoranov/identity-link","commit_stats":null,"previous_names":["sgoranov/php-identity-link","sgoranov/identity-link"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sgoranov/identity-link","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgoranov%2Fidentity-link","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgoranov%2Fidentity-link/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgoranov%2Fidentity-link/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgoranov%2Fidentity-link/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sgoranov","download_url":"https://codeload.github.com/sgoranov/identity-link/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgoranov%2Fidentity-link/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34643624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["2fa","authentication","authorization","identity-provider","jwt","microservices","oauth2","oauth2-server","openid-connect","php","rest-api","symfony","totp"],"created_at":"2026-06-22T10:02:19.633Z","updated_at":"2026-06-22T10:02:20.550Z","avatar_url":"https://github.com/sgoranov.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Identity Link\n\n![License](https://img.shields.io/github/license/sgoranov/identity-link)\n![Last Commit](https://img.shields.io/github/last-commit/sgoranov/identity-link)\n![Issues](https://img.shields.io/github/issues/sgoranov/identity-link)\n[![PHPUnit Tests](https://github.com/sgoranov/identity-link/actions/workflows/phpunit.yml/badge.svg)](https://github.com/sgoranov/identity-link/actions/workflows/phpunit.yml)\n[![Security Audit](https://github.com/sgoranov/identity-link/actions/workflows/vulnerability-scan.yml/badge.svg)](https://github.com/sgoranov/identity-link/actions/workflows/vulnerability-scan.yml)\n\nIdentity Link is a modular, extensible OAuth2 and OpenID Connect (OIDC) authorization\nserver built with Symfony and PHP. It provides a complete \nauthentication and authorization solution designed for modern, \ndistributed applications requiring token-based security.\n\n![Application Architecture](./docs/diagram.svg)\n\n## Why Choose Identity Link\n\nIdentity Link is a modern identity management system built with \nscalability, flexibility, and security in mind. Here’s why it stands out:\n\n### Microservice-Based Architecture\n\nBuilt as a set of microservices, Identity Link allows horizontal \nscaling-spin up more instances of the same service to handle \nincreased load and maintain high performance.\n\n### Modular Design\n\nIdentity Link is composed of swappable modules, making it easy \nto adapt to your infrastructure or requirements:\n\n - The default `db-user` module stores user data in PostgreSQL.\n - You can easily replace it with a custom implementation that pulls users from Active Directory, an API, or any other system.\n\n### Two-Factor Authentication Support\n\nSecurity is built in. TOTP (e.g., Google Authenticator) is supported \nout of the box. Thanks to the modular design, you can also implement \nother 2FA methods like SMS verification or third-party services \nwith minimal changes. When 2FA is globally enabled, user services can\nskip or require 2FA per user through `UserResponseInterface::twoFaEnabled()`.\n\n### Fully Customizable UI and Text\n\nIdentity Link is fully customizable. You can:\n\n - Apply your own themes to modify the look and feel.\n - Customize all texts and labels.\n - Provide translations for a multilingual user experience.\n\n\n## Features\n\nIdentity Link provides a secure and flexible identity solution for modern applications.\nKey features include:\n\n - OAuth2 and OpenID Connect (OIDC) support\n - JWT access token issuance\n - Authorization Code, Client Credentials, and Password Grant flows\n - RESTful API for user, client, and group management\n - Modular architecture for pluggable components\n - Built-in TOTP two-factor authentication\n - Easy customization of UI, text, and translations\n - Horizontal scalability through microservices\n - Docker-based development environment\n - Extensive PHPUnit test coverage\n\n## Components\n\n- [DB Clients](https://github.com/sgoranov/identity-link-db-clients) - Manages registered OAuth2 clients, secrets, and their access policies\n- [DB Users](https://github.com/sgoranov/identity-link-db-users) - Handles user registration, storage, and authentication\n- [2FA](https://github.com/sgoranov/identity-link-2fa) - Provides optional two-factor authentication via TOTP\n- [Console](https://github.com/sgoranov/identity-link-console) - Administrative UI for managing users, clients, groups, etc.\n- [BFF](https://github.com/sgoranov/identity-link-bff) - Backend-for-frontend that handles OIDC login, stores the user session, and proxies requests to backend services while attaching the access token\n- [Shared](https://github.com/sgoranov/identity-link-shared) - Common utilities and abstractions shared across services\n- [Docker](https://github.com/sgoranov/identity-link-docker) – Centralized Docker Compose setup to orchestrate all services locally for development or testing\n\n## Documentation\n\n- [Installation](docs/INSTALLATION.md)\n- [Configuration](docs/CONFIGURATION.md)\n- [OAuth Usage Guide](docs/OAUTH_USAGE_GUIDE.md)\n- [OpenID Connect Usage Guide](docs/OIDC_USAGE_GUIDE.md)\n- [API Contract Interfaces](docs/API_CONTRACTS.md)\n- [Theme Customization](docs/THEME_CUSTOMIZATION.md)\n\n## License\n\nIdentity Link is open source software licensed under the [MIT License](LICENSE), which permits reuse, \nmodification, and distribution with minimal restrictions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsgoranov%2Fidentity-link","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsgoranov%2Fidentity-link","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsgoranov%2Fidentity-link/lists"}