Least painful way to let customers login with the same passwords as in an existing mysql database?

Jamesp March 17, 2016

All of our potential service desk customers have user accounts for other internally developed services stored in a MySQL database as a simple row with a username and a salted hash in it. We don't use LDAP or anything fancy - just queries to the database from our own applications. 

What is the least painful way to get these username/salted-password-hash pairs into Crowd or JIRA Service Desk such that our users can log in without creating new service desk accounts and without opening our service desk to the general public?

1 answer

4 votes
Caspar Krieger
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 17, 2016

This depends on whether you want your mysql database to continue being the canonical store of users for your organisation. If you don't want that, I would:

  1. export those users from mysql to a csv file
  2. import the csv file into Crowd
  3. if your password hashing scheme is not natively supported by Crowd, write a custom password encoder for Crowd so that it can validate user's passwords against your stored passwords
  4. connect JIRA Service Desk to Crowd

If you do want your mysql user base to continue being the canonical store, you have the option of extending that with a script (/dedicated service) that periodically syncs from your mysql user base to Crowd using Crowd's REST APIs (easy but causes a delay when users are added/removed/updated), or ignoring the preceding and implementing a custom Crowd directory to read directly from your mysql database.

Suggest an answer

Log in or Sign up to answer