Configuring OIDC Authorization Code Grant Type for Web Forms
You can configure authentication for DSAR web forms via any certified Identity Provider (IdP) that supports the OpenID Connect (OIDC) authorization code grant type. This is useful for clients wanting to provide web forms to specific data subjects who will authenticate themselves using an existing account so their web form is pre-filled with information from the given account.
For more resources on this grant type, see OIDC Authorization Code Flow and OIDC Authorization Code FAQ.
To enable authentication on web forms
The following instructions use Okta as an example IdP. Documentation on other certified IdPs can be available as they are tested by the OneTrust team.
To create your web application with Okta
To authenticate web form URLs
To map scopes and claims
Scopes are used by IdPs to specify access privileges when issuing an access token. You can specify the scopes that should be requested from the IdP. Optionally, you can map claims from the scope to the corresponding web form field to pre-populate the field with data pulled from the IdP.
-
Scopes and claims need to be available in the ID token which is fetched through the authorization endpoint. In turn, they must be properly mapped for OneTrust to prefill the web form fields.
-
OneTrust does not support pre-population of information sent through the user info endpoint.
-
Scopes are case sensitive.
-
For OIDC, you must include
openidas a scope. The configuration will fail without it. -
For nesting attributes, see Nested Claims .
-
When mapping data to a country or state value, the IdP must send data to OneTrust using the ISO 3166 code standard (e.g. California = CA; United States = US).
Note:If mapping to the seeded State field, users must also map to Country as a required field.
-
Match claims according to your IdP's given fields. For more information on Okta's expected payloads and scope-dependent claims, see Okta ID Token Payload.
Note:OneTrust does not currently support Okta's given_name and family_name scopes. Please use the profile scope to collect names.
Nested Claims
You can map the nested attributes of a single scope. Reference your IdP's given claims or attributes to match corresponding web form fields to collect the nested data.
- For the Claims / Attributes, list all of the nested attributes that align with the scope.
- Match the nested claims to the corresponding web form field.
Sample Code
profile {
"address" :
{ "street_address": "123 Hollywood Blvd.",
"locality": "Los Angeles",
"region": "CA",
"postal_code": "90210",
"country": "US"
},
}
OIDC Authorization Code Flow
OIDC Authorization Code FAQ
What security controls does OneTrust provide for this flow type to protect the ID token in transit?
OneTrust encrypts the connection between web form and IdP using the Transport Layer Security (TLS) 1.2 protocol as a supported solution to securing communications. For more information about the module's security and encryption standards, see Privacy Rights Automation Security Guide.
Does OneTrust encrypt the ID token while in transit?
Currently, OneTrust does not support encryption of the token in favor of encrypting the whole connection via TLS. OneTrust must be able to parse the claims from an unencrypted ID token in order to support auto-population of web form fields.
You can vote or comment on a product enhancement for JWE support in the Ideas Exchange here.
Does OneTrust validate the received ID token and reject any JWT that doesn't validate coming from the customer?
Yes, OneTrust will always validate the token signatures. Tokens that fail to validate will display "Failed" status for their verification method.
For the OIDC Authorization Code flow, will the ID token be passed via URL parameter?
No, the token will be sent through a REST request.
Does OneTrust support custom ports for OIDC?
Currently, OneTrust doesn't support custom ports as a configurable setting in the application at this time. Please contact OneTrust to inquire about support for custom ports and IdPs.