Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Crowd scripting synchronization

Richard Heasman June 18, 2019

Does anyone have a solution for being able to synchronize directories in crowd prgrammatically? It can be over HTML, on the commandline in BASH, anything. We need to have a sync called immediately as part of an integrated workstream and a delay waiting for a scheduled/regular sync is not acceptable.

1 answer

0 votes
Gaurav
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
June 19, 2019

Hi @Richard Heasman

Right now there is no such REST API available in Crowd, but speaking technically you can do it using HTML manipulation, and hitting a certain URL.

I cannot provide you details about above both, but you can check out you Crowd's directory view, and capture the request which it makes to backend, when you hit 'Synchronize'

 

Thanks,

Gaurav Agarwal

Richard Heasman June 20, 2019

Thanks Gaurav. I have been trying to do this for some time; each time I hit the URL I get a login error. I have set up cookies / sessions / all manner of authentication and still cannot get this authorised. Do you have any idea about authorising this call?

 

Thanks for your response

Gaurav
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
June 20, 2019

Hi @Richard Heasman

 

Can you paste the HAR files of the request that you are making, so that I can inspect and tell you what's wrong. 

Richard Heasman June 20, 2019

curl -X GET -u "adminUsr:adminPW" --silent --output /dev/null -c - 'https://jiraURL.com/login' --insecure

Output is:

# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

#HttpOnly_domain.com FALSE /jira FALSE 0 JSESSIONID JSESSVALUE
#HttpOnly_.domain.com TRUE / FALSE 0 crowd.token_key CTOKENVALUE
domain.com FALSE /jira FALSE 0 atlassian.xsrf.token AXTOKENVALUE

 

Then using those values:


curl -X POST -H "Accept: application/json" -b 'JSESSIONID=$JSESSVALUE;crowd.token_key=$CTOKENVALUE;atlassian.xsrf.token=$AXTOKENVALUE' 'https://crowdURL.com/crowd/console/secure/directory/synchconnectorcache!execute.action?ID=6553602&atl_token=$CTOKENVALUE' --insecure

Gaurav
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
June 20, 2019

Hi @Richard Heasman ,

One problem, that I can spot right away is that you are logging in to Jira, but using the JSESSIONID, and AXTOKENVALUE of Jira in Crowd.

It will not work, Crowd is a separate web application, you can use the CTOKENVALUE given by Jira to login to Crowd, but you would need to get the HTML page of directory view in Crowd, and then capture the XSRF token and JSESSIONID from this page's cookies header, and then use it in the final call you are making.

 

Thanks,

Gaurav

Richard Heasman June 21, 2019

Thanks Guarav - yes I know it points at JIRA, I found another post to indicate this was the way to go.. Ok then - following your guidance, I've tried this:

 

curl -X GET -u "adminUsr:adminPW" --silent --output /dev/null -c - 'https://CrowdURL/crowd/console/secure/directory/synchconnectorcache' --insecure

response:
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

#HttpOnly_DOMAIN.COM FALSE /crowd FALSE 0 JSESSIONID JSESSVALUE

 

curl -X POST -H "Accept: application/json" -b 'JSESSIONID=$JSESSVALUE 'https://CrowdURL/crowd/console/secure/directory/synchconnectorcache!execute.action?ID=6553602&atl_token=$JSESSVALUE' -vvv --insecure

Still nothing.

I accept I'm a little green in the web transfer area - would you be able to give me an example?

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events