Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
A partir del 1 de mayo de 2025, Azure AD B2C ya no estará disponible para ser adquirido por 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.
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.
En este artículo se muestra cómo habilitar el inicio de sesión para los usuarios de una organización de Salesforce mediante directivas personalizadas en Azure Active Directory B2C (Azure AD B2C). Habilitas el inicio de sesión añadiendo un proveedor de identidades SAML a una política personalizada.
Prerrequisitos
- Siga los pasos de Introducción a las directivas personalizadas en Active Directory B2C. En este tutorial se explica cómo actualizar archivos de directiva personalizados para usar la configuración del inquilino de Azure AD B2C.
- Si no ha registrado una aplicación web, registre una mediante los pasos descritos en registro de una aplicación web.
- Si aún no lo ha hecho, regístrese para obtener una cuenta gratuita de Developer Edition. En este artículo se usa Salesforce Lightning Experience.
- Configure un mi dominio para su organización de Salesforce.
Configuración de Salesforce como proveedor de identidades
- Inicie sesión en Salesforce.
- En el menú de la izquierda, en Configuración, expanda Identidad y, a continuación, seleccione Proveedor de identidades.
- Seleccione Habilitar proveedor de identidades.
- En Seleccionar el certificado, seleccione el certificado que quiere que Salesforce use para comunicarse con Azure AD B2C. Puede usar el certificado predeterminado.
- Haz clic en Guardar.
Creación de una aplicación conectada en Salesforce
En la página Proveedor de identidades , seleccione Proveedores de servicios que ahora se crean a través de aplicaciones conectadas. Haga clic aquí.
En Información básica, escriba los valores necesarios para la aplicación conectada.
En Configuración de aplicación web, active la casilla Habilitar SAML .
En el campo Id. de entidad , escriba la siguiente dirección URL. Asegúrese de reemplazar el valor de
your-tenant
por el nombre del inquilino de Azure AD B2C.https://your-tenant.b2clogin.com/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase
Al usar un dominio personalizado, use el siguiente formato:
https://your-domain-name/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase
En el campo URL de ACS, escriba la siguiente URL. Asegúrese de reemplazar el valor de
your-tenant
por el nombre del inquilino de Azure AD B2C.https://your-tenant.b2clogin.com/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer
Al usar un dominio personalizado, use el siguiente formato:
https://your-domain-name/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer
Desplácese hasta la parte inferior de la lista y haga clic en Guardar.
Obtención de la dirección URL de metadatos
- En la página de información general de la aplicación conectada, haga clic en Administrar.
- Copie el valor de Metadata Discovery Endpoint (Punto de conexión de detección de metadatos) y guárdelo. Lo usarás más adelante en este artículo.
Configuración de usuarios de Salesforce para federar
- En la página Administrar de la aplicación conectada, haga clic en Administrar perfiles.
- Seleccione los perfiles (o grupos de usuarios) que desea federar con Azure AD B2C. Como administrador del sistema, active la casilla Administrador del sistema para que pueda federarse mediante su cuenta de Salesforce.
Creación de un certificado autofirmado
Si aún no tiene un certificado, puede usar un certificado autofirmado para este tutorial. Un certificado autofirmado es un certificado de seguridad que no está firmado por una entidad de certificación (CA) y no proporciona las garantías de seguridad de un certificado firmado por una CA.
En Windows, use el cmdlet New-SelfSignedCertificate en PowerShell para generar un certificado.
Ejecute este comando de PowerShell para generar un certificado autofirmado. Modifique el argumento
-Subject
según corresponda para su aplicación y el nombre del inquilino de Azure AD B2C, por ejemplocontosowebapp.contoso.onmicrosoft.com
. También puede ajustar la fecha de-NotAfter
para especificar una expiración diferente para el certificado.New-SelfSignedCertificate ` -KeyExportPolicy Exportable ` -Subject "CN=yourappname.yourtenant.onmicrosoft.com" ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -KeyUsage DigitalSignature ` -NotAfter (Get-Date).AddMonths(12) ` -CertStoreLocation "Cert:\CurrentUser\My"
En el equipo Windows, busque y seleccione Administrar certificados de usuario.
En Certificados - Usuario actual, seleccione Personales>Certificados>yourappname.yourtenant.onmicrosoft.com.
Seleccione el certificado y, a continuación, seleccione Action All Tasks Export (Exportar>todas las tareas>).
Seleccione Siguiente>Sí, exporte la clave> privadaSiguiente.
Acepte los valores predeterminados para Exportar formato de archivo y, a continuación, seleccione Siguiente.
Habilite la opción Contraseña , escriba una contraseña para el certificado y, a continuación, seleccione Siguiente.
Para especificar una ubicación para guardar el certificado, seleccione Examinar y vaya a un directorio de su elección.
En la ventana Guardar como , escriba un nombre de archivo y, a continuación, seleccione Guardar.
Seleccione Siguiente>finalizar.
Para que Azure AD B2C acepte la contraseña del archivo .pfx, debe estar cifrada con la opción TripleDES-SHA1 de la utilidad de exportación del almacén de certificados de Windows en lugar de con AES256-SHA256.
Creación de una clave de directiva
Debe almacenar el certificado que creó en el inquilino de Azure AD B2C.
- Inicie sesión en Azure Portal.
- 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.
- Elija Todos los servicios en la esquina superior izquierda de Azure Portal y busque y seleccione Azure AD B2C.
- En la página Información general, seleccione Identity Experience Framework.
- Seleccione Claves de directiva y, a continuación, seleccione Agregar.
- En Opciones, elija
Upload
. - Escriba un Nombre para la directiva. Por ejemplo, SAMLSigningCert. El prefijo
B2C_1A_
se agrega automáticamente al nombre de la clave. - Busque el certificado B2CSigningCert.pfx que ha creado y selecciónelo.
- Escriba la contraseña del certificado.
- Haga clic en Crear.
Añadir un proveedor de reclamaciones
Si quiere que los usuarios inicien sesión con una cuenta de Salesforce, debe definir la cuenta como un proveedor de afirmaciones 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 una cuenta de Salesforce como proveedor de notificaciones agregándola al elemento ClaimsProviders en el archivo de extensión de la directiva. Para obtener más información, consulte Definición de un proveedor de identidades SAML.
Abra el archivo TrustFrameworkExtensions.xml.
Busque el elemento ClaimsProviders. Si no existe, agréguelo debajo del elemento raíz.
Agregue un nuevo elemento ClaimsProvider tal como se muestra a continuación:
<ClaimsProvider> <Domain>salesforce.com</Domain> <DisplayName>Salesforce</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Salesforce-SAML2"> <DisplayName>Salesforce</DisplayName> <Description>Login with your Salesforce account</Description> <Protocol Name="SAML2"/> <Metadata> <Item Key="WantsEncryptedAssertions">false</Item> <Item Key="WantsSignedAssertions">false</Item> <Item Key="PartnerEntity">https://contoso-dev-ed.my.salesforce.com/.well-known/samlidp.xml</Item> </Metadata> <CryptographicKeys> <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="userId"/> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name"/> <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name"/> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email"/> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="username"/> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication"/> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="salesforce.com" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp"/> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Actualice el valor de PartnerEntity con la dirección URL de metadatos de Salesforce que copió anteriormente.
Actualice el valor de ambas instancias de StorageReferenceId al nombre de la clave del certificado de firma. Por ejemplo, B2C_1A_SAMLSigningCert.
Busque la
<ClaimsProviders>
sección y agregue el siguiente fragmento de código XML. Si la política ya contiene elSM-Saml-idp
perfil técnico, salta al siguiente paso. Para más información, consulte Administración de sesión de inicio de sesión único.<ClaimsProvider> <DisplayName>Session Management</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="SM-Saml-idp"> <DisplayName>Session Management Provider</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="IncludeSessionIndex">false</Item> <Item Key="RegisterServiceProviders">false</Item> </Metadata> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
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.
- Abra el archivo TrustFrameworkBase.xml del paquete de inicio.
- Busque y copie todo el contenido del elemento UserJourney que incluye
Id="SignUpOrSignIn"
. - Abra el archivo TrustFrameworkExtensions.xml y busque el elemento UserJourneys. Si el elemento no existe, agréguelo.
- Pegue todo el contenido del elemento UserJourney que ha copiado como elemento secundario del elemento UserJourneys.
- 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.
Busque el elemento del paso de orquestación que incluye
Type="CombinedSignInAndSignUp"
oType="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.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="SalesforceExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="SalesforceExchange" TechnicalProfileReferenceId="Salesforce-SAML2" />
</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
- Inicie sesión en Azure Portal.
- 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.
- En Azure Portal, busque y seleccione Azure AD B2C.
- En Directivas, seleccione Identity Experience Framework.
- 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, comoSignUpSignIn.xml
.
Prueba de la directiva personalizada
- Seleccione la directiva de usuarios de confianza, por ejemplo
B2C_1A_signup_signin
. - En Aplicación, seleccione la aplicación web que registró anteriormente. La dirección URL de respuesta debe mostrar
https://jwt.ms
. - Seleccione el botón Ejecutar ahora.
- En la página de registro o inicio de sesión, seleccione Salesforce para iniciar sesión con la cuenta de Salesforce.
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.