get User Realm Roles
This data source can be used to fetch the realm roles of a user within Keycloak.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as keycloak from "@pulumi/keycloak";
const masterRealm = keycloak.getRealm({
realm: "master",
});
// use the keycloak_user data source to grab the admin user's ID
const defaultAdminUser = masterRealm.then(masterRealm => keycloak.getUser({
realmId: masterRealm.id,
username: "keycloak",
}));
// use the keycloak_user_realm_roles data source to list role names
const userRealmRoles = Promise.all([masterRealm, defaultAdminUser]).then(([masterRealm, defaultAdminUser]) => keycloak.getUserRealmRoles({
realmId: masterRealm.id,
userId: defaultAdminUser.id,
}));
export const keycloakUserRoleNames = userRealmRoles.then(userRealmRoles => userRealmRoles.roleNames);
Content copied to clipboard
import pulumi
import pulumi_keycloak as keycloak
master_realm = keycloak.get_realm(realm="master")
# use the keycloak_user data source to grab the admin user's ID
default_admin_user = keycloak.get_user(realm_id=master_realm.id,
username="keycloak")
# use the keycloak_user_realm_roles data source to list role names
user_realm_roles = keycloak.get_user_realm_roles(realm_id=master_realm.id,
user_id=default_admin_user.id)
pulumi.export("keycloakUserRoleNames", user_realm_roles.role_names)
Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Keycloak = Pulumi.Keycloak;
return await Deployment.RunAsync(() =>
{
var masterRealm = Keycloak.GetRealm.Invoke(new()
{
Realm = "master",
});
// use the keycloak_user data source to grab the admin user's ID
var defaultAdminUser = Keycloak.GetUser.Invoke(new()
{
RealmId = masterRealm.Apply(getRealmResult => getRealmResult.Id),
Username = "keycloak",
});
// use the keycloak_user_realm_roles data source to list role names
var userRealmRoles = Keycloak.GetUserRealmRoles.Invoke(new()
{
RealmId = masterRealm.Apply(getRealmResult => getRealmResult.Id),
UserId = defaultAdminUser.Apply(getUserResult => getUserResult.Id),
});
return new Dictionary<string, object?>
{
["keycloakUserRoleNames"] = userRealmRoles.Apply(getUserRealmRolesResult => getUserRealmRolesResult.RoleNames),
};
});
Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-keycloak/sdk/v5/go/keycloak"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
masterRealm, err := keycloak.LookupRealm(ctx, &keycloak.LookupRealmArgs{
Realm: "master",
}, nil)
if err != nil {
return err
}
// use the keycloak_user data source to grab the admin user's ID
defaultAdminUser, err := keycloak.LookupUser(ctx, &keycloak.LookupUserArgs{
RealmId: masterRealm.Id,
Username: "keycloak",
}, nil)
if err != nil {
return err
}
// use the keycloak_user_realm_roles data source to list role names
userRealmRoles, err := keycloak.GetUserRealmRoles(ctx, &keycloak.GetUserRealmRolesArgs{
RealmId: masterRealm.Id,
UserId: defaultAdminUser.Id,
}, nil)
if err != nil {
return err
}
ctx.Export("keycloakUserRoleNames", userRealmRoles.RoleNames)
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.keycloak.KeycloakFunctions;
import com.pulumi.keycloak.inputs.GetRealmArgs;
import com.pulumi.keycloak.inputs.GetUserArgs;
import com.pulumi.keycloak.inputs.GetUserRealmRolesArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var masterRealm = KeycloakFunctions.getRealm(GetRealmArgs.builder()
.realm("master")
.build());
// use the keycloak_user data source to grab the admin user's ID
final var defaultAdminUser = KeycloakFunctions.getUser(GetUserArgs.builder()
.realmId(masterRealm.applyValue(getRealmResult -> getRealmResult.id()))
.username("keycloak")
.build());
// use the keycloak_user_realm_roles data source to list role names
final var userRealmRoles = KeycloakFunctions.getUserRealmRoles(GetUserRealmRolesArgs.builder()
.realmId(masterRealm.applyValue(getRealmResult -> getRealmResult.id()))
.userId(defaultAdminUser.applyValue(getUserResult -> getUserResult.id()))
.build());
ctx.export("keycloakUserRoleNames", userRealmRoles.applyValue(getUserRealmRolesResult -> getUserRealmRolesResult.roleNames()));
}
}
Content copied to clipboard
variables:
masterRealm:
fn::invoke:
Function: keycloak:getRealm
Arguments:
realm: master
# use the keycloak_user data source to grab the admin user's ID
defaultAdminUser:
fn::invoke:
Function: keycloak:getUser
Arguments:
realmId: ${masterRealm.id}
username: keycloak
# use the keycloak_user_realm_roles data source to list role names
userRealmRoles:
fn::invoke:
Function: keycloak:getUserRealmRoles
Arguments:
realmId: ${masterRealm.id}
userId: ${defaultAdminUser.id}
outputs:
keycloakUserRoleNames: ${userRealmRoles.roleNames}
Content copied to clipboard
Return
A collection of values returned by getUserRealmRoles.
Parameters
argument
A collection of arguments for invoking getUserRealmRoles.
Return
A collection of values returned by getUserRealmRoles.
Parameters
realm Id
The realm this user belongs to.
user Id
The ID of the user to query realm roles for.
See also
suspend fun getUserRealmRoles(argument: suspend GetUserRealmRolesPlainArgsBuilder.() -> Unit): GetUserRealmRolesResult
Return
A collection of values returned by getUserRealmRoles.
Parameters
argument
Builder for com.pulumi.keycloak.kotlin.inputs.GetUserRealmRolesPlainArgs.