2017-02-13 2 views
4

jwt.io를 사용하여 내 응용 프로그램이 Microsoft Graph에서 가져 오는 토큰을 결정할 때 Directory.Read.All 및 User.Read 범위 만 포함합니다 :Microsoft Graph API 토큰의 범위가 Azure 포털에서 설정된 것과 다릅니다

enter image description here

그리고 이것은 내가 같은 User.ReadBasic.All로 더 많은 범위에 들어있는 푸른 포털에 설정된 사용 권한을 다른 :

enter image description here

I을 어쨌든이 문제를 해결할 수 있습니까?

+0

[Graph Explorer] (https://graphexplorer.cloudapp.net)를 통해 서비스 주체 교부금을 확인하십시오. '/ servicePrincipals'에서 앱의 보안 주체를 찾은 다음'/ servicePrincipals/object-id/oauth2PermissionGrants'를 확인하십시오. 앱에 대해 위임 된 권한이 무엇인지 알려줍니다. – juunas

+0

@juunas 그래프 탐색기에 대한 전체 요청 링크를 올려주십시오. 죄송합니다. 아직 마이크로 소프트 그래프에 익숙하지 않습니다. – yfan183

+0

와우, 그래프 탐색기가 지금 업데이트되었습니다. 새 주소는 실제로 https : // graphexplorer입니다. .azurewebsites.net /. 거기에 로그인 한 다음 텍스트 상자에 다음과 같이 입력하십시오 :'https : // graph.windows.net/myazuread.onmicrosoft.com/servicePrincipals', 그리고 Go를 누르십시오. 그런데이 탐색기는 Microsoft Graph API가 아닌 Azure AD Graph API 용입니다. 다른 API. 그러나 여기서 중요한 것은 Azure AD에서 앱에 대한 사용 권한 부여를 확인하는 것입니다. – juunas

답변

4

사용자가 이미 로그인하여 앱에 동의 한 후에 앱으로 돌아가서 추가 권한을 추가 할 때 일반적으로 표시됩니다. 해당 사용자는 계속 "이전"권한을 얻지 만 새로운 사용자는 새 권한을 얻습니다.

제 추측이 맞다면 원래 Directory.Read.AllUser.Read으로 앱을 등록했을 것입니다. 사용자 계정으로 로그인했습니다. 그런 다음 추가 권한을 추가하고 다시 시도했습니다. 그게 맞는 것 같니?

Azure의 v1 끝점은 이미 동의 한 사용자의 범위를 동적으로 업데이트하지 않습니다. 이러한 사용자에게 "다시 동의"하는 경험을 강요해야합니다. 권한 부여 URL에 prompt=consent 매개 변수를 추가하십시오. 사용자가 업데이트 된 사용 권한 목록을 사용하여 동의 화면을 다시 볼 수있게해야합니다.

+0

미안 해요. 저는 여전히 이것에 대해 아주 새롭습니다. 나는 편집에 토큰을 얻는 코드를 추가했습니다. 그리고 어디에 추가해야할지 모르겠습니다. 코드 안에있는 'prompt = consent' – yfan183

+0

글쎄요, ADAL에는 몇 가지 다른 버전이 있습니다. 어느 것을 사용하고 있습니까? –

+0

2라고 생각합니다.14 그것이 Nuget 패키지 매니저에서 말한대로입니다 – yfan183

관련 문제