2017-03-01 1 views
0

올바른 흐름을 찾기 위해 깊이 고심하고 있습니다. 레일즈 앱을 가지고 있습니다 (ID, Pwd, Scopes 포함). 가능한 한 간단하게 : 회사의 모든 전자 메일 (읽기 전용)에 대한 액세스 권한이 있어야합니다. 그것은 야간에 정보를 처리하는 서버 응용 프로그램입니다.Rails App에서 Microsoft Graph API로 Oauth 플로우를 사용하여 관리자 인증을 관리하는 방법

이 회사의 관리자 로그인 링크를 가져 오기 : 콜백에서

https://login.microsoftonline.com/{TENANT_ID}/oauth2/authorize?client_id={MY_APP_ID}&response_type=code&redirect_uri=MY_APP_ADDRESS&response_mode=query&prompt=admin_consent 

, 나는 PARAMS의 코드를받을 수 있나요 내가 이해하고 노력 무엇

. 이 코드에서 POST 요청이있는 토큰을 얻습니다.

client_id: MY_APP_ID, 
grant_type: "authorization_code", 
code: MY_RECEIVED_CODE, 
redirect_uri: MY_APP_ADDRESS, 
client_secret: MY_CLIENT_SECRET, 
resource: "https://graph.microsoft.com/" 

여기에서 토큰을 얻습니다. 메시지를받는 간단한 요청은 관리자 사서함 (액세스를 확인한 사람)에게 잘 작동합니다. 조직에서 다른 사람을 찾으려고 할 때 '액세스가 거부되었습니다.'

마지막 시점. Microsoft App 포털에 정의 된 범위 : Group.Read.All 및 Mail.Read (응용 프로그램 또는 위임 된 서비스 모두)

해당 작업을 수행하는 올바른 방법은 무엇입니까? 감사 !

답변

0

권한 부여 요청에 query 매개 변수 prompt = admin_consent를 추가하면 관리자가 자신을 위해서만이 아니라 전체 조직을 대신하여 동의하게됩니다.

관련 문제