SSO & Identity Federation
Presswerk uses Keycloak for authentication. Keycloak supports federating with external identity providers, so your users can sign in with their existing corporate credentials.
Supported Providers
Section titled “Supported Providers”| Provider | Protocol | Notes |
|---|---|---|
| Microsoft Entra ID (Azure AD) | OIDC | Recommended for Microsoft environments |
| Google Workspace | OIDC | Via Google Cloud Identity |
| Okta | OIDC / SAML | Both protocols supported |
| Active Directory | LDAP | Direct user sync |
| LDAP (OpenLDAP, FreeIPA) | LDAP | Direct user sync |
| Any OIDC Provider | OIDC | Standard OpenID Connect |
| Any SAML Provider | SAML 2.0 | Standard SAML federation |
Microsoft Entra ID (Azure AD)
Section titled “Microsoft Entra ID (Azure AD)”1. Register Application in Entra ID
Section titled “1. Register Application in Entra ID”- Go to Azure Portal → Microsoft Entra ID → App registrations → New registration
- Name:
Presswerk - Redirect URI:
https://auth.your-domain.com/realms/presswerk/broker/entra-id/endpoint - Copy the Application (client) ID and Directory (tenant) ID
- Go to Certificates & secrets → New client secret, copy the value
2. Configure in Keycloak
Section titled “2. Configure in Keycloak”- Open
https://auth.your-domain.com/admin - Select the presswerk realm
- Go to Identity Providers → Add Provider → OpenID Connect
- Configure:
| Field | Value |
|---|---|
| Alias | entra-id |
| Display Name | Microsoft |
| Discovery URL | https://login.microsoftonline.com/{tenant-id}/v2.0/.well-known/openid-configuration |
| Client ID | Your application ID |
| Client Secret | Your client secret |
| Default Scopes | openid email profile |
- Save
3. Configure Attribute Mappers
Section titled “3. Configure Attribute Mappers”Go to Identity Providers → entra-id → Mappers → Add mapper:
| Name | Mapper Type | Claim | User Attribute |
|---|---|---|---|
| Attribute Importer | email | email | |
| First Name | Attribute Importer | given_name | firstName |
| Last Name | Attribute Importer | family_name | lastName |
LDAP / Active Directory
Section titled “LDAP / Active Directory”1. Configure in Keycloak
Section titled “1. Configure in Keycloak”- Go to User Federation → Add Provider → LDAP
- Configure:
| Field | Value |
|---|---|
| Vendor | Active Directory (or Other for OpenLDAP) |
| Connection URL | ldap://your-dc.domain.com:389 (or ldaps:// for TLS) |
| Users DN | OU=Users,DC=domain,DC=com |
| Bind DN | CN=svc-presswerk,OU=Service Accounts,DC=domain,DC=com |
| Bind Credential | Service account password |
| Username LDAP attribute | sAMAccountName (AD) or uid (LDAP) |
| UUID LDAP attribute | objectGUID (AD) or entryUUID (LDAP) |
| Edit Mode | READ_ONLY (recommended) |
- Click Test connection and Test authentication
- Save
2. Group-to-Role Mapping
Section titled “2. Group-to-Role Mapping”To automatically assign the Presswerk admin role based on AD/LDAP group membership:
- In the LDAP provider, go to Mappers → Add mapper
- Type: group-ldap-mapper
- Configure:
| Field | Value |
|---|---|
| LDAP Groups DN | OU=Groups,DC=domain,DC=com |
| Group Name LDAP Attribute | cn |
| Membership LDAP Attribute | member |
| Mode | READ_ONLY |
- Create a Keycloak group (e.g.
presswerk-admins) and assign theadminrole to it - Map the LDAP group to the Keycloak group
3. LDAP over TLS
Section titled “3. LDAP over TLS”For LDAP over TLS (ldaps://), the Keycloak container must trust your internal CA. See TLS & Certificates for configuration.
SAML Federation
Section titled “SAML Federation”- Go to Identity Providers → Add Provider → SAML v2.0
- Configure with your IdP’s metadata URL or upload the metadata XML
- Set the Service Provider Entity ID to
https://auth.your-domain.com/realms/presswerk - Provide the Redirect URI to your IdP:
https://auth.your-domain.com/realms/presswerk/broker/{alias}/endpoint
Role Mapping
Section titled “Role Mapping”Presswerk uses these roles:
| Role | Description |
|---|---|
admin | Tenant administrator — manages users, environments, data sources |
| (none) | Regular user — access controlled by folder permissions |
Assign roles via:
- Keycloak admin console: Users → Role Mappings
- Group mapping: Assign roles to Keycloak groups, then map IdP groups to Keycloak groups
- IdP attribute mapping: Map an IdP claim to a Keycloak role