Skip to content

Users

Use User to declaratively manage people who can authenticate to Keycloak. Use Groups, Roles, and Permissions to manage access around those users, and UserFederation when you need a custom external user store integration.

API Reference

KindAPI GroupTerraform ResourceCRD Explorer
Useruser.keycloak.crossplane.io/v1alpha1keycloak_userView CRD Schema
Groupsuser.keycloak.crossplane.io/v1alpha1keycloak_user_groupsView CRD Schema
Rolesuser.keycloak.crossplane.io/v1alpha1keycloak_user_rolesView CRD Schema
Permissionsuser.keycloak.crossplane.io/v1alpha1keycloak_users_permissionsView CRD Schema
UserFederationuser.keycloak.crossplane.io/v1alpha1keycloak_custom_user_federationView CRD Schema

Examples

Basic user

apiVersion: user.keycloak.crossplane.io/v1alpha1
kind: User
metadata:
  name: bree
spec:
  deletionPolicy: Delete
  forProvider:
    realmId: "dev"
    username: "bree"
  providerConfigRef:
    name: "keycloak-provider-config"

User roles

apiVersion: user.keycloak.crossplane.io/v1alpha1
kind: Roles
metadata:
  name: user-roles
spec:
  deletionPolicy: Delete
  forProvider:
    realmIdRef:
      name: "dev"
      policy:
        resolve: Always
    roleIdsRefs:
      - name: test
        policy:
          resolve: Always
    userIdRef:
      name: "tim-tester"
      policy:
        resolve: Always
  providerConfigRef:
    name: "keycloak-provider-config"

User groups

apiVersion: user.keycloak.crossplane.io/v1alpha1
kind: Groups
metadata:
  name: user-groups
spec:
  deletionPolicy: Delete
  forProvider:
    realmIdRef:
      name: "dev"
      policy:
        resolve: Always
    groupIdsRefs:
      - name: test
        policy:
          resolve: Always
    userIdRef:
      name: "tim-tester"
      policy:
        resolve: Always
  providerConfigRef:
    name: "keycloak-provider-config"

User permissions

apiVersion: user.keycloak.crossplane.io/v1alpha1
kind: Permissions
metadata:
  name: my-user-permission
spec:
  deletionPolicy: Delete
  forProvider:
    realmIdRef:
      name: "dev"
      policy:
        resolve: Always
  providerConfigRef:
    name: "keycloak-provider-config"

Custom user federation

apiVersion: user.keycloak.crossplane.io/v1alpha1
kind: UserFederation
metadata:
  name: custom-user-federation
spec:
  forProvider:
    config:
      dummyBool: true
      dummyString: foobar
      multivalue: value1##value2
    enabled: true
    name: custom
    providerId: custom
    realmIdSelector:
      matchLabels:
        testing.upbound.io/example-name: realm

Key Fields

ResourceFieldDescription
UserrealmIdRealm where the user account exists.
UserusernameUnique username in the realm.
UserenabledEnables or disables login for the user.
GroupsuserIdRefTargets the user whose group memberships are managed.
GroupsgroupIdsRefsReferences groups to assign to the user.
RolesuserIdRefTargets the user whose direct roles are managed.
RolesroleIdsRefsReferences roles to assign to the user.
PermissionsrealmIdRefEnables fine-grained admin permissions for user management in a realm.
UserFederationproviderIdSelects the custom federation provider implementation.
UserFederationconfigProvider-specific configuration passed to the federation plugin.
UserFederationenabledEnables or disables the federation provider.

Related Resources