Compartir vía


Configuración del registro y el inicio de sesión con una cuenta de Azure AD B2C de otro inquilino de Azure AD 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.

Nota:

En Azure Active Directory B2C, las directivas personalizadas se han diseñado principalmente para abordar escenarios complejos. Para la mayoría de los escenarios, se recomienda usar flujos de usuario integrados. Si no lo ha hecho, obtenga información sobre el paquete de inicio de directivas personalizadas en Introducción a las directivas personalizadas en Active Directory B2C.

Información general

En este artículo se describe cómo configurar una federación con otro inquilino de Azure AD B2C. Cuando las aplicaciones están protegidas con Azure AD B2C, los usuarios de otras instancias de Azure AD B2C pueden iniciar sesión con sus cuentas existentes. En el diagrama siguiente, los usuarios pueden iniciar sesión en una aplicación protegida por Contoso’s Azure AD B2C, con una cuenta administrada por Fabrikam's Inquilino de Azure AD B2C. En este caso, la cuenta de usuario debe estar presente en el inquilino de Fabrikam’s antes de que una aplicación protegida por Azure AD B2C de Contoso’s pueda intentar iniciar sesión.

Azure AD B2C federation with another Azure AD B2C tenant

Requisitos previos

Comprobación del dominio del publicador de la aplicación

Desde noviembre de 2020, los nuevos registros de aplicación se muestran como no comprobados en el mensaje de consentimiento del usuario, a menos que se haya comprobado el dominio del publicador de la aplicacióny se haya comprobado la identidad de la empresa con Microsoft Partner Network y asociado a la aplicación. Obtenga más información sobre este cambio. Tenga en cuenta que, en los flujos de usuario de Azure AD B2C, el dominio del publicador solo aparece cuando se usa una cuenta de Microsoft u otro inquilino de Microsoft Entra como proveedor de identidades. Para cumplir estos nuevos requisitos, haga lo siguiente:

  1. Compruebe la identidad de la empresa con la cuenta de Microsoft Partner Network (MPN). Este proceso comprueba la información sobre su empresa y el contacto principal de esta.
  2. Complete el proceso de comprobación del publicador para asociar su cuenta de MPN al registro de la aplicación usando una de las siguientes opciones:

Creación de una aplicación de Azure AD B2C

Para permitir el inicio de sesión de los usuarios con una cuenta de otro inquilino de Azure AD B2C (por ejemplo, Fabrikam), en su instancia de Azure AD B2C (por ejemplo, Contoso):

  1. Cree un flujo de usuario o una directiva personalizada.
  2. A continuación, cree una aplicación en Azure AD B2C, como se describe en esta sección.

Para crear una aplicación:

  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 a su inquilino de Azure AD B2C desde el menú Directorios y suscripciones.

  3. En Azure Portal, busque y seleccione Azure AD B2C.

  4. Seleccione Registros de aplicaciones y luego Nuevo registro.

  5. Escriba un Nombre para la aplicación. Por ejemplo, ContosoApp.

  6. En Tipos de cuenta compatibles, seleccione Cuentas en cualquier proveedor de identidades o directorio de la organización (para autenticar usuarios con flujos de usuario) .

  7. En URI de redirección, seleccione Web y, luego, escriba la siguiente dirección URL en minúsculas, donde your-B2C-tenant-name se reemplaza por el nombre de su inquilino de Azure AD B2C (por ejemplo, Contoso).

    https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp
    

    Por ejemplo, https://contoso.b2clogin.com/contoso.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.

  8. En Permisos, active la casilla Conceda consentimiento del administrador a los permisos openid y offline_access.

  9. Seleccione Registrar.

  10. En la página Azure AD B2C: Registros de aplicaciones, seleccione la aplicación que ha creado, por ejemplo, ContosoApp.

  11. Registre el Id. de aplicación (cliente) que se muestra en la página de información general de la aplicación. Necesitará esta información al configurar el proveedor de identidades en la siguiente sección.

  12. En el menú de la izquierda, en Administrar, seleccione Certificados y secretos.

  13. Seleccione Nuevo secreto de cliente.

  14. Escriba una descripción para el secreto de cliente en el cuadro Descripción. Por ejemplo, clientsecret1.

  15. En Expira, seleccione el tiempo durante el cual el secreto es válido y, a continuación, seleccione Agregar.

  16. Registre el Valor del secreto. Necesitará esta información al configurar el proveedor de identidades en la siguiente sección.

Configuración de Azure AD B2C como proveedor de identidades

  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 a su 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. Seleccione Proveedores de identidades y luego Nuevo proveedor de OpenID Connect.

  5. Escriba un nombre. Por ejemplo, escriba Fabrikam.

  6. En URL de metadatos, escriba la siguiente dirección URL y sustituya {tenant} por el nombre de dominio del inquilino de Azure AD B2C (por ejemplo, Fabrikam). Reemplace {policy} por el nombre de la directiva que configure en el otro inquilino:

    https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/v2.0/.well-known/openid-configuration
    

    Por ejemplo, https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1_susi/v2.0/.well-known/openid-configuration.

  7. En Id. de cliente, escriba el identificador de aplicación que ha anotado anteriormente.

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

  9. En Ámbito, escriba el valor de openid.

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

  11. (Opcional) En Sugerencia de dominio, escriba el nombre de dominio que quiere usar para el inicio de sesión directo. Por ejemplo, fabrikam.com.

  12. 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
  13. Seleccione Guardar.

Adición del proveedor de identidades de Azure AD B2C 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 quiera agregar el proveedor de identidades de Azure AD B2C.
  3. En Proveedores de identidades sociales, seleccione Fabrikam.
  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 Fabrikam para iniciar sesión con el otro inquilino de Azure AD B2C.

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 la clave de la aplicación que creó anteriormente en el inquilino de Azure AD B2C.

  1. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar a su 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. En Directivas, seleccione Identity Experience Framework.
  4. Seleccione Claves de directiva y luego Agregar.
  5. En Opciones, elija Manual.
  6. Escriba un nombre para la clave de directiva. Por ejemplo, FabrikamAppSecret. El prefijo B2C_1A_ se agrega automáticamente al nombre de la clave cuando se crea, por lo que hace referencia a B2C_1A_FabrikamAppSecret en el código XML de la siguiente sección.
  7. En Secreto, escriba el secreto de cliente que registró previamente.
  8. En Uso de claves, seleccione Signature.
  9. Seleccione Crear.

Configuración de Azure AD B2C como proveedor de identidades

Para permitir que los usuarios inicien sesión con una cuenta de otro inquilino de Azure AD B2C (Fabrikam), debe definir dicha cuenta como proveedor de notificaciones con el que Azure AD B2C puede comunicarse a través de 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 Azure AD B2C como proveedor de notificaciones, agregue Azure AD B2C al elemento ClaimsProvider del 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>fabrikam.com</Domain>
      <DisplayName>Federation with Fabrikam tenant</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AzureADB2CFabrikam-OpenIdConnect">
        <DisplayName>Fabrikam</DisplayName>
        <Protocol Name="OpenIdConnect"/>
        <Metadata>
          <!-- Update the Client ID below to the Application ID -->
          <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
          <!-- Update the metadata URL with the other Azure AD B2C tenant name and policy name -->
          <Item Key="METADATA">https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/v2.0/.well-known/openid-configuration</Item>
          <Item Key="UsePolicyInRedirectUri">false</Item>
          <Item Key="response_types">code</Item>
          <Item Key="scope">openid</Item>
          <Item Key="response_mode">form_post</Item>
          <Item Key="HttpBinding">POST</Item>
        </Metadata>
        <CryptographicKeys>
          <Key Id="client_secret" StorageReferenceId="B2C_1A_FabrikamAppSecret"/>
        </CryptographicKeys>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
          <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
          <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" />
          <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
          <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
          <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss"  />
          <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
          <OutputClaim ClaimTypeReferenceId="otherMails" PartnerClaimType="emails"/>    
        </OutputClaims>
        <OutputClaimsTransformations>
          <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
          <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
          <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
        </OutputClaimsTransformations>
        <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/>
      </TechnicalProfile>
     </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Actualice los siguientes elementos XML con el valor pertinente:

    Elemento XML Value
    ClaimsProvider\Domain El nombre de dominio que se usa para el inicio de sesión directo. Escriba el nombre de dominio que quiere usar en el inicio de sesión directo. Por ejemplo, fabrikam.com.
    TechnicalProfile\DisplayName Este valor se mostrará en el botón de inicio de sesión de la pantalla de inicio de sesión. Por ejemplo, Fabrikam.
    Metadata\client_id El identificador de la aplicación del proveedor de identidades. Actualice el identificador de cliente con el identificador de aplicación que creó anteriormente en el otro inquilino de Azure AD B2C.
    Metadata\METADATA Una dirección URL que apunta a un documento de configuración del proveedor de identidades de OpenID Connect, que es un punto de conexión de configuración conocido de OpenID. Escriba la siguiente dirección URL y reemplace {tenant} por el nombre de dominio del otro inquilino de Azure AD B2C (Fabrikam). Reemplace {tenant} por el nombre de la directiva que configure en el otro inquilino y {policy] por el nombre de la directiva: https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/v2.0/.well-known/openid-configuration. Por ejemplo, https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1_susi/v2.0/.well-known/openid-configuration.
    CryptographicKeys Actualice el valor de StorageReferenceId con el nombre de la clave de la directiva que creó anteriormente. Por ejemplo, B2C_1A_FabrikamAppSecret.

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="AzureADB2CFabrikamExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AzureADB2CFabrikamExchange" TechnicalProfileReferenceId="AzureADB2CFabrikam-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 Fabrikam para iniciar sesión con el otro inquilino de Azure AD B2C.

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

Más información sobre cómo pasar el otro token de Azure AD B2C a la aplicación.