Ping SDKs

Step 2. Configure the sample app


In this step, you configure the kotlin-davinci sample to connect to the OAuth 2.0 application you created in PingOne.

  1. In Android Studio, open the sdk-sample-apps/android/kotlin-davinci project you cloned in the previous step.

  2. In the Project pane, switch to the Android view.

    android studio android view en
    Figure 1. Switching the project pane to Android view.
  3. In the Android view, navigate to davinci > kotlin+java > com.pingidentity.samples.app, and open EnvViewModel.kt.

  4. Edit the placeholder values provided in the testConfig object with the values from your PingOne server:

    testConfig object placeholder values
    val testConfig by lazy {
        DaVinci {
            logger = Logger.STANDARD
    
            // Oidc as module
            module(Oidc) {
                clientId = "<Client ID>"
                discoveryEndpoint = "<Discovery Endpoint>"
                scopes = mutableSetOf("<scope1>", "<scope2>", "…​")
                redirectUri = "<Redirect URI>"
                display = "Test config"
            }
        }
    }
    clientId

    The client ID from your OAuth 2.0 application in PingOne.

    For example, 6c7eb89a-66e9-ab12-cd34-eeaf795650b2

    discoveryEndpoint

    The .well-known endpoint from your OAuth 2.0 application in PingOne.

    How do I find my PingOne .well-known URL?

    To find the .well-known endpoint for an OAuth 2.0 client in PingOne:

    1. Log in to your PingOne administration console.

    2. Go to Applications > Applications, and then select your OAuth 2.0 client.

      For example, sdkPublicClient.

    3. On the Overview tab, expand the Connection Details section, and then copy the OIDC Discovery Endpoint value.

      Locating the .well-known URL in a PingOne client profile.

    For example, https://auth.pingone.com/3072206d-c6ce-ch15-m0nd-f87e972c7cc3/as/.well-known/openid-configuration

    scopes

    The scopes you added to your OAuth 2.0 application in PingOne.

    For example, "openid", "profile", "email", "phone"

    redirectUri

    The redirect_uri as configured in the OAuth 2.0 client profile.

    This value must exactly match a value configured in your OAuth 2.0 client.

    For example, org.forgerock.demo://oauth2redirect

    The result resembles the following:

    testConfig class example values
    val testConfig by lazy {
        DaVinci {
            logger = Logger.STANDARD
    
            // Oidc as module
            module(Oidc) {
                clientId = "6c7eb89a-66e9-ab12-cd34-eeaf795650b2"
                discoveryEndpoint = "https://auth.pingone.com/3072206d-c6ce-ch15-m0nd-f87e972c7cc3/as/.well-known/openid-configuration"
                scopes = mutableSetOf("openid", "profile", "email", "phone")
                redirectUri = "org.forgerock.demo://oauth2redirect"
                display = "Test config"
            }
        }
    }
  5. Copy your values from the testConfig object to the prodConfig object.

    You can use the details of a different PingOne instance, or OAuth 2.0 client in the prodConfig object.

    The only requirement is that the discoveryEndpoint values are valid URLs.

  6. Save your changes.