Overview of Keratin AuthN
mainKeratin AuthN is an accounts microservice designed to decouple authentication security from your main application. It manages login identities (usernames/passwords and optional OAuth identities) and provides access tokens to clients.
Core Architecture
- AuthN Server: Owns all credential data. It communicates directly with the client to minimize the host application's exposure to passwords and session tokens. It uses a SQL database (PostgreSQL, MySQL, SQLite) for long-term data and Redis for sessions and metrics.
- Host App: Owns user-specific data (names, preferences, etc.) but not credentials. It identifies users by extracting the
accountIDfrom an access token verified via public key cryptography. - Client: Exchanges passwords for refresh and access tokens via the AuthN server. It then sends the access token to the host app.