How dromara/maxkey works
MaxKey is an enterprise IAM/IDaaS platform for centralized authentication, SSO, identity lifecycle management, application access, and administration. Its documented user journey is sign-in through a selected authentication method, issuance of authentication state or tokens, and access to trusted applications through federation protocols. Administration configures applications and access resources; identity lifecycle and directory-management capabilities form related branches. The tree and excerpts support the authentication/token and application-service details shown; most protocol and lifecycle implementations are represented at their enclosing directories because their source was not sampled.
Main entry points: AuthTokenService.java JWT and tokens · AuthenticationProviderFactory.java Sign-in providers · LdapAuthenticationRealmService.java LDAP and AD · maxkey-protocol-oauth-2.0 OAuth and OIDC
Components 19
Authentication
- Sign-in providers
maxkey-authentications/maxkey-authentication-provider/src/main/java/org/dromara/maxkey/authn/provider/AuthenticationProviderFactory.java - LDAP and AD
maxkey-authentications/maxkey-authentication-provider/src/main/java/org/dromara/maxkey/authn/realm/ldap/LdapAuthenticationRealmService.java - JWT and tokens
maxkey-authentications/maxkey-authentication-core/src/main/java/org/dromara/maxkey/authn/jwt/AuthTokenService.java - JWT signing
maxkey-authentications/maxkey-authentication-core/src/main/java/org/dromara/maxkey/authn/jwt/AuthJwtService.java - Sessions
maxkey-authentications/maxkey-authentication-core/src/main/java/org/dromara/maxkey/authn/session/SessionManager.java
Federation protocols
- OAuth and OIDC
maxkey-protocols/maxkey-protocol-oauth-2.0 - SAML 2.0
maxkey-protocols/maxkey-protocol-saml-2.0 - CAS
Identity management
- Directory config
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/CnfLdapContextService.java - SCIM lifecycle
maxkey-protocols - Management UI
maxkey-web-frontend/maxkey-web-mgt-app/src/app/service/apps.service.ts - Application service
maxkey-web-frontend/maxkey-web-mgt-app/src/app/service/apps.service.ts
Access runtime
- User application UI
maxkey-web-frontend/maxkey-web-app/src/app/service/apps.service.ts - Access resources
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/AuthzResourceService.java - Temporary state
maxkey-commons/maxkey-cache/src/main/java/org/dromara/maxkey/persistence/cache/MomentaryService.java
Other components
- User
- Trusted application
- Administrator
- LDAP directory
Connections 21
- User → Sign-in providers: selects method
- Sign-in providers → LDAP and AD: checks directory
- LDAP and AD → Directory config: loads configuration
- LDAP and AD → LDAP directory: authenticates against
- Sign-in providers → JWT and tokens: issues credentials
- JWT and tokens → JWT signing: creates JWT
- JWT and tokens → Sessions: stores tickets
- JWT and tokens → Temporary state: checks captcha
- Trusted application → OAuth and OIDC: requests SSO
- Trusted application → SAML 2.0: requests SSO
- Trusted application → CAS: requests SSO
- OAuth and OIDC → Trusted application: returns identity
- SAML 2.0 → Trusted application: returns assertion
- CAS → Trusted application: returns ticket
- Administrator → Management UI: manages platform
- Management UI → Application service: calls application API
- Administrator → Directory config: configures directories
- Administrator → SCIM lifecycle: manages lifecycle
- User → User application UI: opens applications
- User application UI → Access resources: requests access
- Access resources → Trusted application: grants application resources