Configuración de autenticación (versión preliminar)
Nota:
Para configurar las siguientes opciones de autenticación en la guía de configuración se requiere contar con el rol de administrador global.
Para poder trabajar con la autenticación, debe configurar las tres partes que la componen:
- Aplicación de Microsoft Entra ID (anteriormente aplicación de Azure AD)
- Ejemplo de front-end
- Ejemplo de back-end
Para poder trabajar con la autenticación en Fabric, siga esta guía.
Aprovisionamiento del servicio de Azure Storage
En este ejemplo se muestra cómo almacenar o leer datos en almacenes de lago. Esto requiere generar tokens para el servicio de Azure Storage en flujos OBO. Para generar tokens, los usuarios deben dar su consentimiento a la aplicación mediante Azure Storage. Para dar su consentimiento, Azure Storage debe aprovisionarse en el inquilino.
Para asegurarse de que Azure Storage está aprovisionado en el inquilino:
Inicie sesión en Azure Portal
Vaya a Microsoft Entra ID>Aplicaciones empresariales
En los filtros, elija tipo de aplicación = todas las aplicaciones. El id. de la aplicación comienza por e406a681-f3d4-42a8-90b6-c2b029497af1
Si ve la aplicación de Azure Storage, ya está aprovisionada y puede continuar con el paso siguiente. Si no, es necesario que un administrador global lo aprovisione.
Abra Windows PowerShell como administrador y ejecute la siguiente secuencia de comandos:
Install-Module az
Import-Module az
Connect-AzureAD
New-AzureADServicePrincipal -AppId e406a681-f3d4-42a8-90b6-c2b029497af1
Configuración manual de la aplicación en Microsoft Entra ID
Para trabajar con autenticación, debe tener una aplicación registrada en Microsoft Entra ID. Si no tiene ninguna aplicación registrada, siga esta guía para crear una aplicación nueva.
Aplique las siguientes configuraciones a la aplicación:
- Convierta la aplicación en una aplicación multiinquilino.
- En el caso de las aplicaciones de desarrollo, configure el URI de redireccionamiento como
http://localhost:60006/close
con la plataforma SPA. Esta configuración es necesaria para admitir el consentimiento. Puede agregar otros URI de redireccionamiento si es necesario.
Nota:
- El URI de redireccionamiento debe ser un URI que simplemente cierre la página al navegar a ella. El URI
http://localhost:60006/close
ya está configurado en el front-end de muestra y puede cambiarlo en Frontend/src/index.ts (si lo cambia, asegúrese de que coincide con el que se ha configurado para la aplicación). - Puede configurar el URI de redireccionamiento después de crear la aplicación en el menú Administrar en Autenticación.
Cambie el URI del id. de la aplicación de su aplicación. Vaya a Administrar>Exponer una API y edite el URI del id. de la aplicación:
En el escenario de desarrollo, el URI de id. de la aplicación debe comenzar por
api://localdevinstance/<Workload publisher's tenant ID in lower case (the tenant ID of the user used in Fabric to run the sample)>/<Name of your workload>
y una subruta opcional al final que comience por/
(consulte los ejemplos).Donde:
- El nombre de la carga de trabajo es exactamente como se especifica en el manifiesto.
- El URI del id. no termina en una barra diagonal.
- Al final del URI del id. puede haber una subruta opcional: una cadena que conste de letras minúsculas o mayúsculas en inglés, números y guiones, con un máximo de 36 caracteres.
Sugerencia
Para obtener ayuda para buscar el id. del inquilino, consulte Procedimiento para buscar el id. del inquilino de Microsoft Entra.
Por ejemplo, si el id. del inquilino del publicador es 853d9f4f-c71b-4420-b6ec-60e503458946 y el nombre de la carga de trabajo es Fabric.WorkloadSample, entonces:
Los siguientes URI son válidos
api://localdevinstance/853d9f4f-c71b-4420-b6ec-60e503458946/Fabric.WorkloadSample
api://localdevinstance/853d9f4f-c71b-4420-b6ec-60e503458946/Fabric.WorkloadSample/abc
Los siguientes URI no son válidos
api://localdevinstance/853d9f4f-c71b-4420-b6ec-60e503458946/Fabric.WorkloadSample/af/
api://localdevinstance/853d9f4f-c71b-4420-b6ec-60e503458946/Fabric.WorkloadSample/af/a
- Cualquier URI de id. que no empiece por
api://localdevinstance/853d9f4f-c71b-4420-b6ec-60e503458946/Fabric.WorkloadSample
Adición de un ámbito para operaciones CRUD o de trabajos
Para trabajar con las API de las operaciones CRUD (crear, leer, actualizar y eliminar) de los elementos de la carga de trabajo y realizar otras operaciones con trabajos, agregue un ámbito y agregue una aplicación de servicio de Fabric a las aplicaciones previamente autorizadas para ese ámbito para indicar que la API (el ámbito que ha creado) confía en Fabric:
En Exponer una API, seleccione Agregar un ámbito. Asigne al ámbito el nombre FabricWorkloadControl y proporcione los detalles necesarios.
En Aplicaciones cliente autorizadas, seleccione Agregar una aplicación cliente. Agregue
00000009-0000-0000-c000-000000000000
(aplicación de servicio de Fabric) y seleccione el ámbito.
Adición de ámbitos para la API del plano de datos
Es necesario registrar otros ámbitos para representar grupos de operaciones, expuestos por la API del plano de datos. En el ejemplo de back-end, se proporcionan cuatro ejemplos. Puede verlos en Backend/src/Constants/scopes.cs. Los ámbitos son:
Item1.Read.All
: se usa para leer los elementos de la carga de trabajoItem1.ReadWrite.All
: se usa para leer los elementos de la carga de trabajo y escribir en ellosFabricLakehouse.Read.All
: se usa para leer los archivos del almacén de lagoFabricLakehouse.ReadWrite.All
: se usa para leer y escribir en los archivos del almacén de lago
Autorice 871c010f-5e61-4fb1-83ac-98610a7e9110
(la aplicación cliente de Fabric) previamente para estos ámbitos.
Los identificadores de aplicación de estas aplicaciones se pueden encontrar en Microsoft Power BI y en el servicio Power BI.
Este es el aspecto de la sección Exponer una API en la aplicación. En este ejemplo, el URI de id. es api://localdevinstance/853d9f4f-c71b-4420-b6ec-60e503458946/Fabric.WorkloadSample
:
Generación de un secreto para la aplicación
En Certificados y secretos, seleccione la pestaña Secretos y agregue un secreto. Asígnele el nombre que quiera y guárdelo. Use este secreto al configurar el ejemplo de back-end.
Agregar notificación opcional "idtyp"
En Configuración del token, seleccione Agregar una notificación opcional. Elija Token de acceso y agregue idtyp.
Agrega permisos de API
En *Permisos de API, agregue los permisos deseados para la aplicación. Para el back-end de muestra, agregue el almacenamiento user_impersonation (para las API de OneLake) y Power BI Workspace.Read.all (para las API de control de carga de trabajo):
Asegúrese de que la aplicación está configurada para que funcione con el token de autenticación v1
En Manifiesto, asegúrese de que accessTokenAcceptedVersion
esté establecido en null o "1".
Configuración de la aplicación en Microsoft Entra Identity automáticamente mediante un script
Para una configuración simplificada de la aplicación en Microsoft Entra Identity, puede optar por usar un script automatizado de PowerShell. Para configurar la aplicación, siga estos pasos:
- Instalación de la CLI de Azure: empiece por instalar la interfaz de la línea de comandos de Azure (CLI) Instalación de la CLI de Azure para Windows | Microsoft Learn2.
- Ejecución del script CreateDevAADApp.ps1: ejecute el script CreateDevAADApp. Se le pedirá que inicie sesión con las credenciales de la cuenta de usuario en la que piensa crear la aplicación.
- Suministro de la información necesaria: cuando se le solicite, escriba el nombre deseado para la aplicación, el nombre de la carga de trabajo (con el prefijo "Org.") y el identificador de inquilino.
Después de la ejecución correcta del script, generará todos los detalles necesarios para configurar la carga de trabajo. Además, proporcionará una dirección URL directa a la aplicación y una dirección URL de consentimiento administrativo para la autorización de la aplicación en todo el inquilino.
Ejemplo de uso
Para crear una aplicación denominada "myWorkloadApp" con el nombre de carga de trabajo "Org.Myworkload" para el inquilino especificado, ejecute el siguiente comando en PowerShell:
powershell .\CreateDevAADApp.ps1 -applicationName "myWorkloadApp" -workloadName "Org.Myworkload" -tenantId "cb1f79ad-7930-43c0-8d84-c1bf8d15c8c7"
En este ejemplo se muestra cómo usar el script CreateDevAADApp.ps1
con argumentos de línea de comandos para automatizar el proceso de configuración de la aplicación. El identificador de inquilino proporcionado es un ejemplo y se debe reemplazar por el identificador de inquilino real.
Configuración de la carga de trabajo (back-end)
En el ejemplo back-end, vaya al archivo
src/appsettings.json
en el repositorio y configure las opciones:PublisherTenantId
: id. del inquilino del publicadorClientId
: id. de la aplicación (puede encontrarlo en Microsoft Entra ID, en información general).ClientSecret
: el secreto que creó anteriormente al configurar la aplicación de Entra.Audience
: el URI del id. configurado en nuestra aplicación de Entra.
Configure el workloadManifest.xml. Vaya al archivo
src/Packages/manifest/files/WorkloadManifest.xml
en el repositorio y configure elAppId
,redirectUri
yResourceId
(URI de identificador) en AADApps.
<AADApp>
<AppId>YourApplicationId</AppId>
<RedirectUri>YourRedirectUri</RedirectUri>
<ResourceId>YourResourceId</ResourceId>
</AADApp>
Configure el manifiesto local de la carga de trabajo y adquiera un token para la aplicación (front-end)
Nota:
Este paso solo es aplicable al escenario de devmode.
Después de configurar la aplicación, agregue las siguientes configuraciones a la sección devAADAppConfig
del archivo de configuración Frontend/.env.dev
ubicado en el repositorio:
"devAADAppConfig": {
"DEV_AAD_CONFIG_AUDIENCE": "", // The ID URI configured in your application for developer scenario
"DEV_AAD_CONFIG_REDIRECT_URI": "http://localhost:60006/close", // or the path you configured in index.ts
"DEV_AAD_CONFIG_APPID": "" // your app Id
}
Solicitud de un token y consentimiento para la aplicación
Nota:
Este paso es necesario para que funcionen las operaciones CRUD y de trabajos.
Ejecute el front-end de muestra y cree un elemento de ejemplo.
Desplácese hacia abajo y seleccione Ir a la página de autenticación.
Marque Solicitar consentimiento inicial y seleccione Obtener token de acceso. Esto debe desencadenar un consentimiento para la aplicación:
Este consentimiento incluye las dependencias que agregó anteriormente en Adición de permisos de API.
Las tareas siguientes se pueden realizar ahora son:
- Trabajar con operaciones CRUD o de trabajos.
- Obtener un token de acceso para la aplicación en el cliente.
- Usar la página de autenticación en el de front-end de muestra como área de juegos para llamar a las API de carga de trabajo.
- Ver qué API ofrece el back-end de muestra en Backend/src/controllers.