다음을 통해 공유


인증 개요(미리 보기)

패브릭 워크로드는 인증 및 권한 부여를 위해 Microsoft Entra ID와의 통합을 사용합니다.

워크로드와 다른 패브릭 또는 Azure 구성 요소 간의 모든 상호 작용에는 수신되거나 전송된 요청에 대한 적절한 인증 지원이 수반되어야 합니다. 전송된 토큰은 제대로 생성되어야 하며 수신된 토큰도 제대로 유효성을 검사해야 합니다.

패브릭 워크로드 작업을 시작하기 전에 Microsoft ID 플랫폼 익숙해지는 것이 좋습니다. 또한 Microsoft ID 플랫폼 모범 사례 및 권장 사항을 수행하는 것이 좋습니다.

흐름

  • 워크로드 프런트 엔드에서 워크로드 백 엔드로

    이러한 통신의 예로는 데이터 평면 API가 있습니다. 이 통신은 주체 토큰(위임된 토큰)을 사용하여 수행됩니다.

    워크로드 FE에서 토큰을 획득하는 방법에 대한 자세한 내용은 인증 API를 참조하세요. 또한 백 엔드 인증 및 권한 부여 개요에서 토큰 유효성 검사를 진행해야 합니다.

  • 패브릭 백 엔드에서 워크로드 백 엔드로

    이러한 통신의 예로 워크로드 항목 만들기가 있습니다. 이 통신은 앱 토큰과 주체 토큰이 결합된 특수 토큰인 SubjectAndApp 토큰을 사용하여 수행됩니다(이 토큰에 대한 자세한 내용은 백 엔드 인증 및 권한 부여 개요 참조).

    이 통신이 작동하려면 이 통신을 사용하는 사용자가 Entra 애플리케이션에 동의해야 합니다.

  • 워크로드 백 엔드에서 패브릭 백 엔드로

    워크로드 제어 API(예: ResolveItemPermissions)에 대한 SubjectAndApp 토큰 또는 주체 토큰(다른 패브릭 API용)을 사용하여 수행됩니다.

  • 워크로드 백 엔드에서 외부 서비스로

    이러한 통신의 예는 Lakehouse 파일에 쓰는 것입니다. 이 작업은 API에 따라 주체 토큰 또는 앱 토큰으로 수행됩니다.

    주체 토큰을 사용하여 서비스와 통신하려는 경우 흐름을 대신하여 잘 알고 있는지 확인합니다.

    인증을 사용하도록 환경을 설정하려면 인증 자습서 를 참조하세요.

토큰을 사용하는 방법

프런트 엔드에서 토큰 extensionClient.auth.acquireAccessToken({});을 요청해야 합니다. 이 토큰을 사용하여 백 엔드로 인증할 수 있습니다.

일부 리소스에 액세스하려면 토큰을 백 엔드로 보내고 해당 리소스에 대한 OBO 흐름을 사용하여 교환해 봅니다. 제어 API(CRUD/작업)에서 받은 토큰을 사용하고 해당 리소스에 대해 교환할 수도 있습니다.

동의를 이유로 교환이 실패하는 경우 프런트 엔드에 알리고 전화를 걸어 extensionClient.auth.acquireAccessToken({additionalScopesToConsent:[resource]}); 프로세스를 다시 시도합니다.

MFA 이유로 교환이 실패하는 경우 교환 및 호출에 연결할 때 수신된 클레임과 함께 프런트 엔드에 알립니다 extensionClient.auth.acquireAccessToken({claimsForConditionalAccessPolicy:claims});.

예제는 다음을 참조 하세요. 오류 응답 예제입니다.

참고 항목

프런트 엔드에서 토큰을 획득할 때 받는 토큰은 전달한 additionalScopesToConsent와 관련이 없습니다. 즉, 사용자가 동의하면 OBO 흐름에 extensionClient.auth.acquireAccessToken 대해 받은 토큰을 사용할 수 있습니다.

인증 JavaScript API

패브릭 프런트 엔드는 패브릭 워크로드용 JavaScript API를 제공하여 Microsoft Entra ID에서 애플리케이션에 대한 토큰을 획득합니다. 인증 JavaScript API를 사용하기 전에 인증 JavaScript API 설명서를 참조하세요.

API

acquireAccessToken(params: AcquireAccessTokenParams): Promise<AccessToken>;
export interface AcquireAccessTokenParams {
additionalScopesToConsent?: string[];
claimsForConditionalAccessPolicy?: string;
}

API는 토큰 자체와 토큰의 만료 날짜가 포함된 AccessToken 개체를 반환합니다.

프런트 엔드 샘플에서 API를 호출하려면 샘플 항목을 만들고 아래로 스크롤하여 인증으로 이동 페이지를 선택합니다. 여기에서 액세스 토큰 가져오기를 선택하면 토큰을 다시 받게 됩니다.

JavaScript API 인증에 대한 토큰 가져오기를 보여 주는 스크린샷

동의

동의가 필요한 이유를 이해하려면 Microsoft Entra ID에서 사용자 및 관리자 동의를 검토합니다.

참고 항목

CRUD/작업이 작동하고 테넌트 간에 토큰을 획득하려면 동의가 필요합니다.

동의는 패브릭 워크로드에서 어떻게 작동합니까?

특정 애플리케이션에 대한 동의를 부여하기 위해 Fabric FE는 워크로드의 애플리케이션 ID로 구성된 MSAL 인스턴스를 만들고 제공된 범위에 대한 토큰을 요청합니다(additionalScopesToConsent - AcquireAccessTokenParams 참조).

특정 범위에 대한 워크로드 애플리케이션으로 토큰을 요청하는 경우 Microsoft Entra ID는 누락된 경우 팝업 동의를 표시한 다음, 팝업 창을 애플리케이션에 구성된 리디렉션 URI로 리디렉션합니다.

일반적으로 리디렉션 URI는 토큰을 요청한 페이지와 동일한 기본 페이지가 팝업에 액세스하고 닫을 수 있도록 합니다.

여기서는 Fabric이 토큰을 요청하고 워크로드의 리디렉션 URI가 패브릭에 없기 때문에 기본 동일한 작업이 아닙니다기본 따라서 동의 대화 상자가 열리면 리디렉션 후에 수동으로 닫아야 합니다. redirectUri에서 반환된 코드를 사용하지 않으므로 자동 묶습니다(Microsoft Entra ID가 리디렉션 URI로 팝업을 리디렉션하는 경우). 닫힙니다).

파일 index.ts 리디렉션 URI의 코드/구성을 볼 수 있습니다. 이 파일은 프런트 엔드 폴더 아래의 Microsoft-Fabric-workload-development-sample에서 찾을 수 있습니다.

다음은 앱 "내 워크로드 앱"에 대한 동의 팝업과 인증 설정을 수행할 때 구성한 종속성(스토리지 및 Power BI)의 예입니다.

동의 팝업의 스크린샷.

AcquireAccessTokenParams에 대해 이야기할 때 동의를 사용하는 방법을 살펴보겠습니다.

홈 테넌트에서 동의를 부여하는 또 다른 방법(선택 사항)

다음 URL(테넌트 ID 및 클라이언트 ID 삽입)을 사용하여 애플리케이션의 홈 테넌트에서 동의를 부여하는 방법에 대한 자세한 내용은 JavaScript API 설명서를 참조하세요.

https://login.microsoftonline.com/{tenantId}/adminconsent?client_id={clientId}