Skip to main content

SCIM Group examples

Operations

List all

List all Groups.

Request
GET http://<your-domain>/soffid/webservice/scim2/v1/Group
Response 200 OK
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 7,
    "startIndex": 1,
    "Resources": [
        {
            "organizational": false,
            "meta": {
                "location": "http://soffid.pat.lab:8080/webservice/scim2/v1/Group/83",
                "links": {
                    "members": "http://soffid.pat.lab:8080/webservice/scim2/v1/User?filter=primaryGroup+eq+'world'+or secondaryGroup.group.name+eq+'world'",
                    "administrators": "http://soffid.pat.lab:8080/webservice/scim2/v1/RoleAccount?filter=group.name+eq+'world'"
                },
                "resourceType": "Group"
            },
            "quota": "0",
            "schemas": [
                "urn:soffid:com.soffid.iam.api.Group"
            ],
            "name": "world",
            "obsolete": false,
            "description": "World Original",
            "attributes": {},
            "id": 83
        },
        {
            "organizational": false,
            "meta": {
                "location": "http://soffid.pat.lab:8080/webservice/scim2/v1/Group/87",
                "links": {
                    "members": "http://soffid.pat.lab:8080/webservice/scim2/v1/User?filter=primaryGroup+eq+'enterprise'+or secondaryGroup.group.name+eq+'enterprise'",
                    "administrators": "http://soffid.pat.lab:8080/webservice/scim2/v1/RoleAccount?filter=group.name+eq+'enterprise'"
                },
                "resourceType": "Group"
            },
            "quota": "0",
            "schemas": [
                "urn:soffid:com.soffid.iam.api.Group"
            ],
            "name": "enterprise",
            "obsolete": false,
            "description": "Enterprise",
            "parentGroup": "world",
            "attributes": {},
            "id": 87
        },
      ......
    ]
}

List by filter

List all groups with a filter expression.

It is allowed to use pagination and sort the information, for more information visit the Sorting and Pagination information.

Request

For instance, filter all groups that contain "world" on field name

GET http://<your-domain>/soffid/webservice/scim2/v1/Group?filter=name co world
Response 200 OK
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 2,
    "startIndex": 1,
    "Resources": [
        {
            "organizational": false,
            "meta": {
                "location": "http://soffid.pat.lab:8080/webservice/scim2/v1/Group/83",
                "links": {
                    "members": "http://soffid.pat.lab:8080/webservice/scim2/v1/User?filter=primaryGroup+eq+'world'+or secondaryGroup.group.name+eq+'world'",
                    "administrators": "http://soffid.pat.lab:8080/webservice/scim2/v1/RoleAccount?filter=group.name+eq+'world'"
                },
                "resourceType": "Group"
            },
            "quota": "0",
            "schemas": [
                "urn:soffid:com.soffid.iam.api.Group"
            ],
            "name": "world",
            "obsolete": false,
            "description": "World Original",
            "attributes": {},
            "id": 83
        },
        {
            "organizational": false,
            "meta": {
                "location": "http://soffid.pat.lab:8080/webservice/scim2/v1/Group/485118",
                "links": {
                    "members": "http://soffid.pat.lab:8080/webservice/scim2/v1/User?filter=primaryGroup+eq+'world2'+or secondaryGroup.group.name+eq+'world2'",
                    "administrators": "http://soffid.pat.lab:8080/webservice/scim2/v1/RoleAccount?filter=group.name+eq+'world2'"
                },
                "resourceType": "Group"
            },
            "quota": "0",
            "schemas": [
                "urn:soffid:com.soffid.iam.api.Group"
            ],
            "name": "world2",
            "obsolete": false,
            "description": "World Modified",
            "attributes": {},
            "id": 485118
        }
    ]
}

Query by id

Retrieve a group by its id (primary key). 

Request
GET http://<your-domain>/soffid/webservice/scim2/v1/Group/83
Response 200 OK
{
    "organizational": false,
    "meta": {
        "location": "http://soffid.pat.lab:8080/webservice/scim2/v1/Group/83",
        "links": {
            "members": "http://soffid.pat.lab:8080/webservice/scim2/v1/User?filter=primaryGroup+eq+'world'+or secondaryGroup.group.name+eq+'world'",
            "administrators": "http://soffid.pat.lab:8080/webservice/scim2/v1/RoleAccount?filter=group.name+eq+'world'"
        },
        "resourceType": "Group"
    },
    "quota": "0",
    "schemas": [
        "urn:soffid:com.soffid.iam.api.Group"
    ],
    "name": "world",
    "obsolete": false,
    "description": "World Original",
    "attributes": {},
    "id": 83
}

Create

To create a group.

Request
POST http://<your-domain>/soffid/webservice/scim2/v1/Group/

JSON

{
    "schemas": [
        "urn:soffid:com.soffid.iam.api.Group"
    ],
    "name": "EngineeringTeam",
    "description": "Enterprise engineering team",
    "parentGroup": "world"
}
Response 201 Created
{
    "organizational": false,
    "meta": {
        "location": "http://soffid.pat.lab:8080/webservice/scim2/v1/Group/1976559",
        "resourceType": "Group"
    },
    "quota": "0",
    "schemas": [
        "urn:soffid:com.soffid.iam.api.Group"
    ],
    "name": "EngineeringTeam",
    "obsolete": false,
    "description": "Enterprise engineering team",
    "parentGroup": "world",
    "attributes": {},
    "id": 1976559
}

Update partial

Update only the attributes with changes, only these attributes will be updated, the rest will maintain the same value.

Request
PATCH http://<your-domain>/soffid/webservice/scim2/v1/Group/1976559

JSON

{
    "Operations": [
        {
            "op": "replace",
            "path": "description",
            "value": "Enterprise Engineering Group"
        },
        {
            "op": "replace",
            "path": "type",
            "value": "CC"
        }
    ]
}
Response 200 OK
{
    "organizational": false,
    "meta": {
        "location": "http://soffid.pat.lab:8080/webservice/scim2/v1/Group/1976559",
        "links": {
            "members": "http://soffid.pat.lab:8080/webservice/scim2/v1/User?filter=primaryGroup+eq+'EngineeringTeam'+or secondaryGroup.group.name+eq+'EngineeringTeam'",
            "administrators": "http://soffid.pat.lab:8080/webservice/scim2/v1/RoleAccount?filter=group.name+eq+'EngineeringTeam'"
        },
        "resourceType": "Group"
    },
    "quota": "0",
    "schemas": [
        "urn:soffid:com.soffid.iam.api.Group"
    ],
    "name": "EngineeringTeam",
    "obsolete": false,
    "description": "Enterprise Engineering Group",
    "parentGroup": "world",
    "attributes": {},
    "id": 1976559,
    "type": "CC"
}

Update all

This operation replaces all values in the group. 

  • Note that the attribute id is required to confirm that the resource "...Group/<id>" is the same that the JSON group.
  • Note that all the attributes not included in the request will be cleared in the group and their data will be lost.
  • Note that not all the attributes are updatable, for example, tag meta, avoid these tags. For more information see Resource data model page.
Request
PUT http://<your-domain>/soffid/webservice/scim2/v1/Group/1976559

JSON

{
    "schemas": ["urn:soffid:com.soffid.iam.api.Group"],
    "id": 1976559,
    "name": "EngineeringTeam",
    "description": "Enterprise engineering team",
    "parentGroup": "world"
}
Response 200 OK
{
    "organizational": false,
    "meta": {
        "location": "http://soffid.pat.lab:8080/webservice/scim2/v1/Group/1976559",
        "links": {
            "members": "http://soffid.pat.lab:8080/webservice/scim2/v1/User?filter=primaryGroup+eq+'EngineeringTeam'+or secondaryGroup.group.name+eq+'EngineeringTeam'",
            "administrators": "http://soffid.pat.lab:8080/webservice/scim2/v1/RoleAccount?filter=group.name+eq+'EngineeringTeam'"
        },
        "resourceType": "Group"
    },
    "quota": "0",
    "schemas": [
        "urn:soffid:com.soffid.iam.api.Group"
    ],
    "name": "EngineeringTeam",
    "obsolete": false,
    "description": "Enterprise engineering team",
    "parentGroup": "world",
    "attributes": {},
    "id": 1976559
}

Delete

Delete a group.

Please note that after this delete action, you will need to create again the group to use it in the next examples.

Request
DELETE http://<your-domain>/soffid/webservice/scim2/v1/Group/1976559
Response 204 No Content
204 No Content

Error response

For more information about error response visit https://bookstack.soffid.com/link/116#bkmrk-error-response