Sign-in & directories

Okta

Connect your organisation's Okta – create an OpenID Connect app integration and enter it in DDM.

With Okta, your people sign in to DDM through your Okta sign-in page – with your Okta policies and MFA. You create an app integration in Okta and enter it in DDM under Settings › Single sign-on.

You need an Okta administrator who may create app integrations (Super Administrator or Application Administrator).

1. Create the app integration

New integration

In the Okta Admin Console, go to Applications › Applications › Create App Integration. Choose OIDC – OpenID Connect and Web Application, then Next.

General settings

  • App integration name: DDM
  • Grant type: Authorization Code (preselected)
  • Sign-in redirect URIs: the Redirect URI from DDM, Settings › Single sign-on – e.g. https://cms.documentdistributionmanager.com/api/auth/sso/callback
  • Sign-out redirect URIs: leave empty

Assignments

Under Controlled access, choose who may use DDM – everybody in your organisation, or selected groups. You can change it later under the app's Assignments tab.

Save

Click Save. On the app's General tab, copy the Client ID and the Client secret.

2. Enter it in DDM

Under Settings › Single sign-on › Identity provider:

FieldValue
Button labele.g. Okta or your company's name
Issuerhttps://<your org>.okta.com – the address of your Okta, without -admin
Client IDfrom Okta
Client secretfrom Okta
E-mail claimemail

Click Save, then Test connection, and switch on Single sign-on active – see Single sign-on.

If your company uses a custom authorisation server in Okta (Security › API), use its issuer instead – e.g. https://<your org>.okta.com/oauth2/default. Both work; the issuer is shown on the authorisation server's settings page.

Map groups

To have DDM put people into groups by their Okta groups:

  1. In Okta, open the app's Sign On tab and, under OpenID Connect ID Token, click Edit.
  2. Set Groups claim type to Filter, the claim name to groups, and a filter – e.g. Matches regex .* for all groups, or Starts with DDM- for only those meant for DDM. Save.
  3. In DDM, under Groups, enter groups as the Group claim and add a mapping for each group: the name of the Okta group and the DDM group.
With a custom authorisation server (…/oauth2/default), the groups claim is set up there instead – under Security › API › the server › Claims › Add Claim, name groups, include in the ID Token, value type Groups. If you limit it to a scope, enter that scope (e.g. groups) under Scopes in DDM.

With SAML instead

  1. Under Settings › Single sign-on, add a provider with Okta and SAML 2.0. DDM shows three values for it.
  2. In Okta, go to Applications › Applications › Create App Integration › SAML 2.0, name it DDM.
  3. Under Configure SAML, enter DDM's Reply URL (ACS URL) as the Single sign-on URL and DDM's Identifier (Entity ID) as the Audience URI (SP Entity ID). Name ID format: EmailAddress, Application username: Email.
  4. Under Attribute Statements, add email → user.email, firstName → user.firstName, lastName → user.lastName. For groups, add a Group Attribute Statement named groups with a filter, as above – and enter groups as the Group claim in DDM.
  5. After saving, copy the Metadata URL from the app's Sign On tab and enter it in DDM under Your provider's metadata › Metadata URL. Save.
  6. Assign people or groups under Assignments.

Common errors

MessageCauseSolution
400 Bad Request – The 'redirect_uri' parameter must be a Login redirect URIThe redirect URI in Okta differs from the one DDM showsCopy it from DDM again.
User is not assigned to the client applicationThe person is not assigned to the appAssign them or their group under Assignments.
There is no discovery document under this issuer (in DDM, on saving)The issuer contains -admin, or a path that does not existUse https://<your org>.okta.com.
The provider rejected the client ID or the secretCopied incompletely, or the secret was rotatedCopy both again from the General tab.
Your e-mail address is not on one of your organisation's confirmed domainsThe person's Primary email in Okta is on another domainCorrect it in Okta, or confirm the domain in DDM.

Alternatively: Okta's LDAP interface

Okta can also present its users as an LDAP directory. Connected as a directory service, DDM imports your people from Okta in advance, sorts them into groups by their Okta groups and blocks people who are deactivated – but they then type their Okta password into DDM's sign-in page, without Okta's MFA.

The two can be combined: the directory service imports and sorts people, single sign-on signs them in.

FieldValue
Host<your org>.ldap.okta.com
Port / Require TLS636 / on
Base DNdc=<your org>,dc=okta,dc=com
Bind DNa read-only administrator, e.g. uid=svc-ddm@company.com,dc=<your org>,dc=okta,dc=com – Okta shows the exact format on the LDAP interface page
Search base DN of the queryou=users,dc=<your org>,dc=okta,dc=com
Search filter(&(objectClass=inetOrgPerson)(mail=*))

Switch the interface on in Okta under Directory › Directory Integrations › Add LDAP Interface, and check in the preview whether your Okta groups appear under memberOf.

Okta sign-in for the whole installation

Whoever runs a DDM installation can also offer Sign in with Okta to every organisation on it – with one Okta app for all of them, set up on the server: OKTA_CLIENT_ID, OKTA_CLIENT_SECRET and OKTA_ISSUER (e.g. https://company.okta.com), redirect URI <BETTER_AUTH_URL>/api/auth/callback/okta. The button appears once all three are set. Like the Microsoft and Google sign-in for the whole installation, it creates no memberships and is the same for everybody; it suits a dedicated installation for one company. An organisation that wants its own Okta, its own rules or group mapping uses single sign-on as described above.