2014-09-23 6 views
3

컬링을 통해 Azure AD를 사용하여 Azure 서비스 관리 API에 인증하고 싶습니다.Azure Active Directory Oauth를 사용하는 Azure 서비스 관리 API 인증

set up an application 내 기본 디렉토리에 있습니다. 이 무료 평가판 서브 스크립 션에서 내가 가지고있는 유일한 디렉토리입니다.

oauth 토큰 끝점을 대상으로 할 때 JWT가 수신됩니다.

curl --data "grant_type=client_credentials&client_id=<my_client_id>&client_secret=<my_encoded_secret>&resource=https%3A%2F%2Fmanagement.core.windows.net" https://login.windows.net/<my_tenant_id>/oauth2/token 

하지만 내 구독 세부 정보를 표시하는 토큰을 사용하면 오류가 나타날 수 있기 때문에,

curl -H "x-ms-version: 2014-06-01" \ 
    -H "Authorization: Bearer <my_token>" \ 
    https://management.core.windows.net/<my_subscription_id>/ 

    <Error xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
     <Code>ForbiddenError</Code> 
     <Message>The server failed to authenticate the request. Verify that the certificate is valid and is associated with this subscription.</Message> 
    </Error> 

나는 "위임 권한"등의 응용 프로그램에 대한 서비스 관리 API 권한을 부여한을 " 응용 프로그램 사용 권한 "을 사용할 수 없습니다.

enter image description here

나는 무엇을 놓치고?

+0

매트, 어떤 행운이? 나는 비슷한 문제에 직면하고있다. – batta

답변

1

응용 프로그램 권한 : 0 서비스 관리 API에 대한 설정으로 인해 불가능합니다. client_credentials 부여 유형은 응용 프로그램의 자격 증명 (client_id 및 client_secret)을 사용하며 응용 프로그램에이 API에 대한 권한이 없으므로 호출이 실패합니다.

서비스 관리 API는 어떤 종류의 응용 프로그램 권한도 허용하지 않으므로 authorization_code grant type 또는 다른 방법을 사용하여 사용자 토큰을 얻어야합니다.

+0

브라우저 팝업을 사용하여 대화식으로 AAD 응용 프로그램으로 Microsoft 계정을 인증 할 수 있다는 의미입니까? 서비스 주체로 AAD 응용 프로그램을 만들려고했지만 동일한 금지 된 오류로 인해 이전 서비스 관리 REST API에 액세스 할 수 없습니다. – Toni

+0

AAD 응용 프로그램이 네이티브 응용 프로그램으로 추가되면 서비스 주체 자격 증명과 AAD 응용 프로그램의 클라이언트 ID로 인증 할 수 있습니다. AAD 응용 프로그램이 웹 응용 프로그램으로 추가되면 브라우저 팝업 방법이 필요합니다. –

+0

설명해 주셔서 감사합니다. 그러나 네이티브 AAD 앱의 서비스 주체로 인증 할 때 서비스 관리 API에 액세스 할 수 없습니다 (앱의 "서비스 관리 액세스 권한"이 응용 프로그램 권한이 아닌 위임 된 권한 일 뿐이 기 때문일 수 있습니다). – Toni

관련 문제