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.
Obtenga información sobre cómo restringir el acceso a la API de Azure API Management a los clientes que se han autenticado con Azure Active Directory B2C (Azure AD B2C). Siga las instrucciones de este artículo para crear y probar una directiva de entrada en Azure API Management que restrinja el acceso solo a las solicitudes que incluyan un token de acceso válido emitido por Azure AD B2C.
Prerrequisitos
Antes de comenzar, asegúrese de contar con los siguientes recursos:
- Un inquilino de Azure AD B2C
- Una aplicación web registrada en su inquilino
- Flujos de usuario creados en su inquilino
- Una API publicada en Azure API Management
Obtención del identificador de aplicación de Azure AD B2C
Al proteger una API en Azure API Management con Azure AD B2C, necesita varios valores para la directiva de entrada que crea en Azure API Management. En primer lugar, registre el identificador de aplicación de una aplicación que haya creado anteriormente en el inquilino de Azure AD B2C. Si usa la aplicación que creó para satisfacer los requisitos previos, utilice el id. de aplicación de webapp1.
Para registrar una aplicación en el inquilino de Azure AD B2C, puede usar nuestra nueva experiencia unificada de registros de aplicaciones o nuestra experiencia de aplicaciones heredadas. Obtén más información sobre la experiencia de nuevos registros.
- 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.
- En el panel izquierdo, seleccione Azure AD B2C. Como alternativa, puede seleccionar Todos los servicios y, a continuación, buscar y seleccionar Azure AD B2C.
- Seleccione Registros de aplicaciones y, a continuación, seleccione la pestaña Aplicaciones en propiedad .
- Registre el valor en la columna Id. de aplicación (cliente) para webapp1 o para otra aplicación que haya creado anteriormente.
Obtención del punto de conexión del emisor de un token
A continuación, obtenga la dirección URL de configuración conocida de uno de los flujos de usuario de Azure AD B2C. También necesita el URI del punto de conexión del emisor de tokens que desea admitir en Azure API Management.
En Azure Portal, vaya al inquilino de Azure AD B2C.
En Directivas, seleccioneFlujos de usuario.
Seleccione una directiva existente (por ejemplo, B2C_1_signupsignin1) y, a continuación, seleccione Ejecutar flujo de usuario.
Anote la dirección URL del hipervínculo que se muestra bajo el encabezado Ejecutar flujo de usuario, cerca de la parte superior de la página. Esta dirección URL es el conocido punto de conexión de detección de OpenID Connect del flujo de usuario, que usará en la sección siguiente cuando configure la directiva de entrada en Azure API Management.
Seleccione el hipervínculo para ir a la página de configuración conocida de OpenID Connect.
En la página que se abre en su navegador, registre el valor
issuer
. Por ejemplo:https://<tenant-name>.b2clogin.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/
Usará este valor en la sección siguiente, cuando configure la API en Azure API Management.
Ahora debería tener dos direcciones URL registradas para su uso en la siguiente sección: la dirección URL del punto de conexión de configuración conocida de OpenID Connect y el URI del emisor. Por ejemplo:
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_signupsignin1/v2.0/.well-known/openid-configuration
https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/
Configuración de la directiva de entrada en Azure API Management
Ahora está listo para agregar la directiva de entrada en Azure API Management que valida las llamadas a la API. Al agregar una política de validación de token web JSON (JWT) que verifica la audiencia y el emisor en un token de acceso, puede asegurarse de que solo se acepten las llamadas a la API con un token válido.
En Azure Portal, vaya a la instancia de Azure API Management.
Seleccione API.
Seleccione la API que desea proteger con Azure AD B2C.
Seleccione la pestaña Diseño.
En Procesamiento de entrada, seleccione </> para abrir el editor de código de directiva.
Coloque la siguiente
<validate-jwt>
etiqueta dentro de la<inbound>
directiva y, a continuación, haga lo siguiente:a) Actualice el valor de
url
del elemento<openid-config>
con la conocida dirección URL de configuración de la directiva.
b. Actualice el<audience>
elemento con el identificador de aplicación de la aplicación que creó anteriormente en el inquilino B2C (por ejemplo, webapp1).
c. Actualice el elemento<issuer>
con el punto de conexión del emisor del token que anotó anteriormente.<policies> <inbound> <validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid."> <openid-config url="https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_signupsignin1/v2.0/.well-known/openid-configuration" /> <audiences> <audience>00001111-aaaa-2222-bbbb-3333cccc4444</audience> </audiences> <issuers> <issuer>https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer> </issuers> </validate-jwt> <base /> </inbound> <backend> <base /> </backend> <outbound> <base /> </outbound> <on-error> <base /> </on-error> </policies>
Soporta múltiples aplicaciones y emisores
Normalmente, varias aplicaciones interactúan con una única API REST. Para permitir que la API acepte tokens destinados a varias aplicaciones, agregue sus identificadores de aplicación al elemento de <audiences>
la directiva de entrada de Azure API Management.
<!-- Accept tokens intended for these recipient applications -->
<audiences>
<audience>00001111-aaaa-2222-bbbb-3333cccc4444</audience>
<audience>11112222-bbbb-3333-cccc-4444dddd5555</audience>
</audiences>
Del mismo modo, para admitir varios emisores de tokens, agregue las URI de los puntos de conexión al elemento <issuers>
de la directiva de entrada de Azure API Management.
<!-- Accept tokens from multiple issuers -->
<issuers>
<issuer>https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
<issuer>https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
</issuers>
Realizar la migración a b2clogin.com
Si tiene una API de Azure API Management que valida los tokens emitidos por el endpoint heredado login.microsoftonline.com
, debe migrar la API y las aplicaciones que la llaman para que utilicen tokens emitidos por b2clogin.com.
Puede seguir este proceso general para realizar una migración preconfigurada:
- Agregue compatibilidad en la directiva de entrada de Azure API Management para los tokens emitidos por b2clogin.com y login.microsoftonline.com.
- Actualice las aplicaciones una por una para obtener tokens del endpoint b2clogin.com.
- Una vez que todas las aplicaciones obtengan correctamente los tokens de b2clogin.com, quite la compatibilidad con los tokens emitidos por login.microsoftonline.com de la API.
En el siguiente ejemplo de directiva de entrada de Azure API Management se muestra cómo aceptar tokens emitidos por b2clogin.com y login.microsoftonline.com. Además, la política admite solicitudes de API de dos aplicaciones.
<policies>
<inbound>
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
<openid-config url="https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/B2C_1_signupsignin1/v2.0/.well-known/openid-configuration" />
<audiences>
<audience>00001111-aaaa-2222-bbbb-3333cccc4444</audience>
<audience>11112222-bbbb-3333-cccc-4444dddd5555</audience>
</audiences>
<issuers>
<issuer>https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
<issuer>https://<tenant-name>.b2clogin.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0/</issuer>
</issuers>
</validate-jwt>
<base />
</inbound>
<backend> <base /> </backend>
<outbound> <base /> </outbound>
<on-error> <base /> </on-error>
</policies>
Pasos siguientes
Para obtener más información sobre las directivas de Azure API Management, consulte el índice de referencia de directivas de Azure API Management.
Para obtener información sobre cómo migrar API web basadas en OWIN y sus aplicaciones a b2clogin.com, consulte Migración de una API web basada en OWIN a b2clogin.com.