身份验证概述

Fabric 工作负载依赖于与 Microsoft Entra ID 的集成来进行身份验证和授权。

工作负载和其他 Fabric 或 Azure 组件之间的所有交互都必须伴随着对接收或发送的请求的适当身份验证支持。 必须正确生成发送的令牌,也必须正确验证接收的令牌。

建议在开始使用 Fabric 工作负载之前,先熟悉 Microsoft 标识平台。 此外,还建议详细了解 Microsoft 标识平台的最佳做法和建议

  • 从工作负载前端到工作负载后端

    此类通信的示例包括任何数据平面 API。 此通信是通过使用者令牌(委托令牌)完成的。

    有关如何在工作负载 FE 中获取令牌的信息,请阅读身份验证 API。 此外,请确保在后端身份验证和授权概述中详细了解令牌验证。

  • 从 Fabric 后端到工作负载后端

    此类通信的示例包括“创建工作负载项”。 此通信通过 SubjectAndApp 令牌完成,该令牌是一个特殊的令牌,包含应用令牌和使用者令牌的组合(请参阅后端身份验证和授权概述,了解有关此令牌的详细信息)。

    若要此通信正常工作,使用此通信的用户必须同意 Microsoft Entra 应用程序。

  • 从工作负载后端到 Fabric 后端

    这可以通过用于工作负载控制 API(例如 ResolveItemPermissions)的 SubjectAndApp 令牌,或使用者令牌(对于其他 Fabric API)来完成。

  • 从工作负载后端到外部服务

    此类通信的示例包括写入湖屋文件。 这可通过使用者令牌或应用令牌完成,具体取决于 API。

    如果打算使用使用者令牌与服务通信,请确保熟悉代理流

    请参阅身份验证教程,设置环境以使用身份验证。

身份验证 JavaScript API

Fabric 前端为 Fabric 工作负载提供 Javascript API,以便在 Microsoft Entra ID 中获取其应用程序的令牌。 在使用身份验证 JavaScript API 之前,确保完成身份验证 JavaScript API 文档。

同意

若要了解为什么需要同意,请查看 Microsoft Entra ID 中的用户和管理员同意

同意在 Fabric 工作负载中如何发生作用?

若要授予特定应用程序的同意,Fabric FE 会创建配置有工作负载应用程序 ID 的 MSAL 实例,并请求所提供范围的令牌(additionalScopesToConsent - 请参阅 AcquireAccessTokenParams)。

当为特定范围请求工作负载应用程序的令牌时,Microsoft Entra ID 会弹出同意窗口以防令牌丢失,然后将弹出窗口重定向到应用程序中配置的重定向 URI

重定向 URI 通常与请求令牌的页面位于同一域中,因此页面可以访问弹出窗口并将其关闭。

在本例中,它不在同一域中,因为 Fabric 正在请求令牌,工作负载的重定向 URI 不在 Fabric 域中,因此当同意对话框打开时,需要在重定向后手动关闭 - 我们不会使用 redirectUri 中返回的代码,因此我们只是自动将其关闭(当 Microsoft Entra ID 将弹出窗口重定向到重定向 URI 时,它将会关闭)。

可以在 index.ts 文件中查看重定向 URI 的代码/配置。 可以在 前端文件夹下的 Microsoft-Fabric-workload-development-sample 中找到此文件。

下面是应用“我的工作负载应用”及其依赖项(存储和 Power BI)的同意弹出窗口示例,我们在执行身份验证设置时配置了该弹出窗口:

同意弹出窗口的屏幕截图。