다음을 통해 공유


인증 설정(미리 보기)

인증을 사용하려면 다음 세 가지 구성 요소 부분을 설정해야 합니다.

Fabric에서 인증을 사용하려면 이 가이드를 따르세요.

Azure Storage 서비스 프로비저닝

이 샘플에서는 레이크하우스에서 데이터를 저장하고 읽는 방법을 보여 줍니다. 이를 위해서는 OBO 흐름에서 Azure Storage 서비스에 대한 토큰을 생성해야 합니다. 토큰을 생성하려면 사용자가 Azure Storage를 사용하여 애플리케이션에 동의해야 합니다. 동의하려면 Azure Storage를 테넌트에 프로비전해야 합니다.

Azure Storage가 테넌트에 프로비전되도록 하려면 다음을 수행합니다.

  1. Azure Portal에 로그인

  2. Microsoft Entra ID>Enterprise 애플리케이션으로 이동

  3. 필터에서 애플리케이션 유형 = 모든 aplications를 선택합니다. 애플리케이션 ID는 e406a681-f3d4-42a8-90b6-c2b029497af1로 시작합니다.

    Azure Storage 프로비저닝을 보여 주는 스크린샷

Azure Storage 애플리케이션이 표시되는 경우 이미 프로비전되어 있으며 다음 단계를 계속할 수 있습니다. 그렇지 않은 경우 테넌트 관리자가 프로비전해야 합니다.

테넌트 관리자에게 Windows PowerShell을 관리자로 열고 다음 스크립트를 실행하도록 요청합니다.

Install-Module az  
Import-Module az  
Connect-AzureAD  
New-AzureADServicePrincipal -AppId e406a681-f3d4-42a8-90b6-c2b029497af1

Microsoft Entra ID에서 수동으로 애플리케이션 구성

인증을 사용하려면 Microsoft Entra ID에 등록된 애플리케이션이 필요합니다. 등록된 애플리케이션이 없는 경우 이 가이드에 따라 새 애플리케이션을 만듭니다.

  1. 애플리케이션에 다음 구성을 적용합니다.

    • 애플리케이션을 다중 테넌트 앱으로 만듭니다.
    • 개발 애플리케이션의 경우 SPA 플랫폼과 마찬가지로 http://localhost:60006/close 리디렉션 URI를 구성합니다. 이 구성은 동의 지원에 필요합니다. 원하는 대로 다른 리디렉션 URI를 추가할 수 있습니다.

    참고 항목

    • 리디렉션 URI는 페이지로 이동할 때 페이지를 닫는 URI여야 합니다. URI http://localhost:60006/close 는 프런트 엔드 샘플에 이미 구성되어 있으며 프런트 엔드/src/index.ts 변경할 수 있습니다(변경한 경우 애플리케이션에 대해 구성된 것과 일치하는지 확인).
    • 인증 아래의 관리 메뉴에서 애플리케이션을 만든 후 리디렉션 URI를 구성할 수 있습니다.

    애플리케이션 등록 UI의 스크린샷.

  2. 애플리케이션의 애플리케이션 ID URI 를 변경합니다. API 노출 관리>이동하여 앱의 애플리케이션 ID URI를 편집합니다.

    개발 시나리오의 경우 애플리케이션 ID URI는 다음으로 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> 시작해야 하며, 끝부분에서 선택적 하위 경로로 / 시작해야 합니다(예제 참조).

    여기서

    • 워크로드 이름은 매니페스트에 지정된 것과 정확히 같습니다.
    • ID URI는 슬래시로 끝나지 않습니다.
    • ID URI끝에는 영어 소문자 또는 대문자, 숫자 및 대시 문자열로 구성된 선택적 하위 경로가 최대 36자까지 있을 수 있습니다.

    테넌트 ID를 찾는 방법에 대한 도움말은 Microsoft Entra 테넌트 ID를 찾는 방법을 참조하세요.

    예를 들어 게시자의 테넌트 ID가 853d9f4f-c71b-4420-b6ec-60e503458946이고 워크로드 이름이 Fabric.WorkloadSample경우 다음을 수행합니다.

    • 다음 URI 는 유효합니다 .

      • api://localdevinstance/853d9f4f-c71b-4420-b6ec-60e503458946/Fabric.WorkloadSample
      • api://localdevinstance/853d9f4f-c71b-4420-b6ec-60e503458946/Fabric.WorkloadSample/abc
    • 다음 URI 가 잘못되었습니다 .

      • api://localdevinstance/853d9f4f-c71b-4420-b6ec-60e503458946/Fabric.WorkloadSample/af/
      • api://localdevinstance/853d9f4f-c71b-4420-b6ec-60e503458946/Fabric.WorkloadSample/af/a
      • 시작하지 않는 모든 ID URI api://localdevinstance/853d9f4f-c71b-4420-b6ec-60e503458946/Fabric.WorkloadSample

