로컬 개발 중에 애플리케이션은 다양한 Azure 서비스에 액세스하기 위해 Azure 인증해야 합니다. 다음 방법 중 하나를 사용하여 로컬로 인증할 수 있습니다.
- Azure ID 라이브러리에서 지원하는 개발자 도구 중 하나를 사용하여 개발자 계정을 사용합니다.
- 서비스 주체를 사용합니다. 자세한 내용은 서비스 주체를 사용하여 로컬 개발 중에 Azure 서비스에 Java 앱 인증을 참조하세요.
이 문서에서는 Azure ID 라이브러리에서 지원하는 도구를 사용하여 개발자 계정을 사용하여 인증하는 방법을 설명합니다. 이 문서에서는 다음에 대해 알아봅니다.
- Microsoft Entra 그룹을 사용하여 여러 개발자 계정에 대한 권한을 효율적으로 관리하는 방법입니다.
- 권한 범위에 개발자 계정에 역할을 할당하는 방법입니다.
- 지원되는 로컬 개발 도구에 로그인하는 방법입니다.
- 앱 코드에서 개발자 계정을 사용하여 인증하는 방법입니다.
인증에 지원되는 개발자 도구
로컬 개발 중에 앱은 Azure 자격 증명을 사용하여 Azure 인증할 수 있습니다. 이 인증이 작동하려면 다음 중 하나와 같은 개발자 도구에서 Azure 로그인해야 합니다.
- Azure CLI
- Azure 개발자 CLI
- Azure PowerShell
- Visual Studio Code
- IntelliJ IDEA
Azure ID 라이브러리는 개발자가 이러한 도구 중 하나에서 로그인했음을 감지할 수 있습니다. 그런 다음 라이브러리는 도구를 통해 Microsoft Entra 액세스 토큰을 가져와서 로그인한 사용자로 Azure 앱을 인증할 수 있습니다.
이 방법은 개발자의 기존 Azure 계정을 활용하여 인증 프로세스를 간소화합니다. 그러나 개발자 계정에는 앱에 필요한 것보다 더 많은 권한이 있으므로 프로덕션 환경에서 앱이 실행하는 사용 권한을 초과할 수 있습니다. 또는 로컬 개발 중에 사용할 애플리케이션 서비스 주체를 만들 수 있으며, 앱에 필요한 액세스만 포함하도록 범위를 지정할 수 있습니다.
로컬 개발을 위한 Microsoft Entra 그룹 만들기
개별 서비스 주체 개체에 역할을 할당하는 대신 로컬 개발에서 앱에 필요한 역할(권한)을 캡슐화하는 Microsoft Entra 그룹을 만듭니다. 이 방법은 다음과 같은 이점을 제공합니다.
- 모든 개발자는 그룹 수준에서 동일한 역할을 할당합니다.
- 앱에 새 역할이 필요한 경우 앱의 그룹에만 추가하면 됩니다.
- 새 개발자가 팀에 합류하면 개발자를 위해 새 애플리케이션 서비스 주체가 만들어지고 그룹에 추가되어 개발자가 앱에서 작업할 수 있는 올바른 권한이 있는지 확인합니다.
Azure 포털에서 Microsoft Entra ID 개요 페이지로 이동합니다.
왼쪽 메뉴에서 모든 그룹을 선택합니다.
그룹 페이지에서 새 그룹을 선택합니다.
새 그룹 페이지에서 다음 양식 필드를 입력합니다.
- 그룹 유형: 보안을 선택합니다.
- 그룹 이름: 앱 또는 환경 이름에 대한 참조를 포함하는 그룹의 이름을 입력합니다.
- 그룹 설명: 그룹의 용도를 설명하는 설명을 입력합니다.
그룹에 멤버를 추가하려면 멤버 아래에서 선택한 멤버 없음 링크를 선택합니다.
열리는 플라이아웃 패널에서 이전에 만든 서비스 주체를 검색하고 필터링된 결과에서 선택합니다. 패널 아래쪽에 있는 선택 단추를 선택하여 선택 항목을 확인합니다.
새 그룹 페이지의 맨 아래에서 만들기를 선택하여 그룹을 만들고 모든 그룹 페이지로 돌아갑니다. 나열된 새 그룹이 표시되지 않으면 잠시 기다렸다가 페이지를 새로 고칩니다.
그룹에 역할 할당
다음으로, 앱에서 리소스에 필요한 역할(권한)을 결정하고 해당 역할을 만든 Microsoft Entra 그룹에 할당합니다. 그룹은 리소스, 리소스 그룹 또는 구독 범위에서 역할을 할당할 수 있습니다. 이 예제에서는 대부분의 앱이 모든 Azure 리소스를 단일 리소스 그룹으로 그룹화하므로 리소스 그룹 범위에서 역할을 할당하는 방법을 보여 줍니다.
Azure 포털에서 앱이 포함된 리소스 그룹의 Overview 페이지로 이동합니다.
왼쪽 탐색 영역에서 액세스 제어(IAM) 선택합니다.
액세스 제어(IAM) 페이지에서 + 추가를 선택한 다음 드롭다운 메뉴에서 역할 할당 추가를 선택합니다. 역할 할당 추가 페이지에서는 역할을 구성하고 할당하는 여러 탭을 제공합니다.
역할 탭에서 검색 상자를 사용하여 할당할 역할을 찾습니다. 역할을 선택한 다음 다음을 선택합니다.
멤버 탭에서 다음을 수행 합니다 .
- 값에 대한 액세스 할당에 대해 사용자, 그룹 또는 서비스 주체 를 선택합니다.
- 멤버 값에 대해 + 멤버 선택을 선택하여 멤버선택 플라이아웃 패널을 엽니다.
- 이전에 만든 Microsoft Entra 그룹을 검색하고 필터링된 결과에서 선택합니다. [선택]을 선택하여 그룹을 선택하고 플라이아웃 패널을 닫습니다.
- 검토 + 할당을 구성원 탭 아래쪽에서 선택합니다.
검토 + 할당 탭의 페이지 맨 아래에서 검토 + 할당을 선택합니다.
개발자 도구를 사용하여 Azure 로그인
다음으로, 개발 환경에서 인증을 수행하는 데 사용할 수 있는 개발자 도구 중 하나를 사용하여 Azure 로그인합니다. 인증하는 계정은 이전에 만들고 구성한 Microsoft Entra 그룹에도 있어야 합니다.
Visual Studio Code 사용하는 개발자는 broker를 통해 편집기를 통해 직접 개발자 계정으로 인증할 수 있습니다. 이 계정을 사용하는 앱은 DefaultAzureCredential 또는 VisualStudioCodeCredential을 통해 원활한 Single Sign-On 환경으로 앱 요청을 인증할 수 있습니다.
Visual Studio Code Extensions 패널로 이동하여 Azure Resources 확장을 설치합니다. 이 확장을 사용하면 Visual Studio Code 직접 Azure 리소스를 보고 관리할 수 있습니다. 또한 기본 제공 Visual Studio Code Microsoft 인증 공급자를 사용하여 Azure 인증합니다.
Visual Studio Code 명령 팔레트를 열고 Azure: 로그인 검색하여 선택합니다.
팁 (조언)
Windows/Linux에서
Ctrl+Shift+P사용하거나 macOS에서Cmd+Shift+P사용하여 명령 팔레트를 엽니다.
앱에서 Azure 서비스에 인증
Azure ID 라이브러리는 다양한 시나리오와 Microsoft Entra 인증 흐름을 지원하는 TokenCredential 구현을 제공합니다. 다음 단계에서는 사용자 계정을 로컬로 작업할 때 DefaultAzureCredential 또는 특정 개발 도구 자격 증명을 사용하는 방법을 보여 줍니다.
코드 구현
pom.xml파일에azure-identity종속성을 추가합니다.<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> </dependency>시나리오에 따라 자격 증명 구현 중 하나를 선택합니다.
- 개발 도구와 관련된 자격 증명을 사용합니다. 이 옵션은 단일 사용자 또는 단일 도구 시나리오에 가장 적합합니다.
- 모든 개발 도구에서 사용할 수 있는 자격 증명을 사용합니다. 이 옵션은 오픈 소스 프로젝트 및 다양한 도구 팀에 가장 적합합니다.
개발 도구와 관련된 자격 증명 사용
특정 개발 도구에 해당하는 TokenCredential 인스턴스를 Azure 서비스 클라이언트 생성자(예: AzureCliCredential)에 전달합니다.
import com.azure.identity.AzureCliCredential;
import com.azure.identity.AzureCliCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
AzureCliCredential credential = new AzureCliCredentialBuilder().build();
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your-key-vault-name>.vault.azure.net")
.credential(credential)
.buildClient();
각 도구 자격 증명은 동일한 패턴을 따릅니다. 필요에 따라 자격 증명 형식과 해당 작성기를 바꿉다.
AzureCliCredential/AzureCliCredentialBuilderAzureDeveloperCliCredential/AzureDeveloperCliCredentialBuilderAzurePowerShellCredential/AzurePowerShellCredentialBuilderIntelliJCredential/IntelliJCredentialBuilderVisualStudioCodeCredential/VisualStudioCodeCredentialBuilder
모든 개발 도구에서 사용할 수 있는 자격 증명 사용
DefaultAzureCredential 모든 로컬 개발 도구에 최적화된 인스턴스를 사용합니다. 이 예제에서는 환경 변수 AZURE_TOKEN_CREDENTIALS 를 .로 설정해야 합니다 dev. 자세한 내용은 자격 증명 유형 범주 제외를 참조하세요.
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
.requireEnvVars(AzureIdentityEnvVars.AZURE_TOKEN_CREDENTIALS)
.build();
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your-key-vault-name>.vault.azure.net")
.credential(credential)
.buildClient();
다음 단계:
이 문서에서는 컴퓨터에서 사용할 수 있는 자격 증명을 사용하여 개발하는 동안 인증에 대해 설명했습니다. 이 인증 형식은 Java 위해 Azure SDK 인증할 수 있는 여러 가지 방법 중 하나입니다. 다음 문서에서는 다른 방법을 설명합니다.
- 서비스 주체를 사용하여 로컬 개발 중에 Java 앱을 Azure 서비스에 인증합니다
- 시스템 할당 관리 ID를 사용하여 Azure에 호스팅된 Java 앱을 Azure 리소스에 인증합니다
- 사용자 할당 관리 ID를 사용하여 Azure에 호스팅된 Java 앱을 Azure 리소스에 인증합니다.
개발 환경 인증과 관련된 문제가 발생하는 경우 개발 환경 인증 문제 해결을 참조하세요.
인증을 마스터한 후 SDK에서 제공하는 로깅 기능에 대한 자세한 내용은 Java Azure SDK 로깅 구성을 참조하세요.