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
- Un dispositivo basado en Azure Sphere con características de desarrollo.
- Inquilino de Azure Sphere.
- Configure un entorno de desarrollo para Azure Sphere.
- Inquilino de Azure Active Directory (identificador de inquilino).
- Suscripción de Azure.
- Agregue el identificador de aplicación de API pública de Azure Sphere al inquilino de Azure.
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:
- En Azure Portal, en el panel de navegación izquierdo, haga clic en App Services.
- Elija las suscripciones necesarias en la lista desplegable y seleccione la aplicación en los resultados de búsqueda.
- En el menú de la aplicación lógica, en Configuración, seleccione Identidad.
- Habilite la identidad asignada por el sistema estableciendo el estado en Activado.
- Haga clic en Save(Guardar).
- 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:
- Inquilino de Azure Sphere: ejecute el comando azsphere tenant show-selected mediante la CLI de Azure Sphere.
- Identificador de inquilino de Azure: busque el identificador de inquilino a través de Azure Portal. Copie el identificador de inquilino de Azure Active Directory.
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-tttttttttttt
de inquilino de Azure Sphere y, a continuación, se agrega el rol Colaborador para este usuario.
Inicie sesión con el inicio de sesión de Azure Sphere mediante la CLI de Azure Sphere:
azsphere login
Seleccione el inquilino necesario:
azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
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;
}