Compartir a través de


API seguras usadas para conectores de API en Azure AD B2C

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.

Al integrar una API de REST dentro de un flujo de usuario de Azure AD B2C, debe proteger el punto de conexión de la API de REST con autenticación. La autenticación de la API de REST garantiza que solo los servicios que tienen las credenciales adecuadas, como Azure AD B2C, puedan realizar llamadas al punto de conexión. En este artículo se examina cómo proteger la API REST.

Prerrequisitos

Complete los pasos de la guía Agregar un conector de API a un flujo de usuario de registro .

Puede proteger el punto de conexión de la API mediante la autenticación HTTP básica o la autenticación de certificados de cliente HTTPS. En cualquier caso, proporcione las credenciales que Azure AD B2C usa cuando llama al punto de conexión de API. A continuación, el punto de conexión de la API comprueba las credenciales y realiza decisiones de autorización.

Autenticación HTTP básica

La autenticación básica HTTP se define en RFC 2617. La autenticación básica funciona de la siguiente manera:

  • Azure AD B2C envía una solicitud HTTP con las credenciales de cliente (username y password) en el Authorization encabezado.

  • Las credenciales tienen el formato de cadena codificada en Base 64 username:password.

  • A continuación, la API es responsable de comprobar estos valores para tomar otras decisiones de autorización.

Para configurar un conector de API con autenticación básica HTTP, siga estos pasos:

  1. Inicie sesión en Azure Portal.
  2. En Servicios de Azure, seleccione Azure AD B2C o busque y seleccione Azure AD B2C.
  3. Seleccione Conectores de API y, a continuación, seleccione el conector de API que desea configurar.
  4. En Tipo de autenticación, seleccione Básico.
  5. Proporcione el nombre de usuario y la contraseña del punto de conexión de la API REST. Proporcionar una configuración de autenticación básica para un conector de API.
  6. Haga clic en Guardar.

Agregar claves de política de contraseña y nombre de usuario de la API de REST

Para configurar un perfil técnico de la API de REST con autenticación básica HTTP, cree las siguientes claves criptográficas para almacenar el nombre de usuario y la contraseña:

  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. En la página Información general, seleccione Identity Experience Framework.
  5. Seleccione Claves de directiva y, luego, Agregar.
  6. En Opciones, seleccione Manual.
  7. En Nombre, escriba RestApiUsername. Es posible que el B2C_1A_ de prefijo se agregue automáticamente.
  8. En el cuadro Secreto , escriba el nombre de usuario de la API de REST.
  9. En Uso de claves, seleccione Cifrado.
  10. Selecciona Crear.
  11. Vuelva a seleccionar Claves de directiva.
  12. Selecciona Agregar.
  13. En Opciones, seleccione Manual.
  14. En Nombre, escriba RestApiPassword. Es posible que el B2C_1A_ de prefijo se agregue automáticamente.
  15. En el cuadro Secreto , introduzca la contraseña de la API de REST.
  16. En Uso de claves, seleccione Cifrado.
  17. Selecciona Crear.

Configurar el perfil técnico de la API de REST para usar la autenticación básica HTTP

Después de crear las claves necesarias, configure los metadatos del perfil técnico de la API de REST para que hagan referencia a las credenciales.

  1. En el directorio de trabajo, abra el archivo de política de extensión (TrustFrameworkExtensions.xml).
  2. Busque el perfil técnico de la API REST. Por ejemplo REST-ValidateProfile, o REST-GetProfile.
  3. Busque el elemento <Metadata>.
  4. Cambia AuthenticationType a Basic.
  5. Cambie el valor de AllowInsecureAuthInProduction a false.
  6. Inmediatamente después del elemento de cierre </Metadata> , agregue el siguiente fragmento XML:
    <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" />
    </CryptographicKeys>
    

El siguiente fragmento XML es un ejemplo de un perfil técnico RESTful configurado con autenticación básica HTTP:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">Basic</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_RestApiUsername" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_RestApiPassword" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Autenticación con certificados de cliente HTTPS

La autenticación de certificado de cliente es una autenticación mutua basada en certificados, en la que el cliente, Azure AD B2C, proporciona su certificado de cliente al servidor para demostrar su identidad. Esto sucede como parte del protocolo de enlace SSL. La API es responsable de validar los certificados que pertenecen a un cliente válido, como Azure AD B2C, y de tomar decisiones de autorización. El certificado de cliente es un certificado digital X.509.

Importante

En entornos de producción, el certificado debe estar firmado por una entidad de certificación.

Creación de un certificado

Para crear un certificado, puede usar Azure Key Vault, que tiene opciones para certificados autofirmados e integraciones con proveedores de emisores de certificados para certificados firmados. La configuración recomendada incluye:

  • Asunto: CN=<yourapiname>.<tenantname>.onmicrosoft.com
  • Tipo de contenido: PKCS #12
  • Tipo de acción de duración: Email all contacts at a given percentage lifetime o Email all contacts a given number of days before expiry
  • Tipo de clave: RSA
  • Tamaño de clave: 2048
  • Clave privada exportable: Yes (para poder exportar .pfx el archivo)

A continuación, puede exportar el certificado.

Opción 2: preparar un certificado autofirmado mediante el módulo de PowerShell

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.

  1. 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 ejemplo contosowebapp.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"
    
  2. En el equipo Windows, busque y seleccione Administrar certificados de usuario.

  3. En Certificados - Usuario actual, seleccione Personales>Certificados>yourappname.yourtenant.onmicrosoft.com.

  4. Seleccione el certificado y, a continuación, seleccione Action All Tasks Export (Exportar>todas las tareas>).

  5. Seleccione Siguiente>Sí, exporte la clave> privadaSiguiente.

  6. Acepte los valores predeterminados para Exportar formato de archivo y, a continuación, seleccione Siguiente.

  7. Habilite la opción Contraseña , escriba una contraseña para el certificado y, a continuación, seleccione Siguiente.

  8. Para especificar una ubicación para guardar el certificado, seleccione Examinar y vaya a un directorio de su elección.

  9. En la ventana Guardar como , escriba un nombre de archivo y, a continuación, seleccione Guardar.

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

Configuración de un conector de API

Para configurar un conector de API con autenticación de certificado de cliente, siga estos pasos:

  1. Inicie sesión en Azure Portal.
  2. En Servicios de Azure, seleccione Azure AD B2C.
  3. Seleccione Conectores de API y, a continuación, seleccione el conector de API que desea configurar.
  4. En Tipo de autenticación, seleccione Certificado.
  5. En el cuadro Cargar certificado , seleccione el archivo .pfx del certificado con una clave privada.
  6. En el cuadro Escribir contraseña , escriba la contraseña del certificado. Proporcionar configuración de autenticación de certificados para un conector de API.
  7. Haga clic en Guardar.

Toma de decisiones de autorización

La API debe implementar la autorización basada en certificados de cliente enviados con el fin de proteger los puntos de conexión de la API. Para Azure App Service y Azure Functions, consulte la configuración de la autenticación mutua TLS para aprender a habilitar y validar el certificado desde el código de API. También puede usar Azure API Management como capa delante de cualquier servicio de API para comprobar las propiedades del certificado de cliente con los valores deseados.

Renovación de certificados

Se recomienda establecer alertas de recordatorio para cuándo caducará el certificado. Debe generar un nuevo certificado y repetir los pasos anteriores cuando los certificados usados estén a punto de caducar. Para "implementar" el uso de un nuevo certificado, el servicio de API puede seguir aceptando certificados antiguos y nuevos temporalmente mientras se implementa el nuevo certificado.

Para cargar un nuevo certificado en un conector de API existente, seleccione el conector de API en Conectores de API y haga clic en Cargar nuevo certificado. Azure AD B2C usará automáticamente el certificado cargado más recientemente, que no haya expirado y cuya fecha de inicio haya pasado.

Proporcionar un nuevo certificado a un conector de API cuando ya existe uno.

Adición de una clave de directiva de certificado de cliente

  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. En la página Información general, seleccione Identity Experience Framework.
  5. Seleccione Claves de directiva y, luego, Agregar.
  6. En el cuadro Opciones , seleccione Cargar.
  7. En el cuadro Nombre , escriba RestApiClientCertificate. El prefijo B2C_1A_ se añade automáticamente.
  8. En el cuadro Carga de archivos , seleccione el archivo .pfx del certificado con una clave privada.
  9. En el cuadro Contraseña , escriba la contraseña del certificado.
  10. Selecciona Crear.

Configurar el perfil técnico de la API de REST para usar la autenticación de certificado de cliente

Después de crear la clave necesaria, configure los metadatos del perfil técnico de la API de REST para que hagan referencia al certificado de cliente.

  1. En el directorio de trabajo, abra el archivo de política de extensión (TrustFrameworkExtensions.xml).
  2. Busque el perfil técnico de la API REST. Por ejemplo REST-ValidateProfile, o REST-GetProfile.
  3. Busque el elemento <Metadata>.
  4. Cambia AuthenticationType a ClientCertificate.
  5. Cambie el valor de AllowInsecureAuthInProduction a false.
  6. Inmediatamente después del elemento de cierre </Metadata> , agregue el siguiente fragmento XML:
    <CryptographicKeys>
       <Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" />
    </CryptographicKeys>
    

El siguiente fragmento XML es un ejemplo de un perfil técnico RESTful configurado con un certificado de cliente HTTP:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">ClientCertificate</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="ClientCertificate" StorageReferenceId="B2C_1A_RestApiClientCertificate" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Autenticación de portador de OAuth2

La autenticación del token de portador se define en OAuth2.0 Authorization Framework: Bearer Token Usage (RFC 6750). En la autenticación de token de portador, Azure AD B2C envía una solicitud HTTP con un token en el encabezado de autorización.

Authorization: Bearer <token>

Un token de portador es una cadena opaca. Puede ser un token de acceso JWT o cualquier cadena que la API de REST espera que Azure AD B2C envíe en el encabezado de autorización. Azure AD B2C admite los siguientes tipos:

  • Token de portador. Para poder enviar el token de portador en el perfil técnico RESTful, la política debe adquirir primero el token de portador y, a continuación, utilizarlo en el perfil técnico RESTful.
  • Token de portador estático. Utilice este enfoque cuando la API de REST emita un token de acceso a largo plazo. Para usar un token de portador estático, cree una clave de política y haga una referencia desde el perfil técnico de RESTful a su clave de política.

Uso del portador de OAuth2

En los pasos siguientes se muestra cómo usar las credenciales de cliente para obtener un token de portador y pasarlo al encabezado de autorización de las llamadas a la API de REST.

Definir una notificación para almacenar el token de portador

Una notificación proporciona un almacenamiento temporal de datos durante la ejecución de una directiva de Azure AD B2C. El esquema de notificaciones es el lugar donde se declaran las notificaciones. El token de acceso debe almacenarse en una notificación para usarse más tarde.

  1. Abra el archivo de extensiones de su política. Por ejemplo: SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
  2. Busque el elemento BuildingBlocks . Si el elemento no existe, agréguelo.
  3. Busque el elemento ClaimsSchema . Si el elemento no existe, agréguelo.
  4. Agregue los siguientes reclamos al elemento ClaimsSchema.
<ClaimType Id="bearerToken">
  <DisplayName>Bearer token</DisplayName>
  <DataType>string</DataType>
</ClaimType>
<ClaimType Id="grant_type">
  <DisplayName>Grant type</DisplayName>
  <DataType>string</DataType>
</ClaimType>
<ClaimType Id="scope">
  <DisplayName>scope</DisplayName>
  <DataType>string</DataType>
</ClaimType>

Adquisición de un token de acceso

Puede obtener un token de acceso de varias maneras, para el de un proveedor de identidades federado, llamando a una API de REST que devuelva un token de acceso, mediante un flujo de ROPC o mediante el flujo de credenciales de cliente. El flujo de credenciales de cliente se usa normalmente para interacciones de servidor a servidor que deben ejecutarse en segundo plano, sin interacción inmediata con un usuario.

Advertencia

Microsoft recomienda que no use el flujo de ROPC. Este flujo requiere un alto grado de confianza en la aplicación y conlleva riesgos que no están presentes en otros flujos. Solo debe usar este flujo cuando no se puedan usar otros más seguros.

Adquisición de un token de acceso de Microsoft Entra

En el ejemplo siguiente se usa un perfil técnico de la API de REST para realizar una solicitud al punto de conexión de token de Microsoft Entra mediante las credenciales de cliente pasadas como autenticación básica HTTP. Para obtener más información, consulte La Plataforma de identidad de Microsoft y el flujo de credenciales de cliente de OAuth 2.0.

Antes de que el perfil técnico pueda interactuar con el identificador de Microsoft Entra para obtener un token de acceso, debe registrar una aplicación. Azure AD B2C se basa en la plataforma Microsoft Entra. Puede crear la aplicación en el inquilino de Azure AD B2C o en cualquier inquilino de Microsoft Entra que administre. Para registrar una solicitud:

  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 el menú de la izquierda, seleccione Microsoft Entra ID. O bien, seleccione Todos los servicios y busque y seleccione Microsoft Entra ID.
  4. Seleccione Registros de aplicaciones y luego Nuevo registro.
  5. Escriba un Nombre para la aplicación. Por ejemplo, Client_Credentials_Auth_app.
  6. En Tipos de cuenta admitidos, seleccione Solo cuentas en este directorio organizativo.
  7. Seleccione Registrar.
  8. Registre el ID de la aplicación (cliente).

Para un flujo de credenciales de cliente, tiene que crear un secreto de aplicación. El secreto de cliente también se conoce como contraseña de aplicación. La aplicación usa el secreto para adquirir un token de acceso.

  1. En la página Microsoft Entra ID: registros de aplicaciones, seleccione la aplicación que ha creado, por ejemplo, Client_Credentials_Auth_app.
  2. En el menú de la izquierda, en Administrar, seleccione Certificados y secretos.
  3. Seleccione Nuevo secreto de cliente.
  4. Escriba una descripción para el secreto de cliente en el cuadro Descripción. Por ejemplo, clientsecret1.
  5. En Expira, seleccione el tiempo durante el cual el secreto es válido y, a continuación, seleccione Agregar.
  6. Registre el valor del secreto para usarlo en el código de la aplicación cliente. Este valor secreto no se volverá a mostrar una vez que abandone esta página. Use este valor como secreto de aplicación en el código de la aplicación.

Creación de las claves de directiva de Azure AD B2C

Tiene que almacenar el identificador de cliente y el valor de 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 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. En la página Información general, seleccione Identity Experience Framework.
  5. Seleccione Claves de directiva y, a continuación, seleccione Agregar.
  6. En Opciones, elija Manual.
  7. Introduzca un nombre para la clave de política, SecureRESTClientId. El prefijo B2C_1A_ se agrega automáticamente al nombre de la clave.
  8. En Secreto, introduzca el ID de cliente que registró anteriormente.
  9. En Uso de claves, seleccione Signature.
  10. Selecciona Crear.
  11. Cree otra clave de directiva con la siguiente configuración:
    • Nombre: SecureRESTClientSecret.
    • Secreto: introduzca el secreto de cliente que ha grabado anteriormente

Para ServiceUrl, reemplace your-tenant-name por el nombre de su inquilino de Microsoft Entra. Consulte la referencia del perfil técnico RESTful para conocer todas las opciones disponibles.

<TechnicalProfile Id="REST-AcquireAccessToken">
  <DisplayName></DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="ServiceUrl">https://login.microsoftonline.com/your-tenant-name.onmicrosoft.com/oauth2/v2.0/token</Item>
    <Item Key="AuthenticationType">Basic</Item>
     <Item Key="SendClaimsIn">Form</Item>
  </Metadata>
  <CryptographicKeys>
    <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_SecureRESTClientId" />
    <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_SecureRESTClientSecret" />
  </CryptographicKeys>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="grant_type" DefaultValue="client_credentials" AlwaysUseDefaultValue="true" />
    <InputClaim ClaimTypeReferenceId="scope" DefaultValue="https://graph.microsoft.com/.default" AlwaysUseDefaultValue="true" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="bearerToken" PartnerClaimType="access_token" />
  </OutputClaims>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

Nota:

Si usa las notificaciones grant_type o scope en otros perfiles técnicos, se recomienda que también especifiquen DefaultValue y usen AlwaysUseDefaultValue="true" para evitar posibles conflictos al enlazar con el valor incorrecto.

Cambiar el perfil técnico de REST para usar la autenticación de token de portador

Para admitir la autenticación de token de portador en la política personalizada, modifique el perfil técnico de la API de REST mediante los pasos siguientes:

  1. En el directorio de trabajo, abra el archivo de política de extensión TrustFrameworkExtensions.xml .

  2. Busque el nodo <TechnicalProfile> que incluya Id="REST-API-SignUp".

  3. Busque el elemento <Metadata>.

  4. Cambie AuthenticationType a Bearer, como se indica a continuación:

    <Item Key="AuthenticationType">Bearer</Item>
    
  5. Cambie o agregue UseClaimAsBearerToken a bearerToken, como se indica a continuación. bearerToken es el nombre de la notificación de la que se recupera el token de portador (notificación de salida de REST-AcquireAccessToken).

    <Item Key="UseClaimAsBearerToken">bearerToken</Item>
    
  6. Agregue la reclamación del paso anterior como reclamación de entrada.

    <InputClaim ClaimTypeReferenceId="bearerToken"/>
    

Después de actualizar la directiva, el perfil técnico debe tener un aspecto similar al siguiente código XML:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">Bearer</Item>
        <Item Key="UseClaimAsBearerToken">bearerToken</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="bearerToken"/>
      </InputClaims>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Llamada al perfil técnico de REST

Para llamar al perfil técnico REST-GetProfile, primero debe adquirir un token de acceso de Microsoft Entra mediante el perfil técnico REST-AcquireAccessToken. En el REST-GetProfile ejemplo siguiente se muestra cómo llamar al perfil técnico desde un perfil técnico de validación:

<ValidationTechnicalProfiles>
  <ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
  <ValidationTechnicalProfile ReferenceId="REST-GetProfile" />
</ValidationTechnicalProfiles>

En el siguiente ejemplo se muestra cómo llamar al perfil técnico REST-GetProfile desde un recorrido del usuario o un subrecorrido:

<OrchestrationSteps>
  <OrchestrationStep Order="2" Type="ClaimsExchange">
    <ClaimsExchanges>
      <ClaimsExchange Id="REST-AcquireAccessTokens" TechnicalProfileReferenceId="REST-AcquireAccessToken" />
    </ClaimsExchanges>
  </OrchestrationStep>

  <OrchestrationStep Order="3" Type="ClaimsExchange">
    <ClaimsExchanges>
      <ClaimsExchange Id="REST-GetProfile" TechnicalProfileReferenceId="REST-GetProfile" />
    </ClaimsExchanges>
  </OrchestrationStep>
</OrchestrationSteps>

Uso de un portador de OAuth2 estático

Agrega la clave de política del token portador de OAuth2

Para configurar un perfil técnico de la API de REST con un token de portador de OAuth2, obtenga un token de acceso del propietario de la API de REST. A continuación, cree la siguiente clave criptográfica para almacenar el token de portador.

  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. En la página Información general, 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: RestApiBearerToken. El prefijo B2C_1A_ se agrega automáticamente al nombre de la clave.
  8. En Secreto, escriba el secreto de cliente que registró anteriormente.
  9. En Uso de claves, seleccione Encryption.
  10. Selecciona Crear.

Configure el perfil técnico de la API de REST para usar la clave de política de token de portador

Después de crear la clave necesaria, configure los metadatos del perfil técnico de la API de REST para que hagan referencia al token de portador.

  1. En el directorio de trabajo, abra el archivo de política de extensión (TrustFrameworkExtensions.xml).
  2. Busque el perfil técnico de la API REST. Por ejemplo REST-ValidateProfile, o REST-GetProfile.
  3. Busque el elemento <Metadata>.
  4. Cambia AuthenticationType a Bearer.
  5. Cambie el valor de AllowInsecureAuthInProduction a false.
  6. Inmediatamente después del elemento de cierre </Metadata> , agregue el siguiente fragmento XML:
    <CryptographicKeys>
       <Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" />
    </CryptographicKeys>
    

El siguiente fragmento XML es un ejemplo de un perfil técnico RESTful configurado con autenticación de token de portador:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">Bearer</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BearerAuthenticationToken" StorageReferenceId="B2C_1A_RestApiBearerToken" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Agregue la referencia del perfil técnico de validación al perfil técnico de registro, que llama a REST-AcquireAccessToken. Este comportamiento significa que Azure AD B2C pasa a crear la cuenta en el directorio solo después de una validación correcta.

Por ejemplo:

```XML
<ValidationTechnicalProfiles>
   ....
   <ValidationTechnicalProfile ReferenceId="REST-AcquireAccessToken" />
   ....
</ValidationTechnicalProfiles>

Autenticación mediante clave de API

Algunos servicios usan un mecanismo de "clave de API" para ofuscar el acceso a los puntos de conexión HTTP durante el desarrollo. Para ello, exigen que el autor de llamada incluya una clave única como un encabezado HTTP o un parámetro de consulta HTTP. Para lograrlo en Azure Functions, incluya code como parámetro de consulta en la dirección URL del punto de conexión del conector de la API. Por ejemplo, https://contoso.azurewebsites.net/api/endpoint?code=0123456789.

Este no es un mecanismo que deba usarse solo en la producción. Por lo tanto, siempre se requiere la configuración de autenticación básica o de certificado. Si no desea implementar ningún método de autenticación (no recomendado) con fines de desarrollo, puede seleccionar la autenticación "básica" en la configuración del conector de API y usar valores temporales para username y password que su API puede ignorar mientras implementa la autorización adecuada.

La clave de API es un identificador único que se utiliza para autenticar a un usuario para acceder a un punto de conexión de la API de REST. La clave se envía en un encabezado HTTP personalizado. Por ejemplo, el desencadenador HTTP de Azure Functions usa el x-functions-key encabezado HTTP para identificar al solicitante.

Incorporación de claves de directiva de clave de API

Para configurar un perfil técnico de API de REST con autenticación de clave de API, cree la siguiente clave criptográfica para almacenar la clave de API:

  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. En la página Información general, seleccione Identity Experience Framework.
  5. Seleccione Claves de directiva y, luego, Agregar.
  6. En Opciones, seleccione Manual.
  7. En Nombre, escriba RestApiKey. Es posible que el B2C_1A_ de prefijo se agregue automáticamente.
  8. En el cuadro Secreto , introduzca la clave de la API de REST.
  9. En Uso de claves, seleccione Cifrado.
  10. Selecciona Crear.

Configurar el perfil técnico de la API de REST para utilizar la autenticación de clave de API

Después de crear la clave necesaria, configure los metadatos del perfil técnico de la API de REST para que hagan referencia a las credenciales.

  1. En el directorio de trabajo, abra el archivo de política de extensión (TrustFrameworkExtensions.xml).
  2. Busque el perfil técnico de la API REST. Por ejemplo REST-ValidateProfile, o REST-GetProfile.
  3. Busque el elemento <Metadata>.
  4. Cambia AuthenticationType a ApiKeyHeader.
  5. Cambie el valor de AllowInsecureAuthInProduction a false.
  6. Inmediatamente después del elemento de cierre </Metadata> , agregue el siguiente fragmento XML:
    <CryptographicKeys>
        <Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" />
    </CryptographicKeys>
    

El ID de la clave criptográfica define el encabezado HTTP. En este ejemplo, la clave de API se envía como x-functions-key.

El siguiente fragmento XML es un ejemplo de un perfil técnico RESTful configurado para llamar a una función de Azure con autenticación de clave de API:

<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-GetProfile">
      <DisplayName>Get user extended profile Azure Function web hook</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-account.azurewebsites.net/api/GetProfile?code=your-code</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="AuthenticationType">ApiKeyHeader</Item>
        <Item Key="AllowInsecureAuthInProduction">false</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="x-functions-key" StorageReferenceId="B2C_1A_RestApiKey" />
      </CryptographicKeys>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>
  • Empiece a trabajar con nuestros ejemplos.
  • Obtenga más información sobre el elemento de perfil técnico RESTful en la referencia de directivas personalizadas.