그래프 API 및 관련 인증/권한 부여 플로를 사용하면 조직의 모든 사용자 데이터에 어떻게 액세스 할 수 있습니까? 또한 여러 조직/세입자가 앱을 사용할 수 있어야합니다.그래프 API를 통해 다른 사용자의 데이터에 액세스하는 방법은 무엇입니까?
예 : contoso.onmicrosoft.com에 속한 모든 사용자의 모든 일정에서 일정을 읽어야하는 앱이 있습니다. 관리자 인 [email protected]이 언급 된 데이터를 읽을 수있는 응용 프로그램을 허가하고 싶습니다. Managed API를 사용하면 가장 (impersonation)을 통해 쉽게 수행 할 수 있습니다.
그러나 Graph API 및 OAuth를 사용하여 동일한 작업을 수행하려고 시도하지만 직접적인 해결책을 찾을 수 없거나 매우 명확한 것이 빠져 있어야합니다. manage.windowsazure.com (멀티 테넌트)을 통해 응용 프로그램을 만들었고 Microsoft Graph API (모든 응용 프로그램 및 위임 된 사용 권한)가 필요하도록 구성했습니다.
1)
2) 잭이 응용 프로그램
3) 내가 돌아올에게 권한을 부여 https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&redirect_uri=<my redirect url>&client_id=<my client id>
으로 [email protected] 포인트 :
<my redirect url>/?code=<my authorization code>&session_state=<blah>
4) 아래처럼 POST 요청을 보냅니다.
POST https://login.microsoftonline.com/common/oauth2/token
Headers: content-type: application/x-www-form-urlencoded
Body:
grant_type=authorization_code&code=<my auth code from step above>
&redirect_uri=<my redirect url>
&client_id=<my client id>
&client_secret=<my client secret>
&resource=https%3A%2F%2Fgraph.microsoft.com%2F
5) 다음 작업을 수행 할 때 :
GET https://graph.microsoft.com/v1.0/users/[email protected]/messages
Headers: Authorization: Bearer <auth token from step #4>
메시지에 대해 200 OK 응답이 표시됩니다.
다음 작업을 수행 할 때 :
GET https://graph.microsoft.com/v1.0/users/[email protected]/messages
Headers: Authorization: Bearer <auth token from step #4>
내가 가진 403 금지 응답을 얻을 :
{
"error": {
"code": "ErrorAccessDenied",
"innerError": {
"date": "2016-06-07T08:47:27",
"request-id": "5b629e30-e6bd-474d-b3dd-8ce25c5ad1c4"
},
"message": "Access is denied. Check credentials and try again."
}
}
이 도움이! 나는 App Only 버전으로 바꾸었다. (인증서 없이는 몇 가지 문제가 있었지만, 결국 그것도 없었다.) 그 열쇠는, 이전처럼 흐름을 시도했기 때문에'prompt = admin_consent'를 추가하는 것처럼 보이지만 작동하지 않았습니다. 특정 API 호출에 몇 가지 문제가 있지만 그와 같은 많은 공간이 있습니다. :) 다시 한 번 감사드립니다! –