CRUD/작업에 대한 범위 추가

워크로드 항목에 대한 API 만들기, 읽기, 업데이트 및 삭제 작업을 수행하고 작업을 사용하여 다른 작업을 수행하고, 범위를 추가하고, 해당 범위에 대한 사전 인증된 애플리케이션에 Fabric 서비스 애플리케이션을 추가하여 API(만든 범위)가 Fabric을 신뢰함을 나타내려면 다음을 수행합니다.

  • API 노출에서 범위 추가를 선택합니다. FabricWorkloadControl 범위의 이름을 지정하고 필요한 세부 정보를 제공합니다.

  • 권한 있는 클라이언트 애플리케이션에서 클라이언트 애플리케이션 추가를 선택합니다. (패브릭 서비스 애플리케이션)을 추가하고 00000009-0000-0000-c000-000000000000 범위를 선택합니다.

데이터 평면 API에 대한 범위 추가

데이터 평면 API에서 노출하는 작업 그룹을 나타내려면 다른 범위를 등록해야 합니다. 백 엔드 샘플에서는 네 가지 예제를 제공합니다. 백 엔드/src/상수/scopes.cs수 있습니다. 범위는 다음과 같습니다.

  • Item1.Read.All: 워크로드 항목을 읽는 데 사용됩니다.
  • Item1.ReadWrite.All: 워크로드 항목 읽기/쓰기에 사용됨
  • FabricLakehouse.Read.All: 레이크하우스 파일을 읽는 데 사용됩니다.
  • FabricLakehouse.ReadWrite.All: 레이크하우스 파일 읽기/쓰기에 사용됨

이러한 범위에 대한 사전 인증 871c010f-5e61-4fb1-83ac-98610a7e9110 (패브릭 클라이언트 애플리케이션)입니다.

이러한 앱의 애플리케이션 ID는 Microsoft Power BI 및 Power BI 서비스에서 찾을 수 있습니다.

애플리케이션에서 API 노출 섹션이 표시되는 방법은 다음과 같습니다. 이 예제에서 ID URI는 다음과 같습니다.api://localdevinstance/853d9f4f-c71b-4420-b6ec-60e503458946/Fabric.WorkloadSample

API 노출 섹션의 모양을 보여 주는 스크린샷

애플리케이션에 대한 비밀 생성

인증서 및 비밀에서 비밀 탭을 선택하고 비밀을 추가합니다. 원하는 이름을 지정하고 저장합니다. 백 엔드 샘플을 구성할 때 이 비밀을 사용합니다.

비밀 생성 대화 상자의 스크린샷

선택적 클레임 'idtyp' 추가

토큰 구성에서 선택적 클레임 추가를 선택합니다. 액세스 토큰을 선택하고 idtyp를 추가합니다.

클레임 idtyp 추가를 보여 주는 스크린샷

API 사용 권한 추가

*API 권한 아래에서 애플리케이션에 대해 원하는 권한을 추가합니다. 백 엔드 샘플의 경우 Storage user_impersonation(OneLake API용) 및 Power BI Workspace.Read.all(워크로드 제어 API용)을 추가합니다.

API 권한 추가를 보여 주는 스크린샷

애플리케이션이 인증 토큰 v1에서 작동하도록 설정되어 있는지 확인합니다.

매니페스트에서 null 또는 "1"로 설정되어 있는지 확인 accessTokenAcceptedVersion 합니다.

스크립트를 사용하여 자동으로 Microsoft Entra Identity에서 애플리케이션 구성

Microsoft Entra Identity에서 애플리케이션의 간소화된 설정을 위해 자동화된 PowerShell 스크립트를 사용하도록 선택할 수 있습니다. 애플리케이션을 구성하려면 다음 단계를 수행합니다.

  1. Azure CLI 설치: 먼저 Azure 명령줄 인터페이스(CLI) Windows용 Azure CLI 설치 | Microsoft Learn2..
  2. CreateDevAADApp.ps1 스크립트 실행: CreateDevAADApp 스크립트실행합니다. 애플리케이션을 만들려는 사용자 계정의 자격 증명을 사용하여 로그인하라는 메시지가 표시됩니다.
  3. 필수 정보 제공: 메시지가 표시되면 애플리케이션의 원하는 이름, 워크로드 이름("Org") 접두사 및 테넌트 ID를 입력합니다.

스크립트를 성공적으로 실행하면 워크로드를 구성하는 데 필요한 모든 세부 정보가 출력됩니다. 또한 애플리케이션에 대한 직접 URL과 테넌트 전체 애플리케이션 권한 부여에 대한 관리 동의 URL을 제공합니다.

사용 예

지정된 테넌트에 대한 워크로드 이름이 "Org.Myworkload"인 "myWorkloadApp"이라는 애플리케이션을 만들려면 PowerShell에서 다음 명령을 실행합니다.

powershell .\CreateDevAADApp.ps1 -applicationName "myWorkloadApp" -workloadName "Org.Myworkload" -tenantId "cb1f79ad-7930-43c0-8d84-c1bf8d15c8c7"

이 예제에서는 명령줄 인수와 함께 스크립트를 CreateDevAADApp.ps1 사용하여 애플리케이션 설정 프로세스를 자동화하는 방법을 보여 줍니다. 제공된 테넌트 ID는 예제이며 실제 테넌트 ID로 바꿔야 합니다.

워크로드 구성(백 엔드)

  1. 백 엔드 샘플에서 리포지토리의 파일로 src/appsettings.json 이동하여 설정을 구성합니다.

  2. workloadManifest.xml 구성합니다. 리포지토리의 파일로 src/Packages/manifest/files/WorkloadManifest.xml 이동하여 AADApps에서 사용자 redirectUri AppIdResourceId (ID URI)를 구성합니다.

<AADApp>
    <AppId>YourApplicationId</AppId>
    <RedirectUri>YourRedirectUri</RedirectUri>
    <ResourceId>YourResourceId</ResourceId>
</AADApp>

워크로드 로컬 매니페스트 구성 및 애플리케이션에 대한 토큰 획득(프런트 엔드)

참고 항목

이 단계는 devmode 시나리오에만 적용됩니다.

애플리케이션을 구성한 후 리포지토리에 devAADAppConfig 있는 구성 파일의 섹션에 Frontend/.env.dev 다음 구성을 추가합니다.

"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
}

.env.dev 파일의 구성을 보여 주는 스크린샷

참고 항목

CRUD/작업이 작동하려면 이 단계가 필요합니다.

  1. 프런트 엔드 샘플을 실행하고 샘플 항목을 만듭니다.

  2. 아래로 스크롤하여 인증 페이지로 이동합니다.

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

  3. 요청 초기 동의를 확인하고 액세스 토큰 가져오기를 선택합니다. 그러면 애플리케이션에 대한 동의가 트리거되어야 합니다.

    초기 동의에 대한 권한 요청 대화 상자를 보여 주는 스크린샷.

이 동의에는 이전에 API 권한 추가에서 추가한 종속성이 포함됩니다.

이제 다음 작업을 수행할 수 있습니다.

  • CRUD/작업 작업을 사용합니다.
  • 클라이언트 쪽에서 애플리케이션에 대한 액세스 토큰을 가져옵니다.
  • 프런트 엔드 샘플의 인증 페이지를 워크로드 API를 호출하는 플레이그라운드로 사용합니다.
  • 백 엔드 샘플이 백 엔드/src/컨트롤러에서 제공하는 API를 확인합니다.