다음을 통해 공유


개발자 계정을 사용하여 로컬 개발 중에 Azure 서비스에 JavaScript 앱 인증

클라우드 애플리케이션을 만들 때 개발자는 로컬 워크스테이션에서 애플리케이션을 디버그하고 테스트해야 합니다. 로컬 개발 중에 개발자의 워크스테이션에서 애플리케이션을 실행하는 경우에도 앱에서 사용하는 모든 Azure 서비스에 인증해야 합니다. 이 문서에서는 로컬 개발 중에 개발자의 Azure 자격 증명을 사용하여 Azure에 앱을 인증하는 방법을 다룹니다.

.env 파일에서 서비스 주체를 가져오고 해당 ID를 사용하여 Azure 리소스에 연결하는 로컬 개발 앱을 보여 주는 다이어그램

개발자의 Azure 자격 증명을 사용하여 로컬 개발 중에 Azure에 인증하려면 개발자가 Visual Studio Code Azure Tools 확장, Azure CLI 또는 Azure PowerShell에서 Azure에 로그인해야 합니다. JavaScript용 Azure SDK는 개발자가 이러한 도구 중 하나에서 로그인했음을 감지한 다음 자격 증명 캐시에서 필요한 자격 증명을 가져와서 로그인한 사용자로 Azure에 앱을 인증할 수 있습니다.

이 방식은 개발자의 기존 Azure 계정을 활용하므로 개발 팀을 위해 설정하는 것이 가장 쉽습니다. 그러나 개발자 계정에는 애플리케이션에 필요한 것보다 더 많은 사용 권한이 있으므로 프로덕션 환경에서 앱이 실행하는 사용 권한을 초과할 수 있습니다. 대안으로, 로컬 개발 중에 사용할 애플리케이션 서비스 주체를 만들어 앱에 필요한 액세스 권한만 갖도록 범위를 지정할 수 있습니다.

1 - 로컬 개발용 Microsoft Entra 그룹 만들기

애플리케이션에서 작업하는 개발자는 거의 항상 여러 명이므로 먼저 Microsoft Entra 그룹을 만들어 앱이 로컬 개발에 필요한 역할(권한)을 캡슐화하는 것이 좋습니다. 이는 다음과 같은 이점을 제공합니다.

  • 역할은 그룹 수준에서 할당되므로 모든 개발자는 동일한 역할을 할당받게 됩니다.
  • 앱에 새 역할이 필요한 경우 앱에 대한 Microsoft Entra 그룹에만 추가하면 됩니다.
  • 새 개발자가 팀에 합류하는 경우 앱에서 작업할 수 있는 올바른 권한을 얻으려면 올바른 Microsoft Entra 그룹에 추가하기만 하면 됩니다.

개발 팀을 위한 기존 Microsoft Entra 그룹이 있는 경우 해당 그룹을 사용할 수 있습니다. 그렇지 않은 경우 다음 단계를 완료하여 Microsoft Entra 그룹을 만드세요.

지침 스크린샷
페이지 맨 위에 있는 검색 상자에 Microsoft Entra ID를 입력한 다음 서비스에서 Microsoft Entra ID선택하여 Azure Portal의 Microsoft Entra ID 페이지로 이동합니다. Azure Portal에서 상단 검색 창을 사용하여 Microsoft Entra ID 페이지를 검색하고 탐색하는 방법을 보여 주는 스크린샷.
Microsoft Entra ID 페이지의 왼쪽 메뉴에서 그룹을 선택합니다. Microsoft Entra ID 기본 디렉터리 페이지의 왼쪽 메뉴에 있는 그룹 메뉴 항목의 위치를 보여 주는 스크린샷.
모든 그룹 페이지에서 새 그룹을 선택합니다. 모든 그룹 페이지의 새 그룹 단추 위치를 보여 주는 스크린샷.
새 그룹 페이지에서:
  1. 그룹 유형보안.
  2. 그룹 이름 → 일반적으로 애플리케이션 이름에서 만들어지는 보안 그룹의 이름입니다. 그룹의 목적을 나타내기 위해 그룹 이름에 local-dev와 같은 문자열을 포함하는 것도 도움이 됩니다.
  3. 그룹 설명 → 그룹 목적에 대한 설명입니다.
  4. 그룹에 멤버를 추가하려면 멤버 아래에서 선택한 멤버 없음 링크를 선택합니다.
새 Microsoft Entra 그룹을 만드는 방법을 보여 주는 스크린샷. 이 그룹에 구성원을 추가하기 위해 선택할 링크의 위치가 강조 표시되어 있음.
멤버 추가 대화 상자에서 다음을 수행합니다.
  1. 검색 상자를 사용하여 목록의 사용자 이름 목록을 필터링합니다.
  2. 이 앱의 로컬 개발을 수행할 한 명 이상의 사용자를 선택합니다. 개체를 선택하면 개체가 대화 상자 아래쪽에 있는 선택한 항목 목록으로 이동합니다.
  3. 완료되면 선택 단추를 선택합니다.
그룹에 포함할 개발자 계정을 선택하는 방법을 보여 주는 구성원 추가 대화 상자의 스크린샷.
새 그룹 페이지로 돌아가서 만들기를 선택하여 그룹을 만듭니다.

그룹이 만들어지고 모든 그룹 페이지로 돌아갑니다. 그룹이 표시되는 데 최대 30초가 걸릴 수 있으며 Azure Portal의 캐싱으로 인해 페이지를 새로 고쳐야 할 수도 있습니다.
만들기 단추를 선택하여 프로세스를 완료하는 방법을 보여 주는 새 그룹 페이지의 스크린샷.

2 - Microsoft Entra 그룹에 역할 할당

다음으로, 어떤 리소스에 대해 앱에 필요한 역할(권한)을 결정하고 해당 역할을 앱에 할당해야 합니다. 이 예에서는 1단계에서 만든 Microsoft Entra 그룹에 역할이 할당됩니다. 역할은 리소스, 리소스 그룹 또는 구독 범위에서 역할을 할당할 수 있습니다. 이 예제에서는 대부분의 애플리케이션이 모든 Azure 리소스를 단일 리소스 그룹으로 그룹화하기 때문에 리소스 그룹 범위에서 역할을 할당하는 방법을 보여 줍니다.

지침 스크린샷
Azure Portal 상단에 있는 검색 상자를 통해 리소스 그룹 이름을 검색하여 애플리케이션에 대한 리소스 그룹을 찾습니다.

대화 상자의 리소스 그룹 제목 아래에서 리소스 그룹 이름을 선택하여 리소스 그룹으로 이동합니다.
Azure Portal에서 상단 검색 상자를 사용하여 역할(권한)을 할당하려는 리소스 그룹을 찾고 탐색하는 방법을 보여 주는 스크린샷.
리소스 그룹 페이지의 왼쪽 메뉴에서 액세스 제어(IAM)를 선택합니다. 액세스 제어(IAM) 메뉴 항목의 위치를 보여 주는 리소스 그룹 페이지의 스크린샷.
액세스 제어(IAM) 페이지에서 다음을 수행합니다.
  1. 역할 할당 탭을 선택합니다.
  2. 위쪽 메뉴에서 + 추가를 선택한 다음, 드롭다운 메뉴에서 역할 할당 추가를 선택합니다.
역할 할당 탭으로 이동하는 방법 및 리소스 그룹에 역할 할당을 추가하는 데 사용되는 단추의 위치를 보여 주는 스크린샷.
역할 할당 추가 페이지에는 리소스 그룹에 할당할 수 있는 모든 역할이 나열됩니다.
  1. 검색 상자를 사용하여 목록을 보다 관리하기 쉬운 크기로 필터링합니다. 이 예에서는 Storage Blob 역할을 필터링하는 방법을 보여 줍니다.
  2. 할당하려는 역할을 선택합니다.
    다음 화면으로 이동하려면 다음을 선택합니다.
리소스 그룹에 추가할 역할 할당을 필터링하고 선택하는 방법을 보여 주는 스크린샷.
다음 역할 할당 추가 페이지에서는 역할을 할당할 사용자를 할당할 수 있습니다.
  1. 액세스 할당에서 사용자, 그룹 또는 서비스 주체를 선택합니다.
  2. 멤버에서 + 멤버 선택을 선택합니다.
Azure Portal의 오른쪽에 대화 상자가 열립니다.
Microsoft Entra 그룹에 역할을 할당하기 위해 선택하는 라디오 단추와 역할을 할당할 그룹을 선택하는 데 사용되는 링크를 보여 주는 스크린샷.
멤버 선택 대화 상자에서:
  1. 선택 텍스트 상자를 사용하여 구독의 사용자 및 그룹 목록을 필터링할 수 있습니다. 필요한 경우 앱용으로 만든 로컬 개발 Microsoft Entra 그룹의 처음 몇 문자를 입력합니다.
  2. 애플리케이션과 연결된 로컬 개발 Microsoft Entra 그룹을 선택합니다.
계속하려면 대화 상자 하단에서 선택을 선택합니다.
구성원 선택 대화 상자에서 애플리케이션에 대한 Microsoft Entra 그룹을 필터링하고 선택하는 방법을 보여주는 스크린샷.
역할 할당 추가 화면에 Microsoft Entra 그룹이 선택된 것으로 표시됩니다.

검토 + 할당을 선택하여 최종 페이지로 이동한 다음 다시 검토 + 할당을 선택하여 프로세스를 완료합니다.
완료된 역할 할당 추가 페이지와 프로세스를 완료하는 데 사용된 검토 + 할당 단추의 위치를 보여주는 스크린샷.

3 - VS Code, Azure CLI 또는 Azure PowerShell을 사용하여 Azure에 로그인

개발자 워크스테이션에서 터미널을 열고 Azure PowerShell에서 Azure에 로그인합니다.

Connect-AzAccount

4 - 애플리케이션에 DefaultAzureCredential 구현

Azure에 Azure SDK 클라이언트 개체를 인증하려면 애플리케이션에서 패키지의 클래스를 DefaultAzureCredential @azure/identity 사용해야 합니다. 이 시나리오에서는 개발자가 VS Code Azure 도구 확장, DefaultAzureCredential Azure CLI 또는 Azure PowerShell을 사용하여 Azure에 로그인했는지 순차적으로 확인합니다. 개발자가 이러한 도구를 사용하여 Azure에 로그인하는 경우 도구에 로그인하는 데 사용되는 자격 증명은 앱에서 Azure에 인증하는 데 사용됩니다.

먼저 애플리케이션에 @azure/ID 패키지를 추가합니다.

npm install @azure/identity

다음으로, 앱에서 Azure SDK 클라이언트 개체를 만드는 JavaScript 코드의 경우 다음을 수행합니다.

  1. 모듈에서 DefaultAzureCredential 클래스를 @azure/identity 가져옵니다.
  2. DefaultAzureCredential 개체를 만듭니다.
  3. 개체를 DefaultAzureCredential Azure SDK 클라이언트 개체 생성자에 전달합니다.

이 예제는 다음 코드 세그먼트에 나와 있습니다.

import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';

// Acquire a credential object
const tokenCredential = DefaultAzureCredential();

const blobServiceClient = BlobServiceClient(
        `https://${accountName}.blob.core.windows.net`,
        tokenCredential
);

DefaultAzureCredential 는 앱에 대해 구성된 인증 메커니즘을 자동으로 검색하고 Azure에 앱을 인증하는 데 필요한 토큰을 가져옵니다. 애플리케이션에서 둘 이상의 SDK 클라이언트를 사용하는 경우 각 SDK 클라이언트 개체와 동일한 자격 증명 개체를 사용할 수 있습니다.