Configuración del registro y del inicio de sesión con una cuenta de PingOne mediante Azure Active Directory B2C

Antes de comenzar, use el selector Elección de un tipo de directiva para elegir el tipo de directiva que va a configurar. Azure Active Directory B2C ofrece dos métodos para definir el modo en que los usuarios interactúan con las aplicaciones: por medio de flujos de usuario predefinidos o de directivas personalizadas totalmente configurables. Los pasos necesarios en este artículo son diferentes para cada método.

Requisitos previos

Creación de una aplicación PingOne

Para habilitar el inicio de sesión para los usuarios con una cuenta de PingOne (identidad de ping) en Azure Active Directory B2C (Azure AD B2C), deberá crear una aplicación en la consola de administrador de identidad de ping. Para obtener más información, consulte Adición o actualización de una aplicación OIDC en la documentación de identidad de ping. Si aún no tiene una cuenta de PingOne, puede registrarse en https://admin.pingone.com/web-portal/register.

  1. Inicie sesión en la consola de administrador de identidad de ping con las credenciales de su cuenta de PingOne.
  2. En el menú izquierdo de la página, seleccione Conexiones y, después, junto a Aplicaciones, seleccione +.
  3. En la página Nueva aplicación, seleccione aplicación web y, a continuación, en OIDC, seleccione Configurar.
  4. Escriba un Nombre de aplicación y seleccione Siguiente.
  5. Para Direcciones URL de redireccionamiento, escriba https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp. Si usa un dominio personalizado, escriba https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Reemplace your-domain-name por el dominio personalizado, y your-tenant-name por el nombre del inquilino. Cuando especifique el nombre de inquilino, escriba todas las letras en minúscula, aunque se haya definido con letras en mayúscula en Azure AD B2C.
  6. Seleccione Guardar y continuar.
  7. En ÁMBITOS, seleccione correo electrónico y perfil y, a continuación, Guardar y continuar.
  8. En atributos de OIDC, seleccione Guardar y cerrar.
  9. En la lista de aplicaciones, seleccione la aplicación que ha creado.
  10. En la página Perfil la aplicación, haga lo siguiente:
    1. Junto al nombre de la aplicación, habilite la aplicación mediante el botón modificador.
    2. Copie los valores de Id. de cliente.
  11. Seleccione la pestaña Configuración y haga lo siguiente:
    1. Copie el punto de conexión de detección de OIDC.
    2. Muestre y copie el Secreto de cliente.
    3. Cambie el modo a edición: A continuación, en Token endpoint authentication method (Método de autenticación de punto de conexión de token), cambie el valor a Client Secret Post (Publicación de secreto de cliente) y seleccione Guardar.

Configuración de PingOne como proveedor de identidades

  1. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar al inquilino de Azure AD B2C desde el menú Directorios y suscripciones.

  2. Elija Todos los servicios en la esquina superior izquierda de Azure Portal, y busque y seleccione Azure AD B2C.

  3. Seleccione Proveedores de identidades y luego Nuevo proveedor de OpenID Connect.

  4. Escriba un nombre. Por ejemplo, escriba PingOne.

  5. En URL de metadatos, escriba el PUNTO DE CONEXIÓN DE DETECCIÓN DE OIDC que registró anteriormente. Por ejemplo:

    https://auth.pingone.eu/00000000-0000-0000-0000-000000000000/as/.well-known/openid-configuration
    
  6. En Id. de cliente, escriba el id. de cliente que registró anteriormente.

  7. En Secreto de cliente, escriba el secreto de cliente que ha anotado anteriormente.

  8. En Ámbito, escriba openid email profile.

  9. Deje los valores predeterminados para Tipo de respuestay Modo de respuesta.

  10. (Opcional) En Sugerencia de dominio, escriba pingone.com. Para más información, consulte Configuración de inicio de sesión directo con Azure Active Directory B2C.

  11. En Asignación de notificaciones del proveedor de identidades, seleccione las siguientes notificaciones:

    • Id. de usuario: sub
    • Nombre para mostrar: name
    • Nombre propio: given_name
    • Apellido: family_name
    • Correo electrónico: email
  12. Seleccione Guardar.

Adición del proveedor de identidades de PingOne a un flujo de usuario

En este punto, se ha configurado el proveedor de identidades de PingOne, pero aún no está disponible en ninguna de las páginas de inicio de sesión. Para agregar el proveedor de identidades de PingOne a un flujo de usuario:

  1. En el inquilino de Azure AD B2C, seleccione Flujos de usuario.
  2. Haga clic en el flujo de usuario al que quiere agregar el proveedor de identidades de PingOne.
  3. En Proveedores de identidades sociales, seleccione PingOne.
  4. Seleccione Guardar.
  5. Para probar la directiva, seleccione Ejecutar flujo de usuario.
  6. En Aplicación, seleccione la aplicación web denominada testapp1 que registró anteriormente. La dirección URL de respuesta debe mostrar https://jwt.ms.
  7. Seleccione el botón Ejecutar flujo de usuario.
  8. En la página de registro o de inicio de sesión, seleccione PingOne para iniciar sesión con la cuenta de PingOne.

Si el proceso de inicio de sesión se completa correctamente, el explorador se redirige a https://jwt.ms, que muestra el contenido del token devuelto por Azure AD B2C.

Creación de una clave de directiva

Debe almacenar el secreto de cliente que haya registrado previamente en el inquilino de Azure AD B2C.

  1. Inicie sesión en Azure Portal.
  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar al inquilino de Azure AD B2C desde el menú Directorios y suscripciones.
  3. Elija Todos los servicios en la esquina superior izquierda de Azure Portal, y busque y seleccione Azure AD B2C.
  4. En la página de introducción, seleccione Identity Experience Framework.
  5. Seleccione Claves de directiva y luego Agregar.
  6. En Opciones, elija Manual.
  7. Escriba un nombre para la clave de directiva. Por ejemplo, PingOneSecret. Se agregará el prefijo B2C_1A_ automáticamente al nombre de la clave.
  8. En Secreto, escriba el secreto de cliente que haya registrado previamente.
  9. En Uso de claves, seleccione Signature.
  10. Haga clic en Crear.

Configuración de PingOne como proveedor de identidades

Para permitir que los usuarios inicien sesión con una cuenta de PingOne, debe definir la cuenta como proveedor de notificaciones con el que Azure AD B2C pueda comunicarse mediante un punto de conexión. El punto de conexión proporciona un conjunto de notificaciones que Azure AD B2C usa para comprobar que un usuario concreto se ha autenticado.

Para definir una cuenta de PingOne como proveedor de notificaciones, agréguela al elemento ClaimsProvider en el archivo de extensión de la directiva.

  1. Abra el archivo TrustFrameworkExtensions.xml.

  2. Busque el elemento ClaimsProviders. Si no existe, agréguelo debajo del elemento raíz.

  3. Agregue un nuevo elemento ClaimsProvider tal como se muestra a continuación:

    <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>
    
  4. Establezca los metadatos METADATA en el punto de conexión de detección de OIDC de PingOne.

  5. Establezca los metadatos client_id en el id. de cliente de PingOne.

  6. Guarde el archivo.

Adición de un recorrido del usuario

En este momento, el proveedor de identidades ya se ha configurado, pero no está disponible en ninguna de las pantallas de inicio de sesión. Si no tiene su propio recorrido del usuario personalizado, cree un duplicado de un recorrido del usuario de la plantilla existente; de lo contrario, continúe con el paso siguiente.

  1. Abra el archivo TrustFrameworkBase.xml del paquete de inicio.
  2. Busque y copie todo el contenido del elemento UserJourney que incluye Id="SignUpOrSignIn".
  3. Abra el archivo TrustFrameworkExtensions.xml y busque el elemento UserJourneys. Si el elemento no existe, agréguelo.
  4. Pegue todo el contenido del elemento UserJourney que ha copiado como elemento secundario del elemento UserJourneys.
  5. Cambie el identificador del recorrido del usuario. Por ejemplo, Id="CustomSignUpSignIn".

Adición del proveedor de identidades a un recorrido del usuario

Ahora que tiene un recorrido del usuario, agregue el nuevo proveedor de identidades al recorrido del usuario. En primer lugar, agregue un botón de inicio de sesión y, después, vincule el botón a una acción. La acción es el perfil técnico que creó anteriormente.

  1. Busque el elemento del paso de orquestación que incluye Type="CombinedSignInAndSignUp" o Type="ClaimsProviderSelection"en el recorrido del usuario. Normalmente es el primer paso de orquestación. El elemento ClaimsProviderSelections contiene una lista de proveedores de identidades con los que un usuario puede iniciar sesión. El orden de los elementos controla el orden de los botones de inicio de sesión que se presentan al usuario. Agregue un elemento XML ClaimsProviderSelection. Establezca el valor de TargetClaimsExchangeId en un nombre descriptivo.

  2. En el paso de orquestación siguiente, agregue un elemento ClaimsExchange. Establezca el Id en el valor del identificador de intercambio de notificaciones de destino. Actualice el valor de TechnicalProfileReferenceId al del identificador del perfil técnico que creó anteriormente.

En el siguiente código XML se muestran los dos primeros pasos de orquestación de un recorrido del usuario con el proveedor de identidades:

<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>

Configuración de la directiva de usuario de confianza.

La directiva de usuario de confianza, por ejemplo SignUpSignIn.xml, especifica el recorrido del usuario que ejecutará Azure AD B2C. Busque el elemento DefaultUserJourney en el usuario de confianza. Actualice ReferenceId para que coincida con el identificador del recorrido del usuario, en el que agregó el proveedor de identidades.

En el ejemplo siguiente, para el recorrido de usuario CustomSignUpSignIn, el ReferenceId está establecido en CustomSignUpSignIn:

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Carga de la directiva personalizada

  1. Inicie sesión en Azure Portal.
  2. Seleccione el icono Directorio y suscripción en la barra de herramientas del portal y, luego, elija el directorio que contiene el inquilino de Azure AD B2C.
  3. En Azure Portal, busque y seleccione Azure AD B2C.
  4. En Directivas, seleccione Identity Experience Framework.
  5. Seleccione Cargar directiva personalizada y, a continuación, cargue los dos archivos de directivas que ha cambiado, en el siguiente orden: la directiva de extensiones, por ejemplo TrustFrameworkExtensions.xml, luego la directiva de usuarios de confianza, como SignUpSignIn.xml.

Prueba de la directiva personalizada

  1. Seleccione la directiva de usuarios de confianza, por ejemplo B2C_1A_signup_signin.
  2. En Aplicación, seleccione la aplicación web que registró anteriormente. La dirección URL de respuesta debe mostrar https://jwt.ms.
  3. Seleccione el botón Ejecutar ahora.
  4. En la página de registro o de inicio de sesión, seleccione PingOne para iniciar sesión con la cuenta de PingOne.

Si el proceso de inicio de sesión se completa correctamente, el explorador se redirige a https://jwt.ms, que muestra el contenido del token devuelto por Azure AD B2C.

Pasos siguientes

Obtenga información sobre cómo pasar un token de PingOne a la aplicación.