Java 및 Azure Identity로 Azure 인증
이 문서에서는 Java용 Azure SDK에서 Microsoft Entra 토큰 인증 지원을 제공하는 Java용 Azure ID 라이브러리의 개요를 제공합니다. 이 라이브러리는 Microsoft Entra 토큰 인증을 지원하는 Azure SDK 클라이언트를 생성하는 데 사용할 수 있는 구현 집합 TokenCredential
을 제공합니다.
Azure ID 라이브러리는 현재 다음을 지원합니다.
- Java 개발 환경에서 Azure 인증을 사용하면 다음을 수행할 수 있습니다.
- IntelliJ용 Azure 도구 키트에서 검색된 로그인 정보를 사용하여 IDEA IntelliJ 인증
- Azure CLI에 저장된 로그인 정보를 사용하여 Azure CLI 인증
- Azure Developer CLI에 저장된 로그인 정보를 사용하여 Azure 개발자 CLI 인증
- 로그인 정보가 Azure PowerShell에 저장된 Azure PowerShell 인증
- Azure에서 호스트되는 애플리케이션을 인증하여 다음을 사용하도록 설정합니다.
DefaultAzureCredential
인증- 관리 ID 인증
- 다음을 사용하도록 설정하는 서비스 주체를 사용하여 인증합니다.
- 클라이언트 암호 인증
- 클라이언트 인증서 인증
- 사용자 자격 증명을 사용하여 인증하면 다음을 사용할 수 있습니다.
- 대화형 브라우저 인증
- 디바이스 코드 인증
- 사용자 이름/암호 인증
이러한 각 인증 방법의 세부 사항에 대해 자세히 알아보려면 다음 링크를 따르세요. 이 문서의 나머지 부분에는 일반적으로 사용되는 DefaultAzureCredential
관련 주제가 소개되어 있습니다.
Maven 종속성 추가
Maven 종속성을 추가하려면 프로젝트의 pom.xml 파일에 다음 XML을 포함합니다. Azure ID 라이브러리 페이지에 표시된 대로 안정적인 최신 릴리스의 버전 번호로 바꿉 {version_number}
다.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>{version_number}</version>
</dependency>
주요 개념
Azure ID 라이브러리를 이해하는 데는 자격 증명의 개념과 해당 자격 증명의 가장 일반적인 구현이라는 두 가지 주요 개념이 DefaultAzureCredential
있습니다.
자격 증명은 서비스 클라이언트가 요청을 인증하는 데 필요한 데이터를 포함하거나 가져올 수 있는 클래스입니다. Azure SDK의 서비스 클라이언트는 생성될 때 자격 증명을 수락하고, 서비스 클라이언트는 해당 자격 증명을 사용하여 서비스에 대한 요청을 인증합니다.
Azure ID 라이브러리는 Microsoft Entra ID를 사용한 OAuth 인증에 중점을 두고 있으며, 서비스 요청을 인증하기 위해 Microsoft Entra 토큰을 획득할 수 있는 다양한 자격 증명 클래스를 제공합니다. 이 라이브러리의 모든 자격 증명 클래스는 azure-core에서 추상 클래스의 TokenCredential
구현이며, 이를 사용하여 인증할 수 있는 서비스 클라이언트를 TokenCredential
생성할 수 있습니다.
DefaultAzureCredential
는 애플리케이션이 궁극적으로 Azure Cloud에서 실행되도록 의도된 대부분의 시나리오에 적합합니다. DefaultAzureCredential
는 배포 시 인증하는 데 일반적으로 사용되는 자격 증명과 개발 환경에서 인증하는 데 사용되는 자격 증명을 결합합니다. 사용 DefaultAzureCredential
예제를 비롯한 자세한 내용은 Azure 호스팅 Java 애플리케이션 인증의 DefaultAzureCredential 섹션을 참조하세요.
예제
Java용 Azure SDK 사용에서 설명한 것처럼 관리 라이브러리는 약간 다릅니다. 다른 방법 중 하나는 클라이언트 라이브러리라고 하는 Azure 서비스를 사용하는 라이브러리와 관리 라이브러리라고 하는 Azure 서비스를 관리하기 위한 라이브러리가 있다는 것입니다. 다음 섹션에서는 클라이언트 라이브러리와 관리 라이브러리에서 진행되는 인증을 간략하게 소개하겠습니다.
Azure 클라이언트 라이브러리 인증
다음 예제에서는 을 사용하여 DefaultAzureCredential
azure-security-keyvault-secrets 클라이언트 라이브러리에서 인증하는 방법을 SecretClient
보여 줍니다.
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Azure 관리 라이브러리 인증
Azure 관리 라이브러리는 Azure 클라이언트 라이브러리와 동일한 자격 증명 API를 사용하지만, 해당 구독의 Azure 리소스를 관리하려면 Azure 구독 ID가 필요합니다.
Azure Portal의 구독 페이지에서 구독 ID를 찾을 수 있습니다. 또는 다음 Azure CLI 명령을 사용하여 구독 ID를 가져옵니다.
az account list --output table
환경 변수에서 구독 ID를 AZURE_SUBSCRIPTION_ID
설정할 수 있습니다. AzureProfile
는 다음 예제에서 인스턴스를 만드는 동안 이 ID를 기본 구독 ID로 Manager
선택합니다.
AzureResourceManager azureResourceManager = AzureResourceManager.authenticate(
new DefaultAzureCredentialBuilder().build(),
new AzureProfile(AzureEnvironment.AZURE))
.withDefaultSubscription();
DefaultAzureCredential
이 예제에서 사용된 AzureResourceManager
인증합니다. 대신 Azure ID 라이브러리에서 제공되는 다른 토큰 자격 증명 구현을 사용할 수도 있습니다 DefaultAzureCredential
.
문제 해결
지침은 Azure ID 인증 문제 해결을 참조하세요.
다음 단계
이 문서에서는 Java용 Azure SDK에서 사용할 수 있는 Azure ID 기능을 소개했습니다. 그것은 많은 경우에 일반적이 고 적절 한 설명 DefaultAzureCredential
. 다음 문서에서는 Azure ID 라이브러리를 사용하여 인증하는 다른 방법을 설명하고 다음에 대한 DefaultAzureCredential
자세한 정보를 제공합니다.