Role Membership and Mapping APIs

Role Membership and Mapping APIs

The Role Membership and Mapping APIs provide endpoints to view, assign, and remove role memberships in IQ Server. These APIs let administrators manage which users and groups belong to specific roles across global and non-global scopes. They extend access control functionality by enabling programmatic management of role-to-member relationships.

Permissions Required

Scope Operation Required Permission
Non-global View memberships View IQ Elements
Non-global Assign/unassign members Edit Access Control
Global All operations Edit System Configuration and Users

Set Members for a Role (Non-Global)

Replaces the entire list of members for a given role within a specific context.

PUT /api/v2/roleMemberships/{ownerType}/{ownerId}/role/{roleId}/members

Example:

curl -u admin:admin123 -X PUT \
  -H "Content-Type: application/json" \
  -d '[{"type":"USER","internalName":"user1","displayName":"User One","email":"user1@example.com","realm":"IQ Server"}]' \
  http://localhost:8070/api/v2/roleMemberships/application/myApp/role/abcd123/members

Note

This operation replaces the existing member list for the role. Any members not included in the request will be removed.

Set Members for a Role (Global)

PUT /api/v2/roleMemberships/{ownerType}/role/{roleId}/members

Example:

curl -u admin:admin123 -X PUT \
  -H "Content-Type: application/json" \
  -d '[{"type":"USER","internalName":"admin","displayName":"Administrator","realm":"IQ Server"}]' \
  http://localhost:8070/api/v2/roleMemberships/global/role/{roleId}/members

Note

Returns 400 Bad Request if assigning application-level roles at the global level.

Get All Roles with Members (Non-Global)

Retrieves all roles and their associated members for a specific context.

GET /api/v2/roleMemberships/{ownerType}/{ownerId}/roles

Example:

curl -u admin:admin123 -X GET \
  http://localhost:8070/api/v2/roleMemberships/application/myApp/roles

Get All Roles with Members (Global)

Retrieves all global roles and their associated members.

GET /api/v2/roleMemberships/{ownerType}/roles

Example:

curl -u admin:admin123 -X GET \
  http://localhost:8070/api/v2/roleMemberships/global/roles

Assign a Single User or Group to a Role

Assigns a single user or group to a role without replacing existing members.

Non-Global

PUT /api/v2/roleMemberships/{ownerType}/{ownerId}/role/{roleId}/{memberType}/{memberName}

Global

PUT /api/v2/roleMemberships/{ownerType}/role/{roleId}/{memberType}/{memberName}

Example:

curl -u admin:admin123 -X PUT \
  http://localhost:8070/api/v2/roleMemberships/application/myApp/role/1da70fae1fd54d6cb7999871ebdb9a36/user/developer1

Note

This is an additive operation. Existing members remain assigned.

Unassign a User or Group from a Role

Removes a single user or group from a specified role.

Non-Global

DELETE /api/v2/roleMemberships/{ownerType}/{ownerId}/role/{roleId}/{memberType}/{memberName}

Global

DELETE /api/v2/roleMemberships/{ownerType}/role/{roleId}/{memberType}/{memberName}

Example:

curl -u admin:admin123 -X DELETE \
  http://localhost:8070/api/v2/roleMemberships/global/role/1b92fae3e55a411793a091fb821c422d/user/testuser

Note

Returns 404 Not Found if the role or member cannot be found.

Get Simplified Role Memberships

Retrieves a compact view of all role memberships for a given scope.

Non-Global

GET /api/v2/roleMemberships/{ownerType}/{ownerId}

Global

GET /api/v2/roleMemberships/{ownerType}

Example:

curl -u admin:admin123 -X GET \
  http://localhost:8070/api/v2/roleMemberships/global

Note

Use this for summary information. For detailed role and membership data, use the Get All Roles with Members endpoints.

Request Body Example

When setting members for a role, include an array of member objects.

[\
  {\
    "type": "USER",\
    "internalName": "user1",\
    "displayName": "User One",\
    "email": "user1@example.com",\
    "realm": "IQ Server"\
  },\
  {\
    "type": "GROUP",\
    "internalName": "dev-team",\
    "displayName": "Development Team",\
    "realm": "LDAP"\
  }\
]

Role Membership Behavior

The following rules apply when managing role memberships:

Example Use Case

Assign a user to a role:

curl -u admin:admin123 -X PUT \
  http://localhost:8070/api/v2/roleMemberships/application/myApp/role/1da70fae1fd54d6cb7999871ebdb9a36/user/developer1

Remove that user from the role:

curl -u admin:admin123 -X DELETE \
  http://localhost:8070/api/v2/roleMemberships/application/myApp/role/1da70fae1fd54d6cb7999871ebdb9a36/user/developer1