2017-09-22 2 views
1

웹 API를 호출하고 Azure AD에 대한 oAuth 코드 부여 흐름을 사용하는 샘플 웹 응용 프로그램을 만들었습니다. 응용 프로그램은 Azure AD에 등록되어 있으며 Azure 포털을 통해 필요한 권한도 부여했습니다. 모든 것이 예상대로 작동하는 것 같습니다.Azure 위임 및 응용 프로그램 사용 권한 우선

권한에 대한 두 가지 옵션이 있습니다

  • 위임 권한

  • 응용 프로그램 권한

이가 권한 세트의 혼합 종류 (앱 + 대리자를) 사용하는 것이 좋습니다 당신의 신청?

대리인 및 응용 프로그램에서 내 API에 비슷한 종류의 사용 권한을 부여하면 어떤 사용 권한 집합이 우선 적용됩니까? 예를 들어 oAuth 흐름에 의존할까요? 코드 부여 또는 암시 적?

내 코드에서 어떻게 동일한 리소스에 액세스하는 동안 이러한 권한 집합을 차별화 할 수 있습니까? 사용자 컨텍스트에서만 호출 할 경우 동일한 형식의 응용 프로그램 권한도 이미 있습니다.

답변

3

응용 프로그램 권한 및 위임 된 권한은 서로 완전히 독립적입니다.

응용 프로그램 사용 권한은 사용자가 Client Credential Flow (응용 프로그램 전용 흐름이라고도 함)을 따를 때 적용됩니다. 이 흐름을 따르면 AAD는 앱 등록에 미리 정의 된 애플리케이션 권한에 따라 클라이언트 애플리케이션에 권한을 부여하려고 시도합니다. 이러한 사용 권한은 role 소유권 주장의 앱 전용 토큰에 표시됩니다. 사용자가 관여 거의 모든 다른 흐름에서

( On-Behalf-Of, Authorization Code Grant Flow, Implicit Grant Flow 등) AAD는 미리 정의 된 위임 된 권한에 따라 클라이언트에 권한을 부여하려고합니다. 이러한 사용 권한은 scp (범위) 소유권 주장의 App + User 토큰에 표시됩니다.

액세스 토큰을 리소스로 가져올 때 인증 방법을 조정하여 응용 프로그램이 허가 된 종류를 제어 할 수 있습니다.

+0

감사합니다. @Shawn, 귀하는 Azure 포털 아래에있는 응용 프로그램 및 위임 된 권한이 상호 배타적 인 유형이라고 말하고 있습니까? User + App (허가 흐름)의 경우 Azure 포털에서 두 가지 유형의 확인란을 모두 적용하더라도, (역할)을 Azure 백엔드에서. 그것은 당신의 흐름 유형에 따라 다르다. 우선 흐름 유형이 User + App (grant) 인 경우 권한 유형을 찾는다. 흐름이 ​​app (클라이언트 cred)이면 위임 된 체크 박스 만 적용한다. 신청 허가 만 적용하십시오. –

+2

"흐름 유형이 User + App (grant) 인 경우 위임 된 체크 박스 만 적용되며 흐름이 응용 프로그램 (클라이언트 cred) 인 경우 응용 프로그램 권한 만 적용됩니다"- 수정하십시오. – Saca

+0

@saca 고맙습니다. –

관련 문제