Compartir a través de


Configuración del inicio de sesión para Microsoft Entra ID multiinquilino mediante directivas personalizadas en Azure Active Directory B2C

Importante

A partir del 1 de mayo de 2025, Azure AD B2C ya no estará disponible para la compra por parte de nuevos clientes. Obtenga más información en nuestras preguntas más frecuentes.

Antes de empezar, use el selector Elegir un tipo de directiva en la parte superior de esta página para elegir el tipo de directiva que está configurando. Azure Active Directory B2C ofrece dos métodos para definir cómo interactúan los usuarios con las aplicaciones: a través de flujos de usuario predefinidos o mediante directivas personalizadas totalmente configurables. Los pasos necesarios en este artículo son diferentes para cada método.

Esta característica está disponible solo para directivas personalizadas. Para conocer los pasos de configuración, seleccione Directiva personalizada en el selector anterior.

En este artículo se muestra cómo habilitar el inicio de sesión para los usuarios que usan el punto de conexión multiinquilino para el identificador de Microsoft Entra, lo que permite a los usuarios de varios inquilinos de Microsoft Entra iniciar sesión con Azure AD B2C, sin tener que configurar un proveedor de identidades para cada inquilino. Sin embargo, los miembros invitados de cualquiera de estos inquilinos no podrán iniciar sesión. Para ello, tendrá que configurar individualmente cada inquilino.

Prerrequisitos

Nota:

En este artículo, se supone que el paquete de inicio SocialAndLocalAccounts se usa en los pasos anteriores mencionados en el requisito previo.

Registro de una aplicación Microsoft Entra

Para permitir que los usuarios inicien sesión en Azure AD B2C con una cuenta de Microsoft Entra, primero debe crear una aplicación en el inquilino de Microsoft Entra desde Azure Portal. Para más información, consulte Registro de una aplicación con la plataforma de identidad de Microsoft.

  1. Inicie sesión en Azure Portal.

  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración del menú superior para cambiar al inquilino de Microsoft Entra en el menú Directorios y suscripciones .

  3. Elija Todos los servicios en la esquina superior izquierda de Azure Portal y busque y seleccione Registros de aplicaciones.

  4. Seleccione Nuevo registro.

  5. Escriba un nombre para la aplicación. Por ejemplo: Azure AD B2C App.

  6. Seleccione Cuentas en cualquier directorio de la organización (cualquier directorio de Microsoft Entra – Multitenant) para esta aplicación.

  7. Para el URI de redireccionamiento, acepte el valor de Web y escriba la siguiente dirección URL en minúsculas, donde your-B2C-tenant-name se reemplaza por el nombre del inquilino de Azure AD B2C.

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

    Por ejemplo: https://fabrikam.b2clogin.com/fabrikam.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. Seleccione Registrar. Registre el identificador de aplicación (cliente) para usarlo en un paso posterior.

  9. Seleccione Certificados y secretos y, a continuación, seleccione Nuevo secreto de cliente.

  10. Escriba una descripción para el secreto, seleccione una expiración y, a continuación, seleccione Agregar. Registre el valor del secreto para usarlo en un paso posterior.

Nota:

El secreto de cliente no se volverá a mostrar después de este punto. Si no haces un registro de ello, tendrás que crear uno nuevo.

[Opcional] Configuración de reclamaciones opcionales

Si desea obtener las family_name y las given_name declaraciones del identificador de Microsoft Entra, puede configurar declaraciones opcionales para su aplicación en la interfaz de usuario del portal de Azure o en el manifiesto de la aplicación. Para obtener más información, consulte Cómo proporcionar atributos opcionales a su aplicación de Microsoft Entra.

  1. Inicie sesión en Azure Portal. Busque y seleccione Microsoft Entra ID.
  2. En la sección Administrar , seleccione Registros de aplicaciones.
  3. Seleccione la aplicación para la que desea configurar reclamaciones opcionales en la lista.
  4. En la sección Administrar , seleccione Configuración de tokens.
  5. Seleccione Agregar reclamo opcional.
  6. En Tipo de token, seleccione ID.
  7. Seleccione las reclamaciones opcionales para agregar, family_name, y given_name.
  8. Selecciona Agregar. Si aparece Activar el permiso de correo electrónico de Microsoft Graph (necesario para que las reclamaciones aparezcan en el token), habilítelo y, a continuación, seleccione Agregar de nuevo.

[Opcional] Verifica la autenticidad de tu aplicación

La verificación del editor ayuda a los usuarios a comprender la autenticidad de la aplicación que ha registrado. Una aplicación verificada significa que el editor de la aplicación ha comprobado su identidad mediante su red de socios de Microsoft (MPN). Obtenga información sobre cómo marcar la aplicación como comprobada por el editor.

Creación de una clave de directiva

Ahora debe almacenar la clave de la aplicación que creó 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, a continuación, seleccione Agregar.
  5. En Opciones, elija Manual.
  6. Escriba un nombre para la clave de directiva. Por ejemplo: AADAppSecret. El prefijo B2C_1A_ se agrega automáticamente al nombre de la clave cuando se crea, por lo que su referencia en el XML de la sección siguiente es B2C_1A_AADAppSecret.
  7. En Secreto, escriba el secreto de cliente que registró anteriormente.
  8. En Uso de claves, seleccione Signature.
  9. Selecciona Crear.

Configurar el identificador de Microsoft Entra como proveedor de identidades

Para permitir que los usuarios inicien sesión con una cuenta de Microsoft Entra, debe definir Microsoft Entra ID como un proveedor de declaraciones con el que Azure AD B2C pueda comunicarse a través de un punto de conexión. El punto de conexión proporciona un conjunto de declaraciones utilizadas por Azure AD B2C para comprobar que un usuario específico se ha autenticado.

Puede definir el identificador de Microsoft Entra como proveedor de notificaciones agregando el identificador de Microsoft Entra al elemento ClaimsProvider en el archivo de extensión de la directiva.

  1. Abra el archivo SocialAndLocalAccounts/TrustFrameworkExtensions.xml (consulte los archivos que ha usado en los requisitos previos).

  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>commonaad</Domain>
      <DisplayName>Common AAD</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AADCommon-OpenIdConnect">
          <DisplayName>Multi-Tenant AAD</DisplayName>
          <Description>Login with your Contoso account</Description>
          <Protocol Name="OpenIdConnect"/>
          <Metadata>
            <Item Key="METADATA">https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration</Item>
            <!-- Update the Client ID below to the Application ID -->
            <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
            <!-- The key below allows you to specify each of the Azure AD tenants that can be used to sign in. Update the GUIDs below for each tenant. -->
            <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000,https://login.microsoftonline.com/11111111-1111-1111-1111-111111111111</Item>
            <!-- The commented key below specifies that users from any tenant can sign-in. Uncomment if you would like anyone with an Azure AD account to be able to sign in. -->
            <!-- <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/</Item> -->
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_AADAppSecret"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/>
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. En el elemento ClaimsProvider , actualice el valor de Domain a un valor único que se pueda usar para distinguirlo de otros proveedores de identidades.

  5. En el elemento TechnicalProfile , actualice el valor de DisplayName, por ejemplo, Multi-Tenant AAD. Este valor se muestra en el botón de inicio de sesión de la página de inicio de sesión.

  6. Establezca client_id en el identificador de aplicación de la aplicación multiinquilino de Microsoft Entra que registró anteriormente.

  7. En CryptographicKeys, actualice el valor de StorageReferenceId al nombre de la clave de directiva que creó anteriormente. Por ejemplo: B2C_1A_AADAppSecret.

Restringir el acceso

El uso https://login.microsoftonline.com/ como valor de ValidTokenIssuerPrefixes permite a todos los usuarios de Microsoft Entra iniciar sesión en la aplicación. Actualice la lista de emisores de tokens válidos y restrinja el acceso a una lista específica de usuarios inquilinos de Microsoft Entra que pueden iniciar sesión.

Para obtener los valores, examine los metadatos de detección de OpenID Connect para cada uno de los inquilinos de Microsoft Entra desde los que desea que los usuarios inicien sesión. El formato de la dirección URL de metadatos es similar a https://login.microsoftonline.com/your-tenant/v2.0/.well-known/openid-configuration, donde your-tenant es el nombre del inquilino de Microsoft Entra. Por ejemplo:

https://login.microsoftonline.com/fabrikam.onmicrosoft.com/v2.0/.well-known/openid-configuration

Siga estos pasos para cada inquilino de Microsoft Entra que se deba usar para iniciar sesión:

  1. Abra el explorador y vaya a la dirección URL de metadatos de OpenID Connect para el inquilino. Encuentre el issuer objeto y registre su valor. Debe ser similar a https://login.microsoftonline.com/ aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0.
  2. Copie y pegue el valor en la clave ValidTokenIssuerPrefixes . Separe varios emisores con una coma. En el ejemplo XML anterior ClaimsProvider se muestra un ejemplo con dos emisores.

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

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AzureADCommonExchange" TechnicalProfileReferenceId="AADCommon-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 inicio de sesión, seleccione Id. común de Microsoft Entra para iniciar sesión con la cuenta de Microsoft Entra.

Para probar la funcionalidad de inicio de sesión multiinquilino, realice los dos últimos pasos con las credenciales de un usuario que exista con otro inquilino de Microsoft Entra. Copie el valor de Ejecutar punto de conexión ahora y ábralo en una ventana privada del explorador web, por ejemplo, en modo incógnito en Google Chrome o en una ventana de InPrivate en Microsoft Edge. La apertura en una ventana privada del explorador le permite probar el recorrido completo del usuario sin usar ninguna credencial de Microsoft Entra actualmente almacenada en caché.

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.

Consulte también