Orchestration SDKs

Step 2. Configure connection properties

PingOne Advanced Identity Cloud React Native

In this step, you install the project dependencies and configure the reactnative-oidc sample to connect to the OAuth 2.0 application you created in PingOne Advanced Identity Cloud.

Run all the commands on this page from the sample app’s project root folder, sdk-sample-apps/reactnative/reactnative-oidc.

Installing dependencies

  1. Install the JavaScript dependencies:

    yarn install
  2. iOS only, install the native CocoaPods dependencies:

    cd ios
    bundle install
    bundle exec pod install
    cd ..
  3. On Android only, configure a keystore and add the passwords as follows:

    1. Generate a debug signing keystore:

      keytool -genkeypair -v \
        -keystore android/app/debug.keystore \
        -alias androiddebugkey \
        -keyalg RSA -keysize 2048 -validity 10000 \
        -storepass 5tr0ngP@S5w0rd! -keypass 5tr0ngP@S5w0rd! \
        -dname "CN=Android Debug,O=Android,C=US"

      Replace 5tr0ngP@S5w0rd! with a password of your choice, using the same value for both the -storepass and -keypass parameters.

      The generated keystore file must be located in sdk-sample-apps/reactnative/reactnative-oidc/android/app/debug.keystore, and use the alias androiddebugkey.

      The build will fail if the keystore file is missing, or if the passwords in your Gradle properties do not match those used when generating the keystore.

    2. Add the keystore credentials to your global Gradle properties file, for example at ~/.gradle/gradle.properties:

      KEYSTORE_PASSWORD=5tr0ngP@S5w0rd!
      KEY_PASSWORD=5tr0ngP@S5w0rd!

Configuring connection properties

  1. Copy the example environment file:

    cp .env.example .env
  2. Open .env in a text editor and update the AIC_ values to match your environment:

    Example values in the .env file
    AIC_CLIENT_ID=sdkPublicClient
    AIC_DISCOVERY_ENDPOINT=https://openam-forgerock-sdks.forgeblocks.com/am/oauth2/realms/alpha/.well-known/openid-configuration
    AIC_REDIRECT_URI=org.forgerock.oidc://oauth2redirect
    AIC_SCOPES=openid, email, address, profile
    AIC_CLIENT_ID

    The client ID of the OAuth 2.0 application you registered in PingOne Advanced Identity Cloud.

    For example, sdkPublicClient

    AIC_DISCOVERY_ENDPOINT

    The .well-known OpenID Connect discovery endpoint for your tenant.

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

    You can view the .well-known endpoint for an OAuth 2.0 client in the PingOne Advanced Identity Cloud admin console:

    1. Log in to your PingOne Advanced Identity Cloud administration console.

    2. Click Applications, and then select the OAuth 2.0 client you created earlier. For example, sdkPublicClient.

    3. On the Sign On tab, in the Client Credentials section, copy the Discovery URI value.

      For example, https://openam-forgerock-sdks.forgeblocks.com/am/oauth2/alpha/.well-known/openid-configuration

    If you are using a custom domain, your .well-known is formed as follows:

    https://<custom-domain-fqdn>/.well-known/openid-configuration

    For example, https://openam-forgerock-sdks.forgeblocks.com/am/oauth2/realms/alpha/.well-known/openid-configuration

    AIC_REDIRECT_URI

    The redirect URI configured in your OAuth 2.0 client profile.

    This value must exactly match a redirect URI registered in your server.

    For this tutorial, the sample application is pre-configured to use the following redirect URI: org.forgerock.oidc://oauth2redirect.

    If you use a different redirect scheme, you must also update the values in the following locations:

    • Android - manifestPlaceholders["appRedirectUriScheme"] in sdk-sample-apps/reactnative/reactnative-oidc/android/app/build.gradle

    • iOS - CFBundleURLSchemes in sdk-sample-apps/reactnative/reactnative-oidc/ios/PingSampleApp/Info.plist

    • The OAuth 2.0 client settings in the server

    AIC_SCOPES

    A comma-separated list of OAuth 2.0 scopes to request.

    For example, openid, email, address, profile

  3. Save your changes.

With the environment file configured, the React Native app will pick up your settings the next time you build and run it.