Compartir vía


Acceso a la API pública de Azure Sphere con identidad administrada de AAD

Importante

Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).

Puede usar este método para autenticarse en cualquier servicio que admita la autenticación de Azure Active Directory (AAD), sin credenciales en el código. La identidad administrada de AAD controla la creación o renovación de entidades de servicio en su nombre. Es una entidad de servicio de un tipo especial que solo se puede usar con recursos de Azure. Cuando se elimina la identidad administrada, se quita automáticamente la entidad de servicio correspondiente.

Asignada por el sistema: algunos servicios de Azure permiten habilitar identidades administradas directamente en una instancia de servicio. Por ejemplo, un servicio App de Azure. Cuando se habilita una identidad administrada asignada por el sistema, se crea una identidad en Azure AD que está vinculada al ciclo de vida de esa instancia de servicio. Por tanto, cuando se elimina el recurso, Azure elimina automáticamente la identidad. Por diseño, solo ese recurso de Azure puede usar esta identidad para solicitar tokens de Azure AD.

Requisitos previos

En la sección siguiente se explica cómo llamar a la API pública (PAPI) de Azure Sphere desde una aplicación web de Azure mediante la identidad administrada.

Paso 1: Habilitar la identidad asignada por el sistema en el recurso

Para habilitar la identidad asignada por el sistema en el recurso y buscar el identificador de objeto del proyecto:

  1. En Azure Portal, en el panel de navegación izquierdo, haga clic en App Services.
  2. Elija las suscripciones necesarias en la lista desplegable y seleccione la aplicación en los resultados de búsqueda.
  3. En el menú de la aplicación lógica, en Configuración, seleccione Identidad.
  4. Habilite la identidad asignada por el sistema estableciendo el estado en Activado.
  5. Haga clic en Save(Guardar).
  6. Copie el id. de objeto.

Paso 2: Adición de la identidad administrada al inquilino de Azure Sphere

Nota:

Asegúrese de que tiene lo siguiente antes de comenzar este paso:

Azure Sphere trata la entidad de servicio como otro usuario. Para adquirir un token mediante la entidad de servicio, agregue primero el usuario de la entidad de servicio al inquilino de Azure Sphere y, a continuación, asigne un rol al usuario en un inquilino de Azure Sphere mediante la CLI de Azure Sphere.

La identidad del usuario se puede generar como <ObjectID>@<TenantID.onmicrosoft.com>.

En el ejemplo siguiente se crea un usuario mediante una combinación de id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx . de objeto y id zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz . de inquilino de Azure AD en el identificador tttttttt-tttt-tttt-tttt-ttttttttttttde inquilino de Azure Sphere y, a continuación, se agrega el rol Colaborador para este usuario.

  1. Inicie sesión con el inicio de sesión de Azure Sphere mediante la CLI de Azure Sphere:

    azsphere login
    
  2. Seleccione el inquilino necesario:

    azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
    
  3. Para agregar el usuario a un rol necesario:

    azsphere role add --role Contributor --user xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
    

Paso 3: Adición del paquete NuGet Azure.Identity en el proyecto

Agregue el paquete NuGet Azure.Identity en el proyecto. El token de LA API pública (PAPI) de Azure Sphere se puede adquirir de forma predeterminadaAzureCredential.

Por ejemplo, vea el fragmento de código:

    public static async Task<string> GetAS3Token()
    {
        DefaultAzureCredential credential = new DefaultAzureCredential();
        var result = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(
        new[] { "https://firstparty.sphere.azure.net/api/.default" }));
        return result.Token;
    }