title | titleSuffix | description | author | manager | ms.service | ms.topic | ms.date | ms.author | ms.subservice | zone_pivot_groups |
---|---|---|---|---|---|---|---|---|---|---|
Set up sign-up and sign-in with a PingOne account |
Azure AD B2C |
Provide sign-up and sign-in to customers with PingOne accounts in your applications using Azure Active Directory B2C. |
garrodonnell |
CelesteDG |
azure-active-directory |
how-to |
12/2/2021 |
godonnell |
b2c |
b2c-policy-type |
[!INCLUDE active-directory-b2c-choose-user-flow-or-custom-policy]
[!INCLUDE active-directory-b2c-customization-prerequisites]
To enable sign-in for users with a PingOne (Ping Identity) account in Azure Active Directory B2C (Azure AD B2C), you need to create an application in the Ping Identity Administrator Console. If you don't already have a PingOne account, you can sign up at https://admin.pingone.com/web-portal/register
.
- Sign in to the Ping Identity Administrator Console with your PingOne account credentials.
- In the left menu of the page, select Connections, then next to Applications, select +.
- On the New Application page, select web app, then under OIDC, select Configure.
- Enter an Application name, and select Next.
- For the Redirect URLs, enter
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp
. If you use a custom domain, enterhttps://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
. Replaceyour-domain-name
with your custom domain, andyour-tenant-name
with the name of your tenant. Use all lowercase letters when entering your tenant name even if the tenant is defined with uppercase letters in Azure AD B2C. - Select Save and Continue.
- Under SCOPES select email, and profile, then select Save and Continue.
- Under OIDC attributes page, select Save and Close.
- From the list of applications, select the application you created.
- In the application Profile page, do the following:
- Next to the application name enable the app using the switch button.
- Copy the values of Client ID.
- Select the Configuration tab, and do the following:
- Copy the OIDC discovery endpoint.
- Show and copy the Client secret.
- Change the mode to edit. Then, under the Token endpoint authentication method change the value to Client Secret Post, and select Save
::: zone pivot="b2c-user-flow"
-
If you have access to multiple tenants, select the Settings icon in the top menu to switch to your Azure AD B2C tenant from the Directories + subscriptions menu.
-
Choose All services in the top-left corner of the Azure portal, and then search for and select Azure AD B2C.
-
Select Identity providers, and then select New OpenID Connect provider.
-
Enter a Name. For example, enter PingOne.
-
For Metadata url, enter the OIDC DISCOVERY ENDPOINT that you previously recorded. For example:
https://auth.pingone.eu/00000000-0000-0000-0000-000000000000/as/.well-known/openid-configuration
-
For Client ID, enter the client ID that you previously recorded.
-
For Client secret, enter the client secret that you previously recorded.
-
For Scope, enter
openid email profile
. -
Leave the default values for Response type, and Response mode.
-
(Optional) For the Domain hint, enter
pingone.com
. For more information, see Set up direct sign-in using Azure Active Directory B2C. -
Under Identity provider claims mapping, select the following claims:
- User ID: sub
- Display name: name
- Given name: given_name
- Surname: family_name
- Email: email
-
Select Save.
At this point, the PingOne identity provider has been set up, but it's not yet available in any of the sign-in pages. To add the PingOne identity provider to a user flow:
- In your Azure AD B2C tenant, select User flows.
- Click the user flow that you want to add the PingOne identity provider.
- Under the Social identity providers, select PingOne.
- Select Save.
- To test your policy, select Run user flow.
- For Application, select the web application named testapp1 that you previously registered. The Reply URL should show
https://jwt.ms
. - Select the Run user flow button.
- From the sign-up or sign-in page, select PingOne to sign in with PingOne account.
If the sign-in process is successful, your browser is redirected to https://jwt.ms
, which displays the contents of the token returned by Azure AD B2C.
::: zone-end
::: zone pivot="b2c-custom-policy"
You need to store the client secret that you previously recorded in your Azure AD B2C tenant.
- Sign in to the Azure portal.
- If you have access to multiple tenants, select the Settings icon in the top menu to switch to your Azure AD B2C tenant from the Directories + subscriptions menu.
- Choose All services in the top-left corner of the Azure portal, and then search for and select Azure AD B2C.
- On the Overview page, select Identity Experience Framework.
- Select Policy Keys and then select Add.
- For Options, choose
Manual
. - Enter a Name for the policy key. For example,
PingOneSecret
. The prefixB2C_1A_
is added automatically to the name of your key. - In Secret, enter your client secret that you previously recorded.
- For Key usage, select
Signature
. - Click Create.
To enable users to sign in using a PingOne account, you need to define the account as a claims provider that Azure AD B2C can communicate with through an endpoint. The endpoint provides a set of claims that are used by Azure AD B2C to verify that a specific user has authenticated.
You can define a PingOne account as a claims provider by adding it to the ClaimsProviders element in the extension file of your policy.
-
Open the TrustFrameworkExtensions.xml.
-
Find the ClaimsProviders element. If it does not exist, add it under the root element.
-
Add a new ClaimsProvider as follows:
<ClaimsProvider> <Domain>pingone.com</Domain> <DisplayName>PingOne</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="PingOne-OpenIdConnect"> <DisplayName>Ping Identity</DisplayName> <Protocol Name="OpenIdConnect" /> <Metadata> <Item Key="METADATA">Your PingOne OIDC discovery endpoint</Item> <Item Key="client_id">Your PingOne client ID</Item> <Item Key="response_types">code</Item> <Item Key="scope">openid email profile</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">0</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_PingOneSecret" /> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
-
Set the
METADATA
metadata to your PingOne OIDC discovery endpoint. -
Set
client_id
metadata to your PingOne client ID. -
Save the file.
[!INCLUDE active-directory-b2c-add-identity-provider-to-user-journey]
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="PingOneExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="PingOneExchange" TechnicalProfileReferenceId="PingOne-OpenIdConnect" />
</ClaimsExchanges>
</OrchestrationStep>
[!INCLUDE active-directory-b2c-configure-relying-party-policy]
- Select your relying party policy, for example
B2C_1A_signup_signin
. - For Application, select a web application that you previously registered. The Reply URL should show
https://jwt.ms
. - Select the Run now button.
- From the sign-up or sign-in page, select PingOne to sign in with PingOne account.
If the sign-in process is successful, your browser is redirected to https://jwt.ms
, which displays the contents of the token returned by Azure AD B2C.
::: zone-end
Learn how to pass a PingOne token to your application.