Package com.cloudforgeci.api.security
Class KeycloakFactory
java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
com.cloudforgeci.api.core.annotation.BaseFactory
com.cloudforgeci.api.security.KeycloakFactory
- All Implemented Interfaces:
software.amazon.jsii.JsiiSerializable,software.constructs.IConstruct,software.constructs.IDependable
Keycloak SAML Bridge Factory.
Deploys Keycloak as a SAML Identity Provider bridge between AWS Cognito (OIDC) and applications that require SAML authentication (e.g., Mattermost with group sync).
Architecture:
Mattermost ←SAML→ Keycloak ←OIDC→ Cognito User Pool
(groups) (federation) (users)
When to Use:
- Application requires SAML (not OIDC)
- Need group synchronization / team management
- Want to use Cognito but app doesn't support OIDC directly
Configuration:
{
"oidcProvider": "cognito-saml",
"authMode": "application-oidc",
"cognitoAutoProvision": true
}
What Gets Created:
- Keycloak ECS Fargate service
- Keycloak schema in existing PostgreSQL database
- ALB target group for Keycloak (auth.{domain})
- Cognito OIDC federation in Keycloak
- SAML client configuration for Mattermost
What Gets Reused:
- Existing Cognito User Pool (created by CognitoAuthenticationFactory)
- Existing RDS PostgreSQL database
- Existing VPC, subnets, security groups
- Existing ECS cluster
- Existing ALB
Security:
- Follows security profile settings (DEV/STAGING/PRODUCTION)
- Database credentials in Secrets Manager
- Encrypted database connections
- HTTPS only
-
Nested Class Summary
Nested classes/interfaces inherited from class software.amazon.jsii.JsiiObject
software.amazon.jsii.JsiiObject.InitializationModeNested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$Default, software.constructs.IConstruct.Jsii$Proxy -
Field Summary
Fields inherited from class com.cloudforgeci.api.core.annotation.BaseFactory
cfc, config, ctx -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcreate()Abstract method that must be implemented by all factory subclasses.Methods inherited from class com.cloudforgeci.api.core.annotation.BaseFactory
getDeploymentContext, getSecurityProfileConfiguration, getSystemContextMethods inherited from class software.constructs.Construct
getNode, isConstruct, toStringMethods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSetMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Constructor Details
-
KeycloakFactory
-
-
Method Details
-
create
public void create()Description copied from class:BaseFactoryAbstract method that must be implemented by all factory subclasses. This method should contain the actual infrastructure creation logic.- Specified by:
createin classBaseFactory
-