Atlassian products are used everywhere on the planet. From small businesses to large organizations, almost everyone, including Jessica Alba, has put in a Jira ticket or edited a Confluence page at least once.
The cornerstone of identity management in the Atlassian ecosystem is called Atlassian Crowd. Crowd has two main features: first it acts as a virtual directory for Atlassian server products (e.g. Jira, Confluence, HipChat Server, Bamboo, Bitbucket, FishEye/Crucible), secondly it provides Single Sign-On between the applications of the Atlassian stack.
In the on-premise era, organizations used to connect Crowd to their internal LDAP or Active Directory. Now we are in the cloud era, more and more organizations move their Atlassian server products to services like AWS, Microsoft Azure or Rackspace, which usually cannot connect to their on-premise Active Directory. In the meantime, those organizations often migrate their on-premise Exchange/Sharepoint services to Office 365.
Thus, ODCC aims at connecting Atlassian applications hosted in Cloud environments to Microsoft cloud-based identity service.
What it does
Cleito ODCC allows users to log into their Atlassian server products - or any other application using Atlassian Crowd as its user management system - with their Office 365 account.
Thanks to Cleito ODCC, users do not have to deal with multiple accounts anymore. Their Office 365 account is their Atlassian Stack account. When users reach an Atlassian product login page, they just have to enter their Office 365 username and password. That is as simple as that.
Cleito ODCC also allows administrators to manage Atlassian applications users and groups in one centralized place which is Office 365. What they see in the Office 365 administration portal are actually the users and groups they get in Crowd and in the rest of their Atlassian applications.
With Cleito ODCC, the Office 365 administration portal becomes the single place of identity administration for the Atlassian Stack!
How I built it
Cleito ODCC is basically a Jar file that you install in Crowd, so Java was the language to use. The plugin mostly uses Microsoft Graph API and a bit of Azure AD Graph API and Office 365 Exchange Web Services (EWS).
Challenges I ran into
Not so many actually as Microsoft Graph API is well-documented and provides most of the functions I really needed.
Accomplishments that I'm proud of
Well, I guess it's always very satisfying to connect applications and environments that are not natively connected. In this special case, it's even more satisfying because both Atlassian products and Microsoft Office 365 are very popular.
What I learned
I obviously learned a lot about Microsoft Graph API and a bit more than I already knew about Atlassian Crowd's internal API :-)
What's next for Office 365 Directory Connector for Crowd (ODCC)
Well, as we have just released the very first version of our product, I guess our clients will tell :-)