다음을 통해 공유


인증 JavaScript API(미리 보기)

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

API

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

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

프런트 엔드 샘플에서 API를 호출하려면 샘플 항목을 만든 다음 아래로 스크롤하여 인증 페이지로 탐색을 선택합니다. 여기에서 액세스 토큰 가져오기를 선택하여 토큰 을 다시 받을 수 있습니다.

인증 섹션을 보여 주는 스크린샷

동의

동의가 필요한 이유를 이해하려면 Microsoft Entra ID에서 사용자 및 관리자 동의를 확인하세요.

참고 항목

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

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

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

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

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

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

index.ts 파일에서 리디렉션 URI의 코드/구성을 볼 수 있습니다.

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

필요한 사용 권한 대화 상자의 스크린샷.

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

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

애플리케이션의 홈 테넌트에서 동의를 얻으려면 테넌트 관리자에게 다음 형식의 URL을 사용하여 전체 테넌트에 대한 동의를 부여하도록 요청할 수 있습니다(사용자 고유의 테넌트 ID 및 클라이언트 ID 삽입).

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

AcquireAccessTokenParams

acquireAccessToken JS API를 호출할 때 다음 두 매개 변수를 제공할 수 있습니다.

  • additionalScopesToConsent: 동의를 요청하는 다른 범위(예: 재연결 시나리오).
  • claimsForConditionalAccessPolicy: OBO 흐름이 실패할 때 Microsoft Entra ID에서 반환된 클레임입니다. 예를 들어 OBO에는 다단계 인증이 필요합니다.

이러한 두 매개 변수를 검토하고 acquireAccessToken을 호출할 때 제공할 내용을 살펴보겠습니다.

additionalScopesToConsent

다음 시나리오에서 호출 acquireAccessToken 할 때 additionalScopesToConsent에서 제공해야 하는 내용은 다음과 같습니다.

시나리오 1: 백 엔드 워크로드를 호출하는 토큰 획득: AdditionalScopesToConsent 가 null입니다.

백 엔드 워크로드를 호출하는 토큰을 획득하려는 경우 추가ScopesToConsent제공하지 않고 호출 acquireAccessToken 합니다.

  • 사용자가 애플리케이션의 홈 테넌트에 있는 경우 워크로드는 동의 없이 토큰을 획득할 수 있습니다.

  • 사용자가 다른 테넌트에 있는 경우 워크로드가 토큰을 받기 전에 동의를 부여하거나 테넌트 관리자가 앱에 동의를 부여해야 합니다.

시나리오 2: Crud/Jobs JS API 실패: AdditionalScopesToConsent 가 기본값입니다.

이러한 작업이 실패하면 워크로드는 ['.default']가 additionalScopesToConsent토큰을 요청해야 합니다. 그러면 애플리케이션의 종속성(앱에서 구성된 API 권한)에 대한 동의가 트리거됩니다. 자세한 내용은 인증 설정을 참조하세요).

시나리오 3. 동의 필요 오류로 특정 범위에 대한 OBO 흐름이 실패합니다. AdditionalScopesToConsent 는 'https://analysis.windows.net/powerbi/api/Workspace.Read.All'입니다.

OBO 동의 필요 오류를 보여 주는 스크린샷

워크로드 백 엔드의 OBO 흐름이 특정 범위 또는 범위에 대한 동의 필요 오류와 함께 실패하는 경우 워크로드 백 엔드는 프런트 엔드에 해당 범위로 API를 호출 acquireAccessToken 하도록 알려야 합니다.

claimsForConditionalAccessPolicy

이 매개 변수는 테넌트에 구성된 일부 조건부 액세스 정책으로 인해 워크로드 BE에서 OBO 오류가 발생할 때 사용됩니다.

조건부 액세스 정책으로 인한 OBO 오류는 "클레임"이라는 문자열을 반환합니다. 이 문자열은 FE가 토큰을 요청하고 클레임을 ClaimsForConditionalAccessPolicy로 전달해야 하는 워크로드 FE로 전송되어야 합니다. 자세한 내용은 MFA(다단계 인증), 조건부 액세스 및 증분 동의 처리를 참조 하세요.

동의 누락 또는 조건부 액세스 정책으로 인해 OBO 작업이 실패할 때 응답의 예를 보려면 BE 샘플의 AuthenticationService AddBearerClaimToResponse 사용을 참조하세요.