Configuring OAuth

Configure the your Enterprise or Confidential application to act as a confidential application by providing client and resource server configurations.

  1. On the Configure OAuth pane, to protect resources for your application now, and to make the application visible on the My Apps page, click Configure this application as a resource server now
    Use the following table to provide the information needed to configure this application as a resource server.
    Option Description
    Access token expiration (seconds)

    Define how long (in seconds) the access token associated with your confidential application remains valid.

    Allow token refresh

    Select this checkbox if you want to use the refresh token that you obtain when using the Resource Owner, Authorization Code, or Assertion grant types.

    Refresh token expiration (seconds)

    Define how long (in seconds) the refresh token, which is returned with your access token and is associated with your confidential application, remains valid.

    Primary audience

    Enter the primary recipient where the access token of your confidential application is processed.

    Add secondary audience

    Enter the secondary recipients where the access token of your confidential application is processed, and click Add. The secondary recipient appears in Secondary audience column, and the Protected column allows you to know whether the secondary audience is protected or not.

    Add scopes

    To specify which parts of other applications that you want your application to access, add those scopes to your confidential application.

    Applications must interact securely with external partner or confidential applications. Also, applications from one Oracle Cloud service must interact securely with applications in another Oracle Cloud service. Each application has application scopes that determine which of its resources are available to other applications.

  2. On the Configure OAuth pane, click Configure this application as a client now.
    Use the following table to provide the information needed to configure this application as a client.
    Option Description
    Resource owner Use when the resource owner has a trust relationship with the confidential application, such as a computer operating system or a highly privileged application, because the confidential application must discard the password after using it to obtain the access token.
    Client credentials

    Use when the authorization scope is limited to the protected resources under the control of the client or to the protected resources registered with the authorization server.

    The client presents its own credentials to obtain an access token. This access token is either associated with the client's own resources, and not a particular resource owner, or is associated with a resource owner for whom the client is otherwise authorized to act

    JWT assertion

    Use when you want to use an existing trust relationship expressed as an assertion and without a direct user approval step at the authorization server.

    The client requests an access token by providing a user JSON web token (JWT) assertion or a third-party user JWT assertion and client credentials. A JWT assertion is a package of information that facilitates the sharing of identity and security information across security domains.

    SAML2 assertion

    Use when you want to use an existing trust relationship expressed as a SAML2 assertion and without a direct user approval step at the authorization server.

    The client requests an access token by providing a user SAML2 assertion or a third-party user SAML2 assertion and client credentials. A SAML2 assertion is a package of information that facilitates the sharing of identity and security information across security domains.

    Refresh token Select this grant type when you want a refresh token supplied by the authorization server, and then use it to obtain a new access token. Refresh tokens are used when the current access token becomes invalid or expires and don't require the resource owner to reauthenticate.
    Authorization code

    Select this grant type when you want to obtain an authorization code by using an authorization server as an intermediary between the client application and resource owner.

    An authorization code is returned to the client through a browser redirect after the resource owner gives consent to the authorization server. The client then exchanges the authorization code for an access (and often a refresh) token. Resource owner credentials are never exposed to the client.

    Implicit

    If the application can't keep client credentials confidential for use in authenticating with the authorization server, then select this checkbox. For example, your application is implemented in a web browser using a scripting language such as JavaScript. An access token is returned to the client through a browser redirect in response to the resource owner authorization request (rather than an intermediate authorization).

    Device code

    Select the Device Code grant type if the client doesn't have the capability to receive requests from the OAuth Authorization Server, for example, it can't act as an HTTP server such as game consoles, streaming media players, digital picture frames, and others.

    In this flow, the client obtains the user code, device code, and verification URL. The user then accesses the verification URL in a separate browser to approve the access request. Only then can the client obtain the access token using the device code.

    TLS client authentication

    Select the TLS Client Authentication grant type to use the client certificate to authenticate with the client. If a token request comes with an X.509 client certificate and the requested client is configured with the TLS Client Authentication grant type, the OAuth service uses the Client_ID in the request to identify the client and validate the client certificate with the certificate in the client configuration. The client is successfully authenticated only if the two values match.

    For added security, before enabling the TLS Client Authentication grant type, enable and configure OCSP validation and import a trusted partner certificate.

    Allow HTTP URLs

    Select this checkbox if you want to use HTTP URLs for the Redirect URL, Logout URL, or Post logout redirect URL fields. For example, if you're sending requests internally, want a non-encrypted communication, or want to be backward-compatible with OAuth 1.0, then you can use an HTTP URL.

    Also, select this checkbox when you're developing or testing your application and you might not have configured SSL. This option isn't recommended for production deployments.

    Redirect URL

    Enter the application URL where the user is redirected after authentication.

    Note: Provide an absolute URL. Relative URLs aren't supported.

    Post-logout redirect URL

    Enter the URL where you want to redirect the user after logging out of the application.

    Logout URL

    Enter the URL where the user is redirected after logging out of the confidential application.

    Client type

    Select the client type. The available client types are Trusted and Confidential. Choose Trusted if the client can generate self-signed user assertions. Then, to import your signing certificate that the client uses to sign its self-signed assertion, click Import certificate.

    Allowed operations
    • Select the Introspect checkbox if you want to allow access to a token introspection end point for your application.

      If the confidential application can't keep client credentials confidential for use in authenticating with the authorization server, then select this checkbox. For example, your confidential application is implemented in a web browser using a scripting language such as JavaScript.

      An access token is returned to the client through a browser redirect in response to the resource owner authorization request (rather than an intermediate authorization code).

    • Select the On behalf of checkbox if you want to ensure that access privileges can be generated from the user's privileges alone. This allows the client application to access endpoints to which the user has access, even if the client application by itself would not normally have access.

    ID token encryption algorithm

    Select one of the content encryption algorithms.

    Bypass consent

    If enabled, this attribute overwrites the Require consent attribute for all the scopes configured for the application, and then no scope will require consent.

    Client IP address
    • Anywhere: The token request is allowed from anywhere. There's no perimeter.
    • Restrict by network perimeter: Select the network perimeters so that a token request is only allowed from them.
    Authorized resources

    Select one of the following options to allow a client application to access authorized resources:

    Note: The option to define an authorized resource is available to only Confidential applications. Trust scope can't be defined for Mobile applications.

    Add resources

    If you want your application to access APIs from other applications, then check Add resources in the Token issuance policy section. Then, in the Add scope window, select the applications that your application references.

    Note: You can delete scopes by clicking the x icon next to the scope. However, you can't delete scopes that are protected.

    Add app roles

    Check Add app roles. In the Add app roles window, select the application roles that you want to assign to this application. This enables your application to access the REST APIs that each of the assigned application roles can access.

    For example, select Identity Domain Administrator from the list. All REST API tasks available to the identity domain administrator will be accessible to your application.

    You can delete the application roles by selecting the application role and then clicking Remove.

    Note: You can't delete protected application roles.

  3. Click Save changes.