How it Works
OwnID supports integration with Ping Advanced Identity Cloud through our pre-built Ping Advanced Identity Cloud Connector. Configuration on the Ping Advanced Identity Cloud side happens through your AIC Dashboard. Ensure you have an account with admin access in Ping Advanced Identity Cloud. Complete these five basic steps to integrate OwnID with Ping Advanced Identity Cloud: Step 1 - Create a service account Step 2 - Create the OwnID App Step 3 - Define a custom user attribute Step 4 - Configure an OIDC provider Step 5 - Configure screen flows Step 6 - Frontend IntegrationStep 1 - Create a service account
Create a new service account with thefr:idm:* scope. You should get service account id and a private JWK file.
These two values, along with the tenant FQDN and realm are the values required for the integration configuration in OwnID.
Reference: https://docs.pingidentity.com/pingoneaic/latest/tenants/service-accounts.html#create-a-new-service-account
Step 2 - Create the OwnID App
We’ll create a new OwnID app using the Ping Advanced Identity Cloud Connector. An OwnID App is what connects the existing identity provider used by your website with the OwnID widget you insert on the front end.
OwnID widget
Each of your OwnID Apps acts as the central point of configuration for each of your integrations. These no-code Apps are created, hosted, and maintained entirely within the OwnID Console environment.
When you create an App, it’s assigned a unique appId automatically. Use that appId in OwnID SDK interaction from your website’s front end.
To Create an OwnID App
Please contact the OwnID team to create a new OwnID app with Ping Advanced Identity Cloud Connector.Step 3 - Define a custom user attribute
- Go to AIC dashboard
- Go to Native Consoles > Identity Management.
- Click Configure > Managed Objects and click Alpha_user.
- On the Alpha_user page, click
Add a property. - Create property
custom_ownIdConnectionsof type string. - Edit it and fill in:
- Title:
ownIdConnections - Description:
OwnID Authentication Connections - Enable only the Viewable toggle
Securing User’s Personal DataOwnID does not store or process any user data. Users’ public keys and device information are stored on your platform.Private keys are kept exclusively on the user’s device and are never transmitted elsewhere.
Step 4 - Configure an OIDC provider
- Go to AIC dashboard
- Go to Native Consoles > Access Management
- On the left navbar, click Scripts > New Script and create a new script with the name
OwnID Profile Normalizationand typeSocial Identity Provider Profile Transformation. - Copy and paste the following code into the script editor and click Save:
- On the left navbar, click Services > Social Identity Provider Service.
- Choose Secondary Configurations, click
Add a Secondary Configuration, and select the Client configuration for providers that implement the OpenID Connect specification option. - Complete the following configuration and click Create
- Name:
OwnID - Auth ID Key:
sub - Client ID: Enter the client identifier from ownID app OIDC client id listing
- Authentication Endpoint URL:
http://{appUrl}/oidc/auth - Access Token Endpoint URL:
http://{appUrl}/oidc/token - Token Introspection Endpoint URL:
http://{appUrl}/oidc/token_info - User Profile Service URL:
http://{appUrl}/oidc/user_info - JWKS URI Endpoint:
http://{appUrl}/oidc/jwks - Redirect URL:
https://<tenant-env-fqdn>/login - Scope Delimiter: a space
" " - OAuth Scopes: Enter one by one -
openid profile email - Issuer:
{appUrl} - Transform Script: OwnID Profile Normalization
- Name:
- Now add Client Secret value to the new config (it can only be added after saving).
Step 5 - Configure screen flows
Login screen
- Go to AIC dashboard
- Go to Journeys > Custom Nodes and create a new custom node with the name
OwnID Receiverand typeBasic Authentication. Leave the Properties tab empty. In the Settings tab, add thenextoutcome. For Script, set the following content:
- Go to Journeys > Journeys and create a new journey with following nodes:
- Add a Page Node
- In this node, add a Username Collector
- Also in this node, add an Attribute Collector widget. To Attributes to Collect add the value
custom_ownIdConnections. Mark all attributes as required. Identity Attribute should renameuserName.
- Add an HTTP Client node and connect the Page Node to it. Set the following in node configuration:
-
Body Content Encoding:
JSON -
Rest URL:
https://<appUrl>/api/session/code(replace with your OwnID app URL) -
Method:
GET -
In Headers, add:
Key=
AuthorizationValue=Bearer ${objectAttributes.$.custom_ownIdConnections}(leave the expression as is) Make sure to click Done before clicking Save in the modal. -
In JSON Response Handler, add:
Key=
ownidCodeJSON Path=$.code(leave the expression as is) Make sure to click Done before clicking Save in the modal. - Leave other fields with default values.
-
Body Content Encoding:
- Add an HOTP Generator node and connect the HTTP Client node to it.
- Add the custom OwnID Receiver node created above and connect the HOTP Generator node to it.
- Add an OTP Collector Decision node and connect the OwnID Receiver node to it.
- Finish the flow by connecting the OTP Collector Decision node to your journey completion logic.

Register screen
- Go to AIC dashboard
- Go to Journeys and click to edit your Registration journey
- In the Page Node, select the Attribute Collector widget. Add to Attributes to Collect the value
custom_ownIdConnections
Step 6 - Frontend integration
For the login flow, implement theonLogin callback to expect a payload with following structure, which you can use to establish a session:
custom_ownIdConnections attribute when making the registration callback.
The value for this property can be retrieved at form submission time using the following logic, which will return an optional string:
Congratulations!
Enjoy your Ping Advanced Identity Cloud-integrated passwordless authentication!
Next Steps
Ready to deploy?
YES!
Take me to the Deployment Checklist