Is it possible to create users via REST api?
Asked by Steve Silverman:

Can I create a user that authenticates against a Delegated Authentication Directory via the REST api? If so, can you provide an example using curl?

I've tried posting to /crowd/rest/usermanagement/latest/user but can't seem to get it right.


Answers:
author: Caspar Krieger
body: Here's an example of a POST to create a user (which should work for a delegated authentication directory as with any other writable directory):

```
curl -i -X POST http://crowd.corp.sf/crowd/rest/usermanagement/latest/user -H'Content-type: application/json' -H'Accept: application/json' -umyappname:myapppass -d'{    "email": "testuser@example.com",    "name": "test.user",    "password": {        "value": "testpass"    }}'
```

(you'll need to specify the real name and password for a Crowd application for the -u flag of course)

In general, Crowd uses the same entities (json or xml layout) for fetching things, updating things, and creating things, so - for example - if you can fetch a user, then that will get you 90% of the way to creating an identical user.

comments: author: Steve Silverman
body: Thanks Casper, I have done that but it only adds the user to the internal crowd directory. We have an internal directory and we also use Active Directory to authenticate users. We need to pre-populate the the LDAP directory for new users, otherwise they get an error on their first login attempt and need to wait until the directory syncronizes before they can login.


author: Caspar Krieger
body: Which directory the user is created in is determined by the ordering of the directories in the application definition in Crowd: the user will be created in the first directory with create user permission. This is intentional; the idea of Crowd applications is that they don't notice that they are getting users from several different directories.To ensure the user is created in a particular directory, you can either disable create user permission in the internal directory, or move the delegated auth directory to the top position in the Crowd application definition, or create a separate application in Crowd which only contains the delegated auth directory. I get the impression that you're writing a standalone script, so I recommend that last option.


author: manish
body: Hi ,

Is this possible with multiple groups can be created ? Does the REST API support this ?


author: fii
body: Hi ,

Is this possible with multiple users ? Does the REST API support this ?

Thanks

comments: author: chamani@willowdalegroup.com
body: I am having same problem here. Can this related to multiple users using one request ? Please update me if you get an solution.


author: Ahmad Awadallah
body: I know this is old but it may help others. This link describes what JIRA user directory is used when creating/deleting users via REST API.

<https://confluence.atlassian.com/jirakb/how-to-create-users-in-delegated-authentication-directory-using-jira-rest-api-779294020.html>

Hope this helps.

Ahmad

comments: author: Steve Silverman
body: Ahmad, I appreciate the response, however I am trying to add users in crowd, which has multiple directories. Even if the answer holds true for crowd, There is no way that I can see to re-order the directories,

As it stands, we automatically create import files with new users and then manually invoke the import users function via crowd.


author: Ahmad Awadallah
body: OK I see your point.


author: Craig Castle-Mead
body: As Casper mentioned, it's due to the directory order within the application you're authenticating as to run the command.

To ensure we're explicit about which directory the users are created in, we've had to create a unique application for each directory we want to create users/groups in, and then authenticate as that application for the REST call.

CCM


author: Steve Silverman
body: Just to clarify, I am able to add users to the Crowd Internal Directory. What I am attempting to do is to prepopulate a Delegated Directory that is connected to our company AD. Using the REST API, it does not seem to allow specification of which directory to add to, it always uses the CROWD Internal Directory.


author: Pedro Cora
body: Yes, according to <https://developer.atlassian.com/display/CROWDDEV/Crowd+REST+APIs> you can use Crowd's REST interface to create users.

For more details, take a look on the REST documentation at <https://developer.atlassian.com/display/CROWDDEV/Crowd+REST+Resources#CrowdRESTResources-UserResource>

;)

-- Pedro

comments: author: Steve Silverman
body: Pedro,thanks, I have already gone through all the documentation. I don't see where it allows you to specify which directory you want to add to. I have only been able to add to the default directory.


Tags: crowd-administration