Using external Okta as identity provider¶
You can use the Okta Org2Org integration to authenticate and optionally provision users from a source Okta org to a target org. The integration is installed and configured in the source org. You can use Okta Org2Org to connect multiple source orgs to a single Okta target org. This integration enables the source orgs to push users to the target org.
A common scenario where Org2Org is used is the hub-and-spoke model. In these scenarios, the spoke orgs are the source orgs and the hub org is the target org.
Architecture¶
Process overview¶
Chemaxon adds Customer's Idp¶
This is the start of the "hub" or target Okta configuration, i.e. Chemaxon's production Okta tenant (sometimes called "Customer Okta", but not to be confused with the Customer's own Okta tenant).
A SAML 2.0 identity provider is created. The name given is important, as it will be seen by users on the login screen, and should be recognizable by them. Suggested name is <client company> Okta
Following the configuration, the Hub ACS URL and audience URI are forwarded to the client, because they need to finalize their Okta Org2Org configuration with it.
SAML IdP instructions¶
- Open Chemaxon prod / Customer tenant Okta Admin dashboard
- Select Directory → Groups → Add group
- Create a group that will store all users created via this IdP. Suggested naming convention:
CXNC_PROD_<TENANT_ID>_IDP_USERS
- Create a group that will store all users created via this IdP. Suggested naming convention:
- Select Security → Identity Providers → Add Identity Provider
- Select SAML 2.0 IdP and click Next
- General settings
- Name: select an appropriate name - this will be seen by the Customers. Suggested:
<client company> Okta
- Name: select an appropriate name - this will be seen by the Customers. Suggested:
- Authentication settings
- IdP usage: SSO Only
- IdP username: select
idpuser.subjectNameId. (If the Customer is not using email addresses as the subject name, this may need re-configuring.) - Match against: Okta Username
- Filter: leave blank. (This could be used to limit access to this IdP by email address pattern if required.)
- Account Link Policy - Must be Automatic
- If no match is found: Create new user (JIT)
- JIT settings
- Profile source: Tick "Update attributes for existing users" checkbox
- Group Assignments: Assign to Specific Groups
- Specific Groups: the group created above named
CXNC_PROD_<TENANT_ID>_IDP_USERS
- SAML Protocol Settings
- IdP Issuer URI: use dummy value initially and update with what the client provides later
- IdP Single Sign-On URL: use dummy value initially and update with what the client provides later
- IdP Signature Certificate: use dummy value initially and update with what the client provides later
- The file received from the Customer might have
.certextension, simply rename it to.pemand the upload should work.
- The file received from the Customer might have
- Click Finish
- Forward the URLs below to the Customer
- Assertion Consumer Service URL (Hub ACS URL)
- Audience URI
Customer adds Okta Org2Org application¶
This is the spoke part of the hub-and-spoke configuration, or in other words, source Okta. The Customer, in their own Okta tenant, adds an Okta "Org2Org" application. The suggested name should be "Chemaxon Cloud" or "Chemaxon Cloud (Staging)", as appropriate.
Users on Customer side will need to be allocated to this application in order for the integration to work. The details of this belong to the Customer's IT, but our recommendation would be to create an Okta group, assign this group to the Org2Org application, and then assign users to this group as appropriate.
SAML application instructions¶
- Open Okta Admin dashboard
- Select Applications → Applications → Browse Catalog
- Search for and find "Okta Org2Org", and click Add Integration
General settings¶
- Enter application label:
Chemaxon CloudorChemaxon Cloud (environment name)- Base URL:
https://okta.chemaxon.com/
- Base URL:
- Application visibility: leave off
- Click next
Sign-on options¶
- Sign-on methods: change to SAML 2.0
- Under the SAML 2.0 box, there will be an area with the text "SAML 2.0 is not configured until you complete the setup instructions." Click the "View Setup Instructions" button.
- The Customer does not have to follow and perform the instructions on the page that opens. There are three pre-populated fields, however, that will need to be forwarded to Chemaxon. Scroll down to the "Configure SAML Protocol Settings". From here, copy/download and forward the following pieces of information to Chemaxon:
- IdP Issuer URI (text)
- IdP Single Sign On URL (text)
- IdP Signature Certificate (file)
- Advanced Sign-on Settings
- Hub ACS URL (Assertion Consumer Service URL) - as provided by Chemaxon
- Audience URI - as provided by Chemaxon
- Click "Save"
Chemaxon adds IdP routing rule¶
This is the final action on Chemaxon's side for configuring the IdP. ln order for Okta to offer the Customer's identity provider as a login option, a Routing Rule needs to be configured.
This routing rule states that if the user is trying to access the specific Okta application that was created above, i.e. the Terminus tenant, then the usable IdPs are "Okta" (self / Chemaxon's Customer Okta) and the Customer IdP created in step 1.
This leads to both Chemaxon's Okta and the Customer's Okta being available on the login screen.
Routing rule instructions¶
Note / risk: these routing rules are ordered. It is quite possible for a broad rule to have a higher priority than our specific tenant-level rules, and thereby override our rules. It is also quite possible to break many routing rules by adding such an "early catch-all" rule. It is also possible to add a new routing rule at such a position (i.e. as the last one) that it will never be triggered, since it is after a "catch-all rule". The general recommendation is to add routing rules for external IdPs at the top of the list.
- Open Chemaxon prod / Customer tenant Okta Admin dashboard
- Select Security → Identity Providers → Routing Rules
- Add Routing Rule
- Rule name:
CXNC_PROD_<TENANT_ID>_IDP - User is accessing: Any of the following applications
- Select the
CXNC_PROD_<TENANT_ID>application
- Select the
- Use this identity provider:
- Leave Okta (to allow Chemaxon Okta to still be used)
- Add
<client company> Okta
- Rule name:
Configuration is now complete. If the configuration has also been completed on Chemaxon's side (likely), then the integration should work. It can be tested by logging in to one of the Chemaxon products in your Chemaxon Cloud tenant.