Adding an identity provider - Google
Adding Google as an external identity provider (IdP) gives your users the option to sign on with Google when accessing your application.
Before you begin
Ensure that you have:
-
A PingOne organization with an environment added. Learn more in Starting a PingOne trial.
-
Added your application to PingOne. Learn more in Adding an application.
-
A Google account.
Registering the application with Google
When you register your application, Google generates an app ID and app secret for the application. You’ll need these values to connect the application to PingOne.
Steps
-
Go to the Google API Console.
If you haven’t created a Google account, you can do so now.
-
In the Projects list, select a project or create a new one.
-
On the left, click Credentials.
-
Click Create credentials, then select OAuth client ID.
If you’re prompted to configure an OAuth consent screen with information about your application, you can do that now.
-
Select the appropriate application type for your project and enter the following information:
-
Name: The name of the OAuth client ID, not the display name of the application.
-
Authorized JavaScript origins: The origin URI of the client application, for use with requests from a browser.
-
Authorized redirect URIs: The path in your application that users are redirected to after they authenticate with Google. Leave this value blank for now.
-
-
Click Create.
-
On the OAuth client page, copy the client ID and client secret to a secure location.
You can always access the client ID and client secret from the Credentials page in the API Console.
Next steps
Learn more in Manage OAuth Clients in the Google Cloud Platform Console Help documentation.
Enabling the Google People API
You must enable the Google People API if it’s not enabled already.
Steps
-
Go to the Google API Console.
-
In the Projects list, select a project or create a new one.
-
On the left, click Library.
-
Locate the Google People API.
If you need help finding the API, use the search bar.
-
Click Enable.
Next steps
Learn more in Enable and disable APIs in the Google API Console Help documentation.
Adding Google as an identity provider in PingOne
Configure the IdP connection in PingOne.
Before you begin
Ensure that registration is enabled in the authentication policy. Learn more in Editing an authentication policy.
You should have the following information ready:
-
Client ID
-
Client secret
Steps
-
In the PingOne admin console, go to Integrations > External IdPs and click .
-
Click Google for Identity Provider Type and click Next.
-
In the Create Profile step, enter the following:
-
Name: A unique identifier for the IdP.
-
Description (optional): A brief description of the IdP.
-
Population: Select a population to enable just-in-time registration from the IdP. This overrides the registration population defined in the authentication policy.
You can’t change the Icon and Sign-on Button in accordance with the provider’s brand standards.
-
-
Click Next.
-
In the Configure Connection step, enter the following:
-
Client ID: The client ID that you copied earlier from the IdP. You can find this information on the Credentials page in the Google API Console.
-
Client Secret: The client secret that you copied earlier from the IdP. You can find this information on the Credentials page in the Google API Console.
-
Callback URL: Click the Copy icon () to copy the Callback URL to a secure location. You’ll provide this value to the IdP later.
-
-
Click Next.
-
Map PingOne user attributes to IdP attributes. Learn more in Mapping attributes.
-
Enter the PingOne user profile attribute and the external IdP attribute. Learn more about attribute syntax in Identity provider attributes.
-
To use the advanced expression builder, click the Gear icon (). Learn more in Using the expression builder.
-
Select the Update Condition, which determines how PingOne updates its user directory with the values from the IdP. The options are:
-
Empty Only: Update the PingOne attribute only if the existing attribute is empty.
-
Always: Always update the PingOne directory attribute.
-
-
To add an attribute, click Add.
The following attributes can be mapped from Google:
Attribute Required scope Description Age Range
auth/profile.agerange.readThe age range of the user, such as
TWENTY_ONE_OR_OLDERBirthday Day
auth/user.birthday.readThe user’s birthday date
Birthday Month
auth/user.birthday.readThe user’s birthday month
Birthday Text
auth/user.birthday.textA free text string for the user’s birthday
This attribute is deprecated.
Birthday Year
auth/user.birthday.readThe user’s birthday year
Display Name
auth/userinfo.profileThe user’s display name, such as their full name
Email
auth/userinfo.emailThe user’s email address
ETag
None
A unique identifier assigned by the server the last time the resource was changed
Family Name
auth/userinfo.profileThe user’s surname
Gender
auth/user.gender.readThe user’s gender
Gender Formatted Value
auth/user.gender.readThe user’s gender formatted in the administrator’s local language
Given Name
auth/userinfo.profileThe user’s first name
Locale
auth/profile.language.readThe user’s language
Middle Name
auth/userinfo.profileThe user’s middle name
Nickname
auth/userinfo.profileA user’s nickname
Nickname Type
auth/userinfo.profileThe type of nickname, such as an alternate name the user is known by
Phone Number
auth/user.phonenumbers.readThe user’s phone number
Phone Number Canonical Form
auth/user.phonenumbers.readThe user’s phone number in the canonical international standard E.164 format with a maximum of 15 digits
Phone Number Formatted Type
auth/user.phonenumbers.readThe user’s phone number translated and formatted to the administrator’s locale
Phone Number Type
auth/user.phonenumbers.readThe type for the user’s phone number, such as home, mobile, or work
Photo URL
auth/userinfo.profileThe URL for the user’s photo from their Google profile
Resource Name
None
An identifier for a specific entity type, such as
PersonorContactGroupLearn more about the required scopes in the Google People API reference and OAuth 2.0 scopes in the Google API documentation.
-
-
Click Save.
-
To enable the IdP, click the toggle at the top of the details panel to the right (blue).
You can disable the IdP by clicking the toggle to the left (gray).
Adding the callback URL to the Google API Console
After copying the callback URL from PingOne, you’ll paste it in the Google API Console.
Steps
-
Go to the Google API Console.
-
In the Projects list, select the appropriate project.
-
Click Credentials.
-
In the Application list, click the appropriate application.
-
In the Authorized redirect URIs section, click Add URI and paste the callback URL that you copied from PingOne.