Protección de una aplicación de página única con el inicio de sesión de usuario

La guía siguiente pertenece a una aplicación que se hospeda en un servidor de contenido o que tiene dependencias de servidor web mínimas. La aplicación proporciona recursos protegidos solo a usuarios de Microsoft Entra. El objetivo del escenario es permitir que la aplicación web se autentique en Microsoft Entra ID y llame a las API REST de Azure Maps en nombre del usuario.

Para ver los detalles de autenticación de la cuenta de Azure Maps en Azure Portal:

  1. Inicie sesión en Azure Portal.

  2. Vaya al menú de Azure Portal. Seleccione Todos los recursos y, a continuación, seleccione la cuenta de Azure Maps.

  3. En Configuración en el panel izquierdo, seleccione Autenticación.

    Screenshot showing your Azure Maps authentication options in the Azure portal.

Se crean tres valores cuando se crea la cuenta de Azure Maps. Se usan para admitir dos tipos de autenticación en Azure Maps:

  • Autenticación de Microsoft Entra: Client ID representa la cuenta que se va a usar para las solicitudes de API REST. El valor de Client ID debe almacenarse en la configuración de la aplicación y recuperarse antes de realizar solicitudes HTTP de Azure Maps que usan la autenticación de Microsoft Entra.
  • Autenticación de clave compartida: Primary Key y Secondary Key se usan como clave de suscripción para la autenticación de clave compartida. La autenticación de clave compartida se basa en pasar la clave generada por la cuenta de Azure Maps con cada solicitud a Azure Maps. Se recomienda volver a generar periódicamente las claves. Para mantener las conexiones actuales durante la regeneración, se proporcionan dos claves. Se puede usar una clave mientras se regenera la otra. Cuando regenere las claves, debe actualizar todas las aplicaciones que acceden a esta cuenta para usar las nuevas claves. Para obtener más información, consulte Autenticación con Azure Maps.

Creación de un registro de aplicación en Microsoft Entra ID

Cree la aplicación web en Microsoft Entra ID para que los usuarios inicien sesión. Esta aplicación web delegará el acceso de los usuarios a las API REST de Azure Maps.

  1. En Azure Portal, en la lista de servicios de Azure, seleccione Microsoft Entra ID>Registros de aplicaciones>Nuevo registro.

    A screenshot showing application registration in Microsoft Entra ID.

  2. Escriba un Nombre, elija un Tipo de cuenta de soporte, proporcione un identificador URI de redirección que represente la dirección URL a la que Microsoft Entra ID emite el token, que es la dirección URL donde se hospeda el control de mapa. Para ver un de ejemplo detallado, consulte Ejemplos de Microsoft Entra ID de Azure Maps. Después, seleccione Register (Registrar).

  3. Para asignar permisos de API delegados a Azure Maps, vaya a la aplicación. A continuación, en Registros de aplicaciones, seleccione Permisos de API>Add a permission (Agregar un permiso). En API usadas en mi organización, busque y seleccione Azure Maps.

    Screenshot showing a list of APIs my organization uses.

  4. Active la casilla situada junto a Access Azure Maps (Acceder a Azure Maps) y seleccione Agregar permisos.

    Screenshot showing the request app API permissions screen.

  5. Habilite oauth2AllowImplicitFlow. Para ello, en la sección Manifiesto del registro de la aplicación, establezca oauth2AllowImplicitFlow en true.

  6. Copie el identificador de la aplicación de Microsoft Entra y el identificador del inquilino de Microsoft Entra del registro de la aplicación que se usarán en el SDK web. Agregue los detalles del registro de la aplicación de Microsoft Entra y el valor de x-ms-client-id de la cuenta de Azure Map al SDK web.

        <link rel="stylesheet" href="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css" type="text/css" />
        <script src="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.js" />
        <script>
            var map = new atlas.Map("map", {
                center: [-122.33, 47.64],
                zoom: 12,
                language: "en-US",
                authOptions: {
                    authType: "aad",
                    clientId: "<insert>",  // azure map account client id
                    aadAppId: "<insert>",  // azure ad app registration id
                    aadTenant: "<insert>", // azure ad tenant id
                    aadInstance: "https://login.microsoftonline.com/"
                }
            });
        </script>   
    
  7. Configure el control de acceso basado en roles de Azure (Azure RBAC) para usuarios o grupos. Consulte las secciones siguientes para habilitar Azure RBAC.

Concesión de acceso basado en roles para usuarios de Azure Maps

Para conceder el control de acceso basado en rol de Azure (Azure RBAC ), se asignan un grupo o una entidad de seguridad de Microsoft Entra a una o varias definiciones de roles de Azure Maps.

Para ver las definiciones de roles de Azure disponibles para Azure Maps, consulte Visualización de definiciones de roles integrados de Azure Maps.

Para obtener pasos detallados sobre cómo asignar un rol de Azure Maps disponible a la identidad administrada o a la entidad de servicio creadas, consulte Asignación de roles de Azure mediante Azure Portal.

Para administrar de forma eficaz la aplicación de Azure Maps y el acceso a los recursos por parte de una gran cantidad de usuarios, consulte Grupos de Microsoft Entra.

Importante

Para que los usuarios puedan autenticarse en la aplicación, primero deben crearse en Microsoft Entra ID. Para más información, consulte Incorporación o eliminación de usuarios mediante Microsoft Entra ID.

Para obtener información sobre cómo administrar eficazmente un directorio grande para los usuarios, consulte Microsoft Entra ID.

Advertencia

Las definiciones de roles de Azure Maps integradas proporcionan un acceso de autorización muy amplio a muchas API REST de Azure Maps. Para restringir al mínimo el acceso a las API, consulte cómo crear una definición de roles personalizada y asignar la identidad asignada por el sistema a la definición de roles personalizada. Esto proporciona el privilegio mínimo necesario para que la aplicación acceda a Azure Maps.

Pasos siguientes

Más información sobre el escenario de aplicación de página única:

Descubra las métricas de uso de API de la cuenta de Azure Maps:

Explore ejemplos que muestran cómo integrar Microsoft Entra ID con Azure Maps: