2016-06-28 3 views
1

내 Google 디렉토리에서 사용자를 만들려고하는 PHP 응용 프로그램을 작성했습니다. Google 도서관을 사용하지 않습니다. 필자는 Android Enterprise API에 요청을 제출했다. 내 MSA에 엔터프라이즈 서비스 계정을 등록하고 등록 취소 할 수 있습니다. 그래서 JWT와 Requests 코드에 대한 제 코드를 사용합니다. 서비스 계정이있는 Google 디렉토리에 사용자 삽입

나는 서비스 계정을 생성하고 "도메인 와이드 위임"을 활성화하고 "API 클라이언트 액세스 관리"창에서 내 API 클라이언트에 다음과 같은 권한을 " https://www.googleapis.com/auth/admin.directory.user, https://www.googleapis.com/auth/admin.directory.group"를 추가했다. 내 서비스 계정의 "프로젝트 권한"창에 상태 역할 "편집기"가 있습니다.

먼저 내 스크립트는 JWT를 만들고 내 개인 키로 암호화하기 위해 Google 서버에서 무기명 토큰을 가져옵니다. 토큰은 다음과 같은 필드를

"iss" => [email protected] 
"scope" => "https://www.googleapis.com/auth/admin.directory.user, https://www.googleapis.com/auth/admin.directory.group" 
"aud" => "https://www.googleapis.com/oauth2/v4/token", 
"exp" => timestamp+3000, 
"iat" => timestamp 

내가 무기명 토큰을 얻을 해당 요청을 수행하지만 난 항상 메시지가 삽입 요청을 해당 토큰을 사용할 때 "이 자원에 액세스 할 수있는 권한이 없습니다/API를 포함 "HTTP 403. 필드"sub "를 JWT에 추가하고 프로젝트 관리자"[email protected] "의 이메일을 지정하면 무기명 토큰을 얻을 수 없다는 메시지가 표시되면서 401 오류가 발생합니다. 다음 메시지 "승인되지 않은 클라이언트 또는 요청 범위가 있습니다."

"쉬운"것을 시도한 후에, 나는 단지 내 디렉토리에있는 모든 사용자의 목록을 얻고 싶었습니다. 그러나 Google 서버는 "잘못된 요청"오류로 다시 회신합니다. API 페이지에있는 API 탐색기에서 같은 오류가 발생했습니다. 어쩌면 API가 고장 났을까요? 적어도 API 탐색기가 작동해야합니다. https://developers.google.com/admin-sdk/directory/v1/reference/users/list

내 서비스 계정으로 사용자를 만들 수없는 이유가 있습니까?

답변

0

당신이 몇 가지 아이디어를 가지고 있습니까 필립을

인사말

는 (I가 두 개 이상의 링크를 게시 할 수 없습니다 해요 때문에 나는 범위 및 URL의 일부 공간을 삽입했다) 왜 내가 할 수있는 ' 내 서비스 계정으로 사용자를 만들지 않으십니까?

예. 귀하의 서비스 계정에는 사용자를 생성 할 수있는 권한이없는 것 같습니다. GDC에서 서비스 계정의 역할을 확인하여 소유자, 편집자, 뷰어 등이 있는지 확인하십시오. 그들이 할 수있는 일의 범위는 그것에 달려 있습니다. 라이브 데모를 보려면 Google video을 시청하십시오.

또한 Using OAuth 2.0 for Server to Server Applications에 대한 자세한 내용을 읽어보십시오.