Configuración de la suscripción y del inicio de sesión con una cuenta de Twitter 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.

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.

Requisitos previos

Crear una aplicación

Para habilitar el inicio de sesión de los usuarios con una cuenta de Twitter en Azure AD B2C, debe crear una aplicación de Twitter. Si aún no tiene una cuenta de Twitter, puede suscribirse en https://twitter.com/signup. También debe solicitar una cuenta de desarrollador. Para obtener más información, consulte Solicitud de acceso.

  1. Inicie sesión en el portal para desarrolladores de Twitter con las credenciales de la cuenta de Twitter.
  2. Seleccione el botón + Create Project (+ Crear proyecto).
  3. En la pestaña Project name (Nombre del proyecto), escriba el nombre que desee para el proyecto y, a continuación, seleccione el botón Next (Siguiente).
  4. En la pestaña Use case (Caso de uso), seleccione su caso de uso preferido y, a continuación, seleccione Next (Siguiente).
  5. En la pestaña Project description (Descripción del proyecto), escriba la descripción del proyecto y, a continuación, seleccione el botón Next (Siguiente).
  6. En la pestaña App name (Nombre de la aplicación), escriba un nombre para la aplicación, como azureadb2c y, a continuación, seleccione el botón Next (Siguiente).
  7. En la pestaña Claves y tokens, copie el valor de Clave de API y de Secreto de la clave de API. Los usará para la configuración más adelante.
  8. Seleccione App settings (Configuración de la aplicación) para abrir la configuración de la aplicación.
  9. En la parte inferior de la página, en User authentication settings (Configuración de la autenticación de usuario), seleccione Set up (Configurar).
  10. En Tipo de aplicación, seleccione el tipo de aplicación adecuado, por ejemplo, Aplicación web.
  11. En Información de la aplicación:
    1. En Callback URI/Redirect URL (Identificador URI/Dirección URL de redirección), escriba https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/your-policy-id/oauth1/authresp. Si usa un dominio personalizado, escriba https://your-domain-name/your-tenant-name.onmicrosoft.com/your-user-flow-Id/oauth1/authresp. Cuando especifique el nombre de inquilino y el identificador de flujo de usuario, use solo letras en minúscula, aunque se hayan definido en mayúscula en Azure AD B2C. Sustituya:
      • your-tenant-name por el nombre del inquilino.
      • your-domain-name por el dominio personalizado.
      • your-policy-id por el identificador de su flujo de usuario. Por ejemplo, b2c_1a_signup_signin_twitter.
    2. En Website URL (dirección URL del sitio web), escriba https://your-tenant.b2clogin.com. Reemplace your-tenant por el nombre del inquilino. Por ejemplo, https://contosob2c.b2clogin.com. Si usa un dominio personalizado, escriba https://your-domain-name.
    3. (Opcional) Escriba una dirección URL para Términos del servicio, por ejemplo http://www.contoso.com/tos. La dirección URL de la directiva es una página que se mantiene para proporcionar los términos y condiciones de la aplicación.
    4. (Opcional) Escriba una dirección URL para Directiva de privacidad, por ejemplo http://www.contoso.com/privacy. La dirección URL de directiva es una página que sirve para proporcionar información de privacidad de la aplicación.
  12. Seleccione Guardar.
  1. Inicie sesión en el portal para desarrolladores de Twitter con las credenciales de la cuenta de Twitter.
  2. Seleccione el botón + Create Project (+ Crear proyecto).
  3. En la pestaña Project name (Nombre del proyecto), escriba el nombre que desee para el proyecto y, a continuación, seleccione el botón Next (Siguiente).
  4. En la pestaña Use case (Caso de uso), seleccione su caso de uso preferido y, a continuación, seleccione Next (Siguiente).
  5. En la pestaña Project description (Descripción del proyecto), escriba la descripción del proyecto y, a continuación, seleccione el botón Next (Siguiente).
  6. En la pestaña App name (Nombre de la aplicación), escriba un nombre para la aplicación, como azureadb2c y, a continuación, seleccione el botón Next (Siguiente).
  7. En la pestaña Keys & Tokens (Claves y tokens), copie el valor de API Key (Clave de API) y API Key Secret (Secreto de la clave de API) para más adelante. Use los dos para configurar Twitter como proveedor de identidades de su inquilino de Azure AD B2C.
  8. Seleccione App settings (Configuración de la aplicación) para abrir la configuración de la aplicación.
  9. En la parte inferior de la página, en User authentication settings (Configuración de la autenticación de usuario), seleccione Set up (Configurar).
  10. En Tipo de aplicación, seleccione el tipo de aplicación adecuado, por ejemplo, Aplicación web.
  11. En Información de la aplicación:
    1. En Callback URI/Redirect URL (Identificador URI/Dirección URL de redirección), escriba https://your-tenant.b2clogin.com/your-tenant-name.onmicrosoft.com/your-user-flow-name/oauth1/authresp. Si usa un dominio personalizado, escriba https://your-domain-name/your-tenant-name.onmicrosoft.com/your-user-flow-Id/oauth1/authresp. Cuando especifique el nombre de inquilino y el identificador de flujo de usuario, use solo letras en minúscula, aunque se hayan definido en mayúscula en Azure AD B2C. Sustituya:
      • your-tenant-name por el nombre del inquilino.
      • your-domain-name por el dominio personalizado.
      • your-user-flow-name por el identificador de su flujo de usuario. Por ejemplo, b2c_1_signup_signin_twitter.
    2. En Website URL (dirección URL del sitio web), escriba https://your-tenant.b2clogin.com. Reemplace your-tenant por el nombre del inquilino. Por ejemplo, https://contosob2c.b2clogin.com. Si usa un dominio personalizado, escriba https://your-domain-name.
    3. Escriba una dirección URL para Terms of service (términos del servicio), por ejemplo http://www.contoso.com/tos. La dirección URL de la directiva es una página que se mantiene para proporcionar los términos y condiciones de la aplicación.
    4. Escriba una dirección URL en Privacy Policy (directiva de privacidad), por ejemplo http://www.contoso.com/privacy. La dirección URL de directiva es una página que sirve para proporcionar información de privacidad de la aplicación.
  12. Seleccione Guardar.

Configuración de Twitter como proveedor de identidades

  1. Inicie sesión en Azure Portal como administrador global del inquilino de Azure AD B2C.
  2. Si tiene acceso a varios inquilinos, seleccione el icono Configuración en el menú superior para cambiar al inquilino del Azure AD B2C desde el menú Directorios y suscripciones.
  3. Elija Todos los servicios en la esquina superior izquierda de Azure Portal, busque y seleccione Azure AD B2C.
  4. Seleccione Proveedores de identidades y luego Twitter.
  5. Escriba un nombre. Por ejemplo, Twitter.
  6. En Id. de cliente, escriba la clave de API de la aplicación de Twitter que creó anteriormente.
  7. En el secreto de cliente, escriba el secreto de clave de API que anotó.
  8. Seleccione Guardar.

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

En este momento, el proveedor de identidades de Twitter ya se ha configurado, pero no está disponible en ninguna de las pantallas de inicio de sesión. Adición del proveedor de identidades de Twitter a un flujo de usuario:

  1. En el inquilino de Azure AD B2C, seleccione Flujos de usuario.
  2. Seleccione el flujo de usuario al que quiera agregar el proveedor de identidades de Twitter.
  3. En Proveedores de identidades sociales, seleccione Twitter.
  4. Seleccione Guardar.

Prueba del flujo de usuario

  1. Para probar la directiva, seleccione Ejecutar flujo de usuario.
  2. En Aplicación, seleccione la aplicación web denominada testapp1 que registró anteriormente. La dirección URL de respuesta debe mostrar https://jwt.ms.
  3. Seleccione el botón Ejecutar flujo de usuario.
  4. En la página de registro o de inicio de sesión, seleccione Twitter para iniciar sesión con la cuenta de Twitter.

Creación de una clave de directiva

Debe almacenar la clave del secreto que haya registrado previamente para la aplicación de Twitter 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 del Azure AD B2C desde el menú Directorios y suscripciones.
  3. En Azure Portal, busque y seleccione Azure AD B2C.
  4. En el menú de la izquierda, en Directivas, 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, TwitterSecret. Se agregará el prefijo B2C_1A_ automáticamente al nombre de la clave.
  8. En Secreto, escriba el valor del secreto de la clave de API que registró anteriormente.
  9. En Uso de claves, seleccione Signature.
  10. Haga clic en Crear.

Configuración de Twitter como proveedor de identidades

Para habilitar que los usuarios inicien sesión con una cuenta de Twitter, deberá definirla como un 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.

Puede definir una cuenta de Twitter como proveedor de notificaciones; para ello, agréguela al elemento ClaimsProvider en el archivo de extensión de la directiva. Consulte el paquete de inicio de directivas personalizadas que descargó en los requisitos previos de este artículo.

  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>twitter.com</Domain>
      <DisplayName>Twitter</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Twitter-OAuth1">
          <DisplayName>Twitter</DisplayName>
          <Protocol Name="OAuth1" />
          <Metadata>
            <Item Key="ProviderName">Twitter</Item>
            <Item Key="authorization_endpoint">https://api.twitter.com/oauth/authenticate</Item>
            <Item Key="access_token_endpoint">https://api.twitter.com/oauth/access_token</Item>
            <Item Key="request_token_endpoint">https://api.twitter.com/oauth/request_token</Item>
            <Item Key="ClaimsEndpoint">https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true</Item>
            <Item Key="ClaimsResponseFormat">json</Item>
            <Item Key="client_id">Your Twitter application API key</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_TwitterSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="user_id" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="screen_name" />
            <OutputClaim ClaimTypeReferenceId="email" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="twitter.com" />
            <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. Reemplace el valor de client_id por la clave de API que anotó anteriormente.

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

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="TwitterExchange" TechnicalProfileReferenceId="Twitter-OAuth1" />
  </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 Twitter para iniciar sesión con la cuenta de Twitter.

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.

Sugerencia

Si tiene un error unauthorized al probar este proveedor de identidades, asegúrese de usar la clave de API de Twitter y el secreto de clave de API correctos, o intente solicitar el acceso con privilegios elevados. Además, se recomienda echar un vistazo a la estructura de proyectos de Twitter, si registró la aplicación antes de que la característica estuviera disponible.