SSO (Single Sign-On) service that provides user authentication functionality using Smart-ID
and Mobile-ID
.
It integrates with SK ID Solutions APIs and manages user roles, permissions, and scopes.
Designed to be easily integrated into microservices architectures and provides logging and telemetry for monitoring.
- Create and update user accounts, with role and scope assignments
- Generate and validate JWT tokens
- Authenticate users via
Smart-ID
andMobile-ID
through SK ID Solutions provider APIs - Comprehensive logging and telemetry support (OpenTelemetry) for easier monitoring and tracing.
- Easily integrate into a microservices architecture
Environment Variables:
Use .env
files (e.g., .env.development
) or provide environment variables for:
SECRET_KEY
for JWT signingDATABASE_DSN
for PostgreSQLREDIS_URI
for RedisSMART_ID_API_URL
,MOBILE_ID_API_URL
and corresponding relying on party credentials
Database Migrations:
Run the following command to apply database migrations:
GO_ENV=development make db:drop db:create db:migrate
Run the Services:
docker-compose build
docker-compose up
Check health status:
curl -X GET http://localhost:8080/health
Swagger file is available at api/swagger.yaml
The application follows a layered architecture and clean code principles:
- cmd/loki: Application entry point
- internal/app: Core application logic, including services, controllers, repositories, and DTOs
- internal/config: Configuration loading and setup, server startup, middleware, router initialization, and telemetry configuration
- pkg: Reusable utilities such as JWT token handling and logging
Distributed under the MIT License. See LICENSE
for more information.
- SK ID Solutions for providing the Smart-ID and Mobile-ID APIs