8 Integrating EDQ with Azure Active Directory
This chapter describes how to integrate Azure Active Directory (AD) with Oracle Enterprise Data Quality (EDQ).
This chapter includes the following sections:
- Registering the EDQ Application in Azure AD
EDQ can integrate with Azure AD as an identity store. You need to register the EDQ app in Azure AD so that user and group queries can use the Microsoft Graph v1.0 REST APIs to access data in Azure AD. - Enabling OpenID Connect SSO in the Application
You need to configure the redirect URIs to the EDQ servers to enable SSO using OpenID Connect. You can add the redirect URIs of any additional EDQ servers so that the single app registration can support multiple servers. - Enabling Multiple URI Redirects for OpenID Authentication
The OpenID integration framework is enhanced in EDQ 12.2.1.4.3 to allow configuration of multiple redirect URIs based on the incoming host name. This allows login through the load balancer or to a specific host behind the load balancer. - Editing the EDQ login.properties File
User authentication in EDQ is configured using a file named security/login.properties in the EDQ configuration area. The file should be created in the "local" configuration. If the directory "security" does not exist in this location you must create it manually. You need to edit login.properties and define a realm for Azure AD. - Enabling OAuth2 Bearer Authentication for Web Services
Authentication in Azure AD is based on SSO mechanisms such as OpenID Connect and SAML. There is no support for programmatic authentication with a username and password.
Registering the EDQ Application in Azure AD
EDQ can integrate with Azure AD as an identity store. You need to register the EDQ app in Azure AD so that user and group queries can use the Microsoft Graph v1.0 REST APIs to access data in Azure AD.
Parent topic: Integrating EDQ with Azure Active Directory
Enabling OpenID Connect SSO in the Application
You need to configure the redirect URIs to the EDQ servers to enable SSO using OpenID Connect. You can add the redirect URIs of any additional EDQ servers so that the single app registration can support multiple servers.
To enable SSO using OpenID Connect, follow the steps below:
Parent topic: Integrating EDQ with Azure Active Directory
Enabling Multiple URI Redirects for OpenID Authentication
The OpenID integration framework is enhanced in EDQ 12.2.1.4.3 to allow configuration of multiple redirect URIs based on the incoming host name. This allows login through the load balancer or to a specific host behind the load balancer.
You can set up logins to EDQ instances in the following ways:
- Using automatic URI: Set the redirect URL in login.properties to auto. In this case, the URL is derived from the HTTP request as
https://HOST/edq/oidc/callback
.For example, if the user refers to
https://lb.example.com/edq/
the redirect URI is constructed ashttps://lb.example.com/edq/oidc/callback
. If the user refers tohttps://instance1.example.com/edq/
the redirect URI is constructed ashttps://instance1.example.com/edq/oidc/callback
. The host name is derived from reading the X-Forwarded-Host HTTP header. If X-Forwarded-Host is not present, then the Host header is used. - Using host to URI mappings: Define a map from host name to URI in login.properties. In this case, the host name is compared against each mapping and the first match is used. In addition to the special value auto, you can use none to indicate that no redirection should take place. This allows normal internal logins to the EDQ Launchpad and other applications. For more control, the host name can be a regex, prefixed with ~. If there is no match, the default redirect URI is used.
For example,
azure.extra.oidc.redirect_map = localhost -> none, \ testhost -> none, \ myalias -> https://lb.example.com/edq/oidc/callback, ~host\\d+\.example\.com -> auto
In this example:
- References to
https://localhost/edq/
orhttps://testhost/edq/
do not redirect and give direct login access. - References to
https://myalias/edq/
use the load balancer redirect. - References to
https://host23.example.com/edq/
redirect tohttps://host23.example.com/edq/oidc/callback
.
- References to
Parent topic: Integrating EDQ with Azure Active Directory
Editing the EDQ login.properties File
User authentication in EDQ is configured using a file named security/login.properties in the EDQ configuration area. The file should be created in the "local" configuration. If the directory "security" does not exist in this location you must create it manually. You need to edit login.properties and define a realm for Azure AD.
- Ensure that EDQ supports HTTPS connections.
- The Marketplace images implement SSL in the Apache HTTPD front end, so no further actions are necessary.
- If you are connecting to EDQ without a web front end, HTTPS must be configured in the application server.
Refer to the WebLogic or Tomcat documentation for more details.
Set login.properties as follows:
# Realms
realms = azure
# yourdomain.com users and groups at Azure AD
azure.realm = yourdomain.com
azure.label = Azure AD
azure.type = azure
azure.clientid = clientid
azure.clientsecret = clientsecret
azure.tenant = tenant ID
azure.proxy = <proxy server>:port
azure.prof.groupfilter = startsWith(displayName, 'edq-')
azure.prof.userdisplayname = userName
azure.prof.defaultusergroup = edq-users
azure.extra.oidc = true
azure.extra.oidc.redirect_uri = https://server/edq/oidc/callback
azure.xgmap = edq-admins -> Administrators
-
- realm is the custom domain for your Azure AD instance.
- tenant is your Azure tenant ID.
- clientid and clientsecret are the values for your Azure AD application.
- proxy is the host and port of the proxy server required to access the internet from your EDQ server. If a proxy is not required, omit this setting.
- groupfilter is a Microsoft Graph $filter expression to select the groups used with EDQ. The value shown in the example returns all groups whose name starts with
edq-
. Refer to the Microsoft documentation for details about filtering. Omit this setting if you want all groups to be visible. - defaultusergroup is the name of the group containing the users who work with EDQ. Here the group
edq-users
has been used as an example. - extra.oidc.redirect_uri is the redirect URI entered in the Azure AD application. The URIs must match exactly.
- xgmap is the bootstrap group mapping required for admin login. Here as an example, the Azure group
edq-admins
is mapped to the EDQ Administrators group. You can set other group mappings in the EDQ console.
After the server is restarted, references to the EDQ launchpad will redirect to the Microsoft login page.
Parent topic: Integrating EDQ with Azure Active Directory
Enabling OAuth2 Bearer Authentication for Web Services
Authentication in Azure AD is based on SSO mechanisms such as OpenID Connect and SAML. There is no support for programmatic authentication with a username and password.
- Basic authentication for calls to EDQ web services.
- Authentication for JMX connections.
- Explicit login to the EDQ launchpad or Java applications.
- Connections to the built-in SSH (SFTP/SCP) server
To continue to use JMX (JConsole, JMXTools) connections to EDQ, the recommended approach is to enable the "internal" realm in login.properties:
realms = internal, azure
and use internal users such as "dnadmin" for JMX authentication.
For web service authentication with Azure AD, EDQ supports authentication using OAuth2 Bearer access tokens. A caller will use the client credentials or authorization code flows to acquire an access token and then pass this to EDQ in an Authorization header. For example,
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNa ......
User credentials obtained from the authorization code flow are mapped using the user identity in the same way as normal logins.
See the Azure documentation for more information about access tokens and token validation.
Client credentials are mapped using application roles, as described in the following sections:
- Configuring the Azure Application to Support Bearer Authentication with EDQ
- Creating Client Applications in Azure AD
- Editing the EDQ login.properties File to Map Roles
- Configuring Application Display in EDQ
Parent topic: Integrating EDQ with Azure Active Directory
Configuring the Azure Application to Support Bearer Authentication with EDQ
To configure the Azure application to support Bearer authentication with EDQ, follow the steps below:
Parent topic: Enabling OAuth2 Bearer Authentication for Web Services
Creating Client Applications in Azure AD
To create an application, follow these steps:
Parent topic: Enabling OAuth2 Bearer Authentication for Web Services
Editing the EDQ login.properties File to Map Roles
Add settings in login.properties to verify the audience and issuer claims in access tokens, and to add rolemap settings to map application roles to EDQ groups. Add the following to login.properties:
azure.extra.oauth2.token.aud = api://edq
azure.extra.oauth2.token.iss = https://sts.windows.net/TENANTID/
azure.extra.oauth2.rolemap = administration -> Administrators, callers -> Data Stewards
The rolemap
example setting maps the administration role to the EDQ Administrators group and the callers role to the EDQ Data Stewards group. If you are using groups for application authorization in EDQ, the rolemap setting is not required.
Parent topic: Enabling OAuth2 Bearer Authentication for Web Services
Configuring Application Display in EDQ
A client application that makes a call to EDQ services using OAuth2 is allocated an internal "user" ID in the same way as for standard users. In applications, such as Case Management, that display historical information regarding user updates, an application is displayed as App: NAME where NAME is the display name of the application in Azure AD. The display format may be configured using the appusername
profile property in login.properties:
azure.prof.appusername = OAuth2 application: {0}
In the property value {0} is replaced by the application name.
To enable application name display, the list of users retrieved from Azure AD is augmented with a query for applications, which uses the list servicePrincipals API. By default, applications that have never made a client call to EDQ are not included. When an application makes an initial call to EDQ, the name is not immediately available for display in Case Management. If this is a problem, the profile showallapps
property can be set such that all applications are retrieved:
azure.prof.showallapps = true
The appfilter
profile property can used to filter applications by name:
azure.prof.appfilter = startsWith(displayName, 'Studio')
If OAuth2 client calls are not used for an installation, application listing can be disabled by setting the appfilter
property to the special value 'none':
azure.prof.appfilter = none
In this case, the Graph Application.Read.All permission is not required.
Parent topic: Enabling OAuth2 Bearer Authentication for Web Services