이 문서에서는 앱이 Azure 리소스에 인증하는 데 사용할 수 있는 추가 메서드를 나열합니다. 이러한 메서드는 덜 일반적으로 사용됩니다. 가능하면 Azure SDK 개요를 사용하여 Azure에 Go 앱을 인증하는 데 설명된 방법 중 하나를 사용합니다.
대화형 브라우저 인증
이 메서드는 기본 시스템에서 사용자 자격 증명을 수집하여 애플리케이션 InteractiveBrowserCredential 을 인증합니다.
대화형 브라우저 인증을 사용하면 대화형 로그인 자격 증명에서 허용하는 모든 작업에 애플리케이션을 사용할 수 있습니다. 따라서 구독의 소유자 또는 관리자인 경우 코드는 특정 권한을 할당하지 않고도 해당 구독의 대부분의 리소스에 고유하게 액세스할 수 있습니다. 이러한 이유로 실험에만 대화형 브라우저 인증을 사용합니다.
대화형 브라우저 인증에 애플리케이션 사용
다음 단계를 수행하여 애플리케이션이 대화형 브라우저 흐름을 통해 인증할 수 있도록 합니다. 이러한 단계는 나중에 설명한 디바이스 코드 인증 에도 작동합니다. 코드에서 사용하는 InteractiveBrowserCredential 경우에만 이 프로세스를 따라야 합니다.
Azure Portal에서 Microsoft Entra ID로 이동하여 왼쪽 메뉴에서 앱 등록을 선택합니다.
앱 등록 을 선택한 다음 인증을 선택합니다.
고급 설정에서 공용 클라이언트 흐름 허용에 대해 예를 선택합니다.
변경 내용을 적용하려면 저장을 선택합니다.
특정 리소스에 대한 애플리케이션에 권한을 부여하려면 해당 리소스로 이동하고, API 권한을 선택하고, 액세스하려는 Microsoft Graph 및 기타 리소스를 사용하도록 설정합니다. Microsoft Graph는 일반적으로 기본적으로 사용하도록 설정됩니다.
중요합니다
또한 처음 로그인할 때 애플리케이션에 동의를 부여하려면 테넌트의 관리자여야만 합니다.
Microsoft Entra ID에서 디바이스 코드 흐름 옵션을 구성할 수 없는 경우 애플리케이션이 다중 테넌트여야 할 수 있습니다. 이렇게 변경하려면 인증 패널로 이동하여 모든 조직 디렉터리(지원되는 계정 유형 아래)에서 계정을 선택한 다음, 공용 클라이언트 흐름 허용에 대해 예를 선택합니다.
InteractiveBrowserCredential을 사용하는 예제
다음 예제에서는 armsubscription 패키지에서 SubscriptionsClient에 인증하기 위해 InteractiveBrowserCredential를 사용하는 방법을 보여 줍니다.
package main
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/subscription/armsubscription"
)
func main() {
cred, err := azidentity.NewInteractiveBrowserCredential(nil)
if err != nil {
// TODO: handle error
}
ctx := context.Background()
clientFactory, err := armsubscription.NewClientFactory(cred, nil)
if err != nil {
// TODO: handle error
}
res, err := clientFactory.NewSubscriptionsClient().Get(ctx, "<your_subscription_id>", nil)
if err != nil {
// TODO: handle error
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
}
보다 정확한 제어를 위해 리디렉션 URI 설정과 같은 특정 인수를 RedirectURL에서 InteractiveBrowserCredential까지 InteractiveBrowserCredentialOptions 유형을 통해 제공할 수 있습니다.
디바이스 코드 인증
이 메서드는 제한된 UI(일반적으로 키보드가 없는 디바이스)를 사용하여 디바이스에서 사용자를 대화형으로 인증합니다.
- 애플리케이션이 인증을 시도하면 자격 증명은 URL 및 인증 코드를 사용하여 사용자에게 메시지를 표시합니다.
- 사용자는 별도의 브라우저 사용 디바이스(컴퓨터, 스마트폰 등)의 URL을 방문하여 코드를 입력합니다.
- 사용자는 브라우저에서 일반 인증 프로세스를 따릅니다.
- 인증에 성공하면 디바이스에서 애플리케이션이 인증됩니다.
자세한 내용은 Microsoft 아이디 플랫폼 및 OAuth 2.0 디바이스 권한 부여 흐름을 참조하세요.
개발 환경에서 디바이스 코드 인증을 사용하면 애플리케이션이 대화형 로그인 자격 증명에서 허용하는 모든 작업을 수행할 수 있습니다. 따라서 구독의 소유자 또는 관리자인 경우 코드는 특정 권한을 할당하지 않고도 해당 구독의 대부분의 리소스에 고유하게 액세스할 수 있습니다. 그러나 이 메서드는 기본값이 아닌 특정 클라이언트 ID를 사용하여 특정 권한을 할당할 수 있습니다.
패키지 azidentity의 DeviceCodeCredential 형식을 사용하여 디바이스 코드 인증을 구현합니다.