Okta natively does not allow you to sync users to Office 365 contacts; they either exist as users in Office 365, or they don’t exist at all.
In hybrid scenarios where you are doing a staged migration to Office 365, or where you simply manage your contacts in Okta, you may want to populate the Global Address List in Office 365 with your Okta users.
I’ve written a simple solution for this, you will require:
- Okta Admin Access (to obtain a token)
- Office 365 credentials (to write / modify Contacts)
- An Azure Subscription (for automation)
The solution will sync your users in Okta to Office 365, take note of the following:
- It only syncs if the user isn’t already synced by AADConnect
- It only syncs users with both a first and lastname and valid email address
- It will update/sync the following fields:
- Zip Code
1. Retrieve an Okta API token
Save the value you are provided, you will need it later.
2. Find your Okta API URL
The section marked in red contains your company name, use that to create an URL such as this:
here, ‘lieben’ is my company name, insert yours there. Save this URL, you’ll need it later, do not use a trailing /.
3. Go to portal.azure.com, log in and create an automation account (default) or select your existing automation account
4. Import my script as a runbook into your Automation Account
Alternatively, you can get the source from GitLab
5. Create a credential asset in your automation account with your Office 365 credentials for the script to use6. Create another credential asset, this one with your OKTA TOKEN, fill in the OKTA token as password, you can leave the username empty.
7. Under runbooks, navigate to the imported runbook and click on it, then click edit -> publish to allow scheduling of the runbook.
I don’t recommend running it more than once a day. If there are issues, you’ll be able to find them under the Jobs section of your automation account.