identity 패키지

Azure SDK 클라이언트에 대한 자격 증명입니다.

패키지

aio

비동기 Azure SDK 클라이언트에 대한 자격 증명입니다.

클래스

AuthenticationRecord

인증된 사용자에 대한 비밀이 아닌 계정 정보

이 클래스를 사용하면 및 InteractiveBrowserCredential 에서 DeviceCodeCredential 이전에 캐시된 인증 데이터에 액세스할 수 있습니다. 애플리케이션은 이 클래스의 인스턴스를 생성해서는 안 됩니다. 대신 자격 증명의 인증 메서드(예: authenticate)에서 하나를 획득해야 합니다. 자세한 내용은 user_authentication 샘플을 참조하세요.

AuthenticationRequiredError

토큰을 획득하려면 대화형 인증이 필요합니다.

이 오류는 필요에 따라 사용자 상호 작용을 자동으로 요청하지 않도록 구성된 대화형 사용자 자격 증명에 의해서만 발생합니다. 해당 속성은 인증에 필요할 수 있는 추가 정보를 제공합니다. control_interactive_prompts 샘플에서는 자격 증명의 "인증" 메서드를 호출하여 이 오류를 처리하는 방법을 보여 줍니다.

AuthorizationCodeCredential

Azure Active Directory에서 이전에 가져온 권한 부여 코드를 사용하여 인증합니다.

인증 흐름에 대한 자세한 내용은 Azure Active Directory 설명서를 참조하세요.

AzureAuthorityHosts

Azure SDK 클라이언트에 대한 자격 증명입니다.

AzureCliCredential

Azure CLI에서 토큰을 요청하여 인증합니다.

이렇게 하려면 이전에 "az login"을 통해 Azure에 로그인해야 하며 CLI의 현재 로그인 ID를 사용합니다.

AzureDeveloperCliCredential

Azure Developer CLI 토큰을 요청하여 인증합니다.

Azure Developer CLI 개발자가 Azure에서 리소스를 만들고, 관리하고, 배포할 수 있는 명령줄 인터페이스 도구입니다. Azure CLI를 기반으로 하며 Azure 개발자와 관련된 추가 기능을 제공합니다. 이를 통해 사용자는 Azure Active Directory(Azure AD)에 대해 사용자 및/또는 서비스 주체로 인증할 수 있습니다. AzureDeveloperCliCredential은 개발 환경에서 인증하고 Azure Developer CLI 로그인한 사용자 또는 서비스 주체를 대신하여 토큰을 획득합니다. Azure Developer CLI 로그인한 사용자 또는 서비스 주체 역할을 하며 Azure Active Directory에 대해 애플리케이션을 인증하기 위해 아래에서 Azure CLI 명령을 실행합니다.

이 자격 증명을 사용하려면 개발자가 아래 명령 중 하나를 사용하여 Azure Developer CLI 로컬로 인증해야 합니다.

  • Azure Developer CLI "azd auth login"을 실행하여 사용자로 대화형으로 인증합니다.

  • "azd auth login –client-id 'client_id' –client-secret 'client_secret' –tenant-id 'tenant_id'"을 실행하여 서비스 주체로 인증합니다.

조직의 새로 고침 토큰 유효성에 따라 일정 기간 후에 이 프로세스를 반복해야 할 수 있습니다. 일반적으로 새로 고침 토큰 유효 기간은 몇 주에서 몇 개월입니다. AzureDeveloperCliCredential은 다시 로그인하라는 메시지를 표시합니다.

AzurePowerShellCredential

Azure PowerShell 토큰을 요청하여 인증합니다.

이렇게 하려면 이전에 "Connect-AzAccount"를 통해 Azure에 로그인해야 하며 현재 로그인한 ID를 사용합니다.

CertificateCredential

인증서를 사용하여 서비스 주체로 인증합니다.

이 자격 증명은 RS256을 사용하여 어설션에 서명하기 때문에 인증서에 RSA 프라이빗 키가 있어야 합니다. 인증서 인증 구성에 대한 자세한 내용은 Azure Active Directory 설명서를 참조하세요.

ChainedTokenCredential

자격 증명 자체인 자격 증명 시퀀스입니다.

해당 메서드는 get_token 순서대로 각 자격 증명을 호출 get_token 하여 받은 첫 번째 유효한 토큰을 반환합니다.

ClientAssertionCredential

JWT 어설션을 사용하여 서비스 주체를 인증합니다.

이 자격 증명은 고급 시나리오를 위한 것입니다. CertificateCredential 에는 인증서를 사용하여 서비스 주체를 인증하는 가장 일반적인 어설션 시나리오에 더 편리한 API가 있습니다.

ClientSecretCredential

클라이언트 암호를 사용하여 서비스 주체로 인증합니다.

CredentialUnavailableError

필요한 데이터 또는 상태를 사용할 수 없으므로 자격 증명이 인증을 시도하지 않았습니다.

DefaultAzureCredential

대부분의 Azure SDK 인증 시나리오를 처리할 수 있는 기본 자격 증명입니다.

사용하는 ID는 환경에 따라 다릅니다. 액세스 토큰이 필요한 경우 이러한 ID를 사용하여 토큰을 차례로 요청하여 토큰을 제공하는 경우 중지합니다.

  1. 환경 변수로 구성된 서비스 주체입니다. 자세한 내용은 EnvironmentCredential를 참조하세요.

  2. 환경 변수 구성이 Azure 워크로드 ID 웹후크에 의해 설정된 경우 WorkloadIdentityCredential입니다.

  3. Azure 관리 ID. 자세한 내용은 ManagedIdentityCredential를 참조하세요.

  4. Windows에서만 해당: Visual Studio와 같은 Microsoft 애플리케이션으로 로그인한 사용자입니다. 여러 ID가 캐시에 있는 경우 환경 변수 AZURE_USERNAME 의 값을 사용하여 사용할 ID를 선택합니다. 자세한 내용은 SharedTokenCacheCredential를 참조하세요.

  5. 현재 Azure CLI에 로그인된 ID입니다.

  6. 현재 Azure PowerShell 로그인된 ID입니다.

  7. 현재 Azure Developer CLI 로그인된 ID입니다.

이 기본 동작은 키워드(keyword) 인수를 사용하여 구성할 수 있습니다.

DeviceCodeCredential

디바이스 코드 흐름을 통해 사용자를 인증합니다.

get_token 이 호출되면 이 자격 증명은 Azure Active Directory에서 확인 URL 및 코드를 획득합니다. 사용자는 URL로 이동하고, 코드를 입력하고, Azure Active Directory를 사용하여 인증해야 합니다. 사용자가 성공적으로 인증하면 자격 증명이 액세스 토큰을 받습니다.

이 자격 증명은 주로 SSH 세션과 같은 웹 브라우저가 없는 환경에서 사용자를 인증하는 데 유용합니다. 웹 브라우저를 사용할 수 있는 InteractiveBrowserCredential 경우 브라우저를 로그인 페이지로 자동으로 열기 때문에 더 편리합니다.

EnvironmentCredential

환경 변수로 구성된 자격 증명입니다.

이 자격 증명은 클라이언트 암호 또는 인증서를 사용하여 서비스 주체로 인증하거나 사용자 이름과 암호를 가진 사용자로 인증할 수 있습니다. 구성은 다음 환경 변수를 사용하여 이 순서대로 시도됩니다.

비밀이 있는 서비스 주체:

  • AZURE_TENANT_ID: 서비스 주체 테넌트의 ID입니다. '디렉터리' ID라고도 합니다.

  • AZURE_CLIENT_ID: 서비스 주체의 클라이언트 ID

  • AZURE_CLIENT_SECRET: 서비스 주체의 클라이언트 비밀 중 하나

  • AZURE_AUTHORITY_HOST: Azure Active Directory 엔드포인트의 권한(예: 값이 지정되지 않은 경우 기본값인 Azure 퍼블릭 클라우드에 대한 권한인 "login.microsoftonline.com").

인증서가 있는 서비스 주체:

  • AZURE_TENANT_ID: 서비스 주체 테넌트의 ID입니다. '디렉터리' ID라고도 합니다.

  • AZURE_CLIENT_ID: 서비스 주체의 클라이언트 ID

  • AZURE_CLIENT_CERTIFICATE_PATH: 프라이빗 키를 포함한 PEM 또는 PKCS12 인증서 파일의 경로입니다.

  • AZURE_CLIENT_CERTIFICATE_PASSWORD: 인증서 파일의 (선택 사항) 암호입니다(있는 경우).

  • AZURE_AUTHORITY_HOST: Azure Active Directory 엔드포인트의 권한(예: 값이 지정되지 않은 경우 기본값인 Azure 퍼블릭 클라우드에 대한 권한인 "login.microsoftonline.com").

사용자 이름 및 암호를 가진 사용자:

  • AZURE_CLIENT_ID: 애플리케이션의 클라이언트 ID

  • AZURE_USERNAME: 사용자 이름(일반적으로 전자 메일 주소)

  • AZURE_PASSWORD: 해당 사용자의 암호

  • AZURE_TENANT_ID: (선택 사항) 서비스 주체 테넌트의 ID입니다. '디렉터리' ID라고도 합니다. 제공되지 않으면 기본값은 Azure Active Directory 회사 또는 학교 계정만 지원하는 '조직' 테넌트입니다.

  • AZURE_AUTHORITY_HOST: Azure Active Directory 엔드포인트의 권한(예: 값이 지정되지 않은 경우 기본값인 Azure 퍼블릭 클라우드에 대한 권한인 "login.microsoftonline.com").

InteractiveBrowserCredential

브라우저를 열어 사용자를 대화형으로 인증합니다.

get_token 는 Azure Active Directory에서 제공하는 로그인 URL로 브라우저를 열고 코드를 보호하기 위해 내부적으로 PKCE(코드 교환용 증명 키)를 사용하여 권한 부여 코드 흐름으로 사용자를 인증합니다.

KnownAuthorities

AzureAuthorityHosts의 별칭

ManagedIdentityCredential

관리 ID를 지원하는 호스팅 환경에서 Azure 관리 ID를 사용하여 인증합니다.

이 자격 증명은 기본적으로 시스템 할당 ID를 사용합니다. 사용자 할당 ID를 구성하려면 키워드(keyword) 인수 중 하나를 사용합니다. 애플리케이션에 대한 관리 ID 구성에 대한 자세한 내용은 Azure Active Directory 설명서를 참조하세요.

OnBehalfOfCredential

On-Behalf-of 흐름을 통해 서비스 주체를 인증합니다.

이 흐름은 일반적으로 위임된 사용자 ID를 사용하여 다른 서비스에 대한 요청을 승인하는 중간 계층 서비스에서 사용됩니다. 대화형 인증 흐름이 아니기 때문에 이를 사용하는 애플리케이션은 토큰을 요청하기 전에 위임된 권한에 대한 관리자 동의가 있어야 합니다. On-Behalf-of 흐름에 대한 자세한 설명은 Azure Active Directory 설명서를 참조하세요.

SharedTokenCacheCredential

Microsoft 애플리케이션 간에 공유되는 로컬 캐시에서 토큰을 사용하여 인증합니다.

TokenCachePersistenceOptions

영구 토큰 캐싱에 대한 옵션입니다.

대부분의 자격 증명은 이 클래스의 instance 수락하여 영구 토큰 캐싱을 구성합니다. 기본값은 Microsoft 개발자 도구 및 와 공유되는 캐시를 사용하도록 자격 증명을 SharedTokenCacheCredential구성합니다. 자격 증명의 데이터를 다른 애플리케이션과 격리하려면 캐시의 이름을 지정합니다.

기본적으로 캐시는 현재 플랫폼의 사용자 데이터 보호 API로 암호화되며 사용할 수 없는 경우 오류가 발생합니다. 캐시가 오류를 발생시키는 대신 암호화되지 않은 파일로 대체되도록 구성하려면 allow_unencrypted_storage=True를 지정합니다.

경고

캐시에는 인증 비밀이 포함되어 있습니다. 캐시가 암호화되지 않은 경우 캐시를 보호하는 것은

애플리케이션의 책임입니다. 콘텐츠를 위반하면 계정이 완전히 손상됩니다.

UsernamePasswordCredential

사용자 이름 및 암호를 사용하여 사용자를 인증합니다.

일반적으로 Microsoft는 다른 인증 흐름보다 보안이 떨어지므로 이러한 종류의 인증을 권장하지 않습니다.

이 자격 증명을 사용한 인증은 대화형이 아니므로 어떤 형태의 다단계 인증 또는 동의 프롬프트와 호환되지 않습니다. 애플리케이션에는 사용자 또는 디렉터리 관리자의 동의가 이미 있어야 합니다.

이 자격 증명은 회사 및 학교 계정만 인증할 수 있습니다. Microsoft 계정은 지원되지 않습니다. 계정 유형에 대한 자세한 내용은 Azure Active Directory 설명서를 참조하세요.

VisualStudioCodeCredential

'Azure 계정' 확장을 통해 Visual Studio Code 로그인한 Azure 사용자로 인증합니다.

이 자격 증명이 0.9.11 이상의 Azure 계정 확장 버전에서 작동하지 않는 것은 알려진 문제입니다. 이 문제에 대한 장기적인 수정이 진행 중입니다. 그 동안 을 사용하여 인증하는 것이 좋습니다 AzureCliCredential.

WorkloadIdentityCredential

Azure Active Directory 워크로드 ID를 사용하여 인증합니다.

워크로드 ID 인증은 VM(가상 머신)에서 실행되는 애플리케이션이 서비스 주체 또는 관리 ID 없이 다른 Azure 리소스에 액세스할 수 있도록 하는 Azure의 기능입니다. 워크로드 ID 인증을 사용하면 애플리케이션은 공유 서비스 주체 또는 관리 ID를 사용하는 대신 자체 ID를 사용하여 인증합니다. 워크로드 ID 인증은 Azure에서 자동으로 만들어지고 VM에 안전하게 저장되는 SAC(서비스 계정 자격 증명)의 개념을 사용합니다. 워크로드 ID 인증을 사용하면 각 VM의 각 애플리케이션에 대한 서비스 주체 또는 관리 ID를 관리하고 회전할 필요가 없습니다. 또한 SAC는 Azure에서 자동으로 만들어지고 관리되므로 중요한 자격 증명 자체를 저장하고 보호하는 것에 대해 걱정할 필요가 없습니다.

WorkloadIdentityCredential은 Azure Kubernetes에서 Azure 워크로드 ID 인증을 지원하고 Azure Kubernetes 환경에서 사용할 수 있는 서비스 계정 자격 증명을 사용하여 토큰을 획득합니다. 자세한 내용은 이 워크로드 ID 개요 를 참조하세요.