Skip to content
This repository was archived by the owner on Mar 16, 2026. It is now read-only.

Commit 7229f90

Browse files
Merge pull request #533 from dlechevalier/Add-protocol-mappers
Add realm-role, client-role and session note mappers
2 parents c783186 + 3226b8f commit 7229f90

File tree

2 files changed

+31
-8
lines changed

2 files changed

+31
-8
lines changed

README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ Links to download Terraform Providers:
206206
* Datadog provider >2.1.0 - [here](https://releases.hashicorp.com/terraform-provider-datadog/)
207207
* New Relic provider >1.5.0 - [here](https://releases.hashicorp.com/terraform-provider-newrelic/)
208208
* Community
209-
* Keycloak provider >=1.12.0 - [here](https://github.com/mrparkers/terraform-provider-keycloak/)
209+
* Keycloak provider >=1.19.0 - [here](https://github.com/mrparkers/terraform-provider-keycloak/)
210210
* Logz.io provider >=1.1.1 - [here](https://github.com/jonboydell/logzio_terraform_provider/)
211211
* Commercetools provider >= 0.21.0 - [here](https://github.com/labd/terraform-provider-commercetools)
212212
* Mikrotik provider >= 0.2.2 - [here](https://github.com/labd/terraform-provider-commercetools)
@@ -1247,7 +1247,7 @@ Example:
12471247
terraformer import keycloak --resources=realms --targets realmA,realmB
12481248
```
12491249

1250-
Here is the list of resources which are currently supported by Keycloak provider v.1.17.1:
1250+
Here is the list of resources which are currently supported by Keycloak provider v.1.19.0:
12511251

12521252
- `realms`
12531253
- `keycloak_default_groups`
@@ -1272,14 +1272,17 @@ Here is the list of resources which are currently supported by Keycloak provider
12721272
- `keycloak_openid_group_membership_protocol_mapper`
12731273
- `keycloak_openid_hardcoded_claim_protocol_mapper`
12741274
- `keycloak_openid_hardcoded_group_protocol_mapper`
1275-
- `keycloak_openid_hardcoded_role_protocol_mapper`
1275+
- `keycloak_openid_hardcoded_role_protocol_mapper` (only for client roles)
12761276
- `keycloak_openid_user_attribute_protocol_mapper`
12771277
- `keycloak_openid_user_property_protocol_mapper`
1278+
- `keycloak_openid_user_realm_role_protocol_mapper`
1279+
- `keycloak_openid_user_client_role_protocol_mapper`
1280+
- `keycloak_openid_user_session_note_protocol_mapper`
12781281
- `keycloak_realm`
12791282
- `keycloak_required_action`
12801283
- `keycloak_role`
12811284
- `keycloak_user`
1282-
1285+
12831286
### Use with Logz.io
12841287

12851288
Example:

providers/keycloak/openid_client.go

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,17 +100,37 @@ func (g RealmGenerator) createOpenIDProtocolMapperResources(clientID string, ope
100100
case "oidc-hardcoded-group-mapper":
101101
resources = append(resources, g.createOpenIDGenericProtocolMapperResource("hardcoded_group", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientID))
102102
case "oidc-hardcoded-role-mapper":
103-
// Not supported for the moment
104103
// Only works with client roles
105-
//resources = append(resources, g.createOpenIDGenericProtocolMapperResource("hardcoded_role", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientId))
106-
continue
104+
resources = append(resources, g.createOpenIDGenericProtocolMapperResource("hardcoded_role", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientID))
107105
case "oidc-usermodel-attribute-mapper":
108106
resources = append(resources, g.createOpenIDGenericProtocolMapperResource("user_attribute", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientID))
109107
case "oidc-usermodel-property-mapper":
110108
resources = append(resources, g.createOpenIDGenericProtocolMapperResource("user_property", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientID))
111109
case "oidc-usermodel-realm-role-mapper":
110+
resources = append(resources, g.createOpenIDGenericProtocolMapperResource("user_realm_role", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientID))
111+
case "oidc-usermodel-client-role-mapper":
112+
resources = append(resources, g.createOpenIDGenericProtocolMapperResource("user_client_role", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientID))
113+
case "oidc-usersessionmodel-note-mapper":
114+
resources = append(resources, g.createOpenIDGenericProtocolMapperResource("user_session_note", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientID))
115+
case "oidc-address-mapper":
116+
// Not supported for the moment
117+
//resources = append(resources, g.createOpenIDGenericProtocolMapperResource("address", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientID))
118+
continue
119+
case "oidc-role-name-mapper":
120+
// Not supported for the moment
121+
//resources = append(resources, g.createOpenIDGenericProtocolMapperResource("role_name", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientID))
122+
continue
123+
case "oidc-sha256-pairwise-sub-mapper":
124+
// Not supported for the moment
125+
//resources = append(resources, g.createOpenIDGenericProtocolMapperResource("pairwise_subject_identifier", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientID))
126+
continue
127+
case "oidc-allowed-origins-mapper":
128+
// Not supported for the moment
129+
//resources = append(resources, g.createOpenIDGenericProtocolMapperResource("allowed_web_origins", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientID))
130+
continue
131+
case "oidc-audience-resolve-mapper":
112132
// Not supported for the moment
113-
//resources = append(resources, g.createOpenIDGenericProtocolMapperResource("user_realm_role", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientId))
133+
//resources = append(resources, g.createOpenIDGenericProtocolMapperResource("audience_resolve", protocolMapper.Id, protocolMapper.Name, openidClient.RealmId, openidClient.ClientId, clientID))
114134
continue
115135
}
116136
}

0 commit comments

Comments
 (0)