Is it possible to create users via REST api?

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.

5 answers

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.

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.

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.

0 votes
Pedro Cora Atlassian Team Oct 16, 2014

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

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.

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.

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

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.

OK I see your point.  

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

Hi ,

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

Thanks 

Suggest an answer

Log in or Join to answer
Community showcase
Teodora [Botron]
Published Thursday in Marketplace Apps

Jira Inferno: The Nine Circles of Jira Administration Hell

If you spend enough time as a Jira admin - whether you are managing a single, mid-sized instance, a large enterprise one or juggling multiple instances at once - you will eventually find yourself in ...

631 views 4 15
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot