By: Sakit Atakishiyev user 01 Jun 2018 at 9:45 a.m. CDT

9 Responses
Sakit Atakishiyev gravatar

Hi everyone. I created a new user with SCIM API. This is the my input

POST /identity/restv1/scim/v2/Users HTTP/1.1
Host: login.eis.az
Accept: application/scim+json
Content-Type: application/json
Authorization: Bearer ab8df4bc-ecb6-4a61-8dd9-2c332f1bc059
Cache-Control: no-cache

{
    "schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],
    "userName":"sakit.a@hotmail.com",
    "active":true,
    "urn:ietf:params:scim:schemas:extension:gluu:2.0:User":{
        "givenName":"Sakit",
        "sn":"Atakişiyev",
        "middleName":"Ramiz",
        "mail":"sakit.a@hotmail.com",
        "uid":"sakit.a@hotmail.com",
        "userPassword":"1234567",
        "gluuStatus":true,
        "displayName":"Sakit Ramiz Atakişiyev"
    }
}

This is code works and create a new user. As you see from the request I set my new user's gluuStatus and active status as true. But my new user could not login to the system even my user status is active. I need to update my user status active from ui after doing this my user can login. Is it bug or not?

By Thomas Gasmyr Mougang staff 03 Jun 2018 at 5:36 a.m. CDT

Thomas Gasmyr Mougang gravatar

Hi Sakit,

A valid user add json should look like this:

{
  "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
  "userName": "john",
  "name": { "familyName": "Smith", "givenName": "Joey" },
  "displayName": "Joe Smith",
  "userPassword":"1234567",
  "active":true,
  "emails": [
    {
      "value": "jsmith@foodmafia.com",
      "type": "work",
      "primary": true
    }
  ],
  "phoneNumbers": [
    { "value": "5 123 8901" }, { "value": "5 123 8902" }
  ]
}

By Sakit Atakishiyev user 03 Jun 2018 at 9:01 a.m. CDT

Sakit Atakishiyev gravatar

Thomas Gasmy so to activate the new user I should set at least one primary email. Do I understand correctly?

By Thomas Gasmyr Mougang staff 03 Jun 2018 at 10:46 a.m. CDT

Thomas Gasmyr Mougang gravatar

Why do you think so?

By Sakit Atakishiyev user 04 Jun 2018 at 12:19 a.m. CDT

Sakit Atakishiyev gravatar

OK. With your example I could not set any custom attribute am I right? To do this I should use urn:ietf:params:scim:schemas:extension:gluu:2.0:User schema to set any custom attributes to my user. And only difference with your example is I did not set any primary email. So I think that even we set status as active we must set one primary email. If this is not reqiured why my user could not login after I created. As you see from my example I set user status as active but when my user try to login he/she could not login. For checking I enabled scim_event_handler dynamic script and print all user info which I send to scim endpoint. The result is scim set user gluuStatus attribute as ACTIVE but when I call user.getStatus() it prinits None. If you need I can share the print result.

By Thomas Gasmyr Mougang staff 04 Jun 2018 at 3:52 a.m. CDT

Thomas Gasmyr Mougang gravatar

Hello,

> If this is not reqiured why my user could not login after I created

No required.

Please check the documentation.

By Sakit Atakishiyev user 04 Jun 2018 at 5:12 a.m. CDT

Sakit Atakishiyev gravatar

Thomas. I already read the documentation. I can create a new user with scim api. Problem is I could not login with my new user to the system.

By Thomas Gasmyr Mougang staff 04 Jun 2018 at 5:16 a.m. CDT

Thomas Gasmyr Mougang gravatar

Follow the step provide in the documentation and you should be able to create users and they will be able to login.

The documentation contains more than one example.

By Thomas Gasmyr Mougang staff 04 Jun 2018 at 5:20 a.m. CDT

Thomas Gasmyr Mougang gravatar

Change your json to look like this:

{
    "schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],
    "userName":"sakit.a@hotmail.com",
    "active":true,
    "givenName":"Sakit",
    "sn":"Atakişiyev",
    "middleName":"Ramiz",
    "mail":"sakit.a@hotmail.com",
    "uid":"sakit.a@hotmail.com",
    "password":"1234567",
    "displayName":"Sakit Ramiz Atakişiyev"
}

By Sakit Atakishiyev user 04 Jun 2018 at 5:33 a.m. CDT

Sakit Atakishiyev gravatar

I did what you said and got the below error

Can not instantiate value of type [map type; class java.util.LinkedHashMap, [simple type, class java.lang.String] -> [simple type, class java.lang.Object]] from JSON String; no single-String constructor/factory method (through reference chain: org.gluu.oxtrust.model.scim2.user.UserResource["givenName"])

I registered a new attribute(for example car_number etc) in this case to set this attribute how do I change my request input?