Share via


AAD 관리 ID를 사용하여 Azure Sphere 공용 API에 액세스

이 메서드를 사용하여 코드의 자격 증명 없이 AAD(Azure Active Directory) 인증을 지원하는 모든 서비스에 인증할 수 있습니다. AAD 관리 ID는 사용자를 대신하여 서비스 주체의 생성 또는 갱신을 처리합니다. Azure 리소스에서만 사용할 수 있는 특수 형식의 서비스 주체입니다. 관리 ID가 삭제되면 해당 서비스 주체가 자동으로 제거됩니다.

시스템 할당: 일부 Azure 서비스를 사용하면 서비스 instance 직접 관리 ID를 사용하도록 설정할 수 있습니다. 예를 들어 Azure App Service. 시스템 할당 관리 ID를 사용하도록 설정하면 해당 서비스 instance 수명 주기에 연결된 id가 Azure AD 만들어집니다. 따라서 리소스가 삭제되면 Azure에서 자동으로 ID를 삭제합니다. 기본적으로 Azure 리소스만 이 ID를 사용하여 Azure AD 토큰을 요청할 수 있습니다.

필수 구성 요소

다음 섹션에서는 관리 ID를 사용하여 Azure Web App에서 AZURE Sphere 공용 API(PAPI)를 호출하는 방법을 설명합니다.

1단계: 리소스에서 시스템 할당 ID 사용

리소스에서 시스템 할당 ID를 사용하도록 설정하고 프로젝트의 개체 ID를 찾으려면 다음을 수행합니다.

  1. Azure Portal 왼쪽 탐색 창에서 App Services를 클릭합니다.
  2. 드롭다운에서 필요한 구독을 선택하고 검색 결과에서 앱을 선택합니다.
  3. 논리 앱 메뉴의 설정에서 ID를 선택합니다.
  4. 상태를기로 설정하여 시스템 할당 ID를 사용하도록 설정합니다.
  5. 저장을 클릭합니다.
  6. 개체 ID를 복사합니다.

2단계: Azure Sphere 테넌트에서 관리 ID 추가

참고

이 단계를 시작하기 전에 다음이 있는지 확인합니다.

Azure Sphere는 서비스 주체를 다른 사용자로 취급합니다. 서비스 주체를 사용하여 토큰을 획득하려면 먼저 서비스 주체 사용자를 Azure Sphere 테넌트에 추가한 다음 Azure Sphere CLI를 사용하여 Azure Sphere 테넌트에서 사용자에게 역할을 할당합니다.

사용자 ID는 ObjectID@<TenantID.onmicrosoft.com>> 생성<할 수 있습니다.

다음 예제에서는 Azure Sphere 테넌트 ID 에서 개체 ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 와 Azure AD 테넌트 ID zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzztttttttt-tttt-tttt-tttt-tttttttttttt의 조합을 사용하여 사용자를 만든 다음, 이 사용자에 대한 기여자 역할을 추가합니다.

  1. Azure Sphere CLI를 사용하여 Azure Sphere 로그인으로 로그인합니다.

    azsphere login
    
  2. 필요한 테넌트 선택:

    azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
    
  3. Azure Sphere 테넌트에서 서비스 주체 사용자를 만들려면 다음을 수행합니다.

    azsphere register-user --new-user  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
    
  4. 필요한 역할에 사용자를 추가하려면 다음을 수행합니다.

    azsphere role add --role Contributor --user xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
    

3단계: 프로젝트에 Azure.Identity NuGet 패키지 추가

프로젝트에 Azure.Identity NuGet 패키지를 추가합니다. Azure Sphere PAPI(공용 API) 토큰은 DefaultAzureCredential을 통해 획득할 수 있습니다.

예를 들어 코드 조각을 참조하세요.

    public static async Task<string> GetAS3Token()
    {
        DefaultAzureCredential credential = new DefaultAzureCredential();
        var result = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(
        new[] { "https://firstparty.sphere.azure.net/api/.default" }));
        return result.Token;
    }