2012-09-27 4 views
1

관리자 사용자를 사용하여 Google 앱 도메인의 사용자를 가장하는 방법을 찾고 있습니다. Google 데이터 문서 목록 API를 사용하면 쉽게 할 수 있지만 새로운 드라이브 API로는 할 수 없습니다.한 도메인의 드라이브 사용자를 도메인 관리자로 가장하는 방법

내가하고 싶은 일은 Oauth2를 사용하여 내 관리자 사용자를 인증하고 (이미 수행 했음) 도메인의 사용자 목록을 검색 한 다음 사용자를 가장하거나 적어도 파일에 액세스 할 수있게하려는 것입니다. 해당 사용자의 드라이브에있는 문서

Google Apps의 관리 패널에는 Oauth 소비자 키와 Oauth 소비자 비밀번호가 있지만 Oauth2가 아닌 Oauth1 2LO에서 사용됩니다.

내가 원하는 것을 구현하는 적절한 방법/해결 방법/해킹이 있습니까?

안부,

제롬

답변

2

나는 단지 예로서 구글-API-루비 클라이언트에서 찾아 봤는데하지만 당신은 액세스가 허용되는 서비스 계정을 사용하여이 작업을 수행 할 수 있어야한다 관리자 패널 -> 고급 도구 -> 타사 클라이언트 관리를 통해 일단 당신이 아직이와 함께 많은 일을하지만,이에 인증 후하지 않은

client.authorization = asserter.authorize("[email protected]") 

을 사용할 수 있습니다 여기에 서비스 계정 http://code.google.com/p/google-api-ruby-client/source/browse/service_account/analytics.rb?repo=samples을 예제를 따라 대신의

client.authorization = asserter.authorize() 

과 권한을 부여 할 수 허용 방법 내 도메인의 사용자가 소유 한 모든 문서를 나열 할 수있었습니다.

2

James Woodward 덕분에 사용자를 가장 할 수있었습니다. Java에 대한 자세한 정보를 제공하는 답변을 게시합니다.

  1. API 콘솔에서 서비스 계정을 만듭니다. 3 개 중요한 자원이 작성됩니다
    1. 클라이언트 ID : Google 애플리케이션 도메인
    2. 이메일 주소에 대한 응용 프로그램 권한을 부여하는 데 사용 : 응용 프로그램의 요청 권한을 부여하는 데 사용을
    3. .P12 키 파일을 요청 권한을 부여하는 데 사용 앱의
  2. Google Apps 관리자 패널에서 앱에 권한을 부여하고 서비스 계정 클라이언트 ID 및 앱에 필요한 모든 범위를 제공합니다.
  3. GoogleCredential이 방법을 만들기 : 그 자격 증명을 이제 권한을 부여받은 범위에 대한 응용 프로그램에 의해 요청을 인증 할 수 있습니다

    GoogleCredential serviceCred = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT) 
          .setJsonFactory(JSON_FACTORY) 
          .setServiceAccountId(SERVICE_ID) 
          .setServiceAccountScopes(Arrays.asList(SCOPES)) 
          .setServiceAccountUser("[email protected]") 
          .setServiceAccountPrivateKeyFromP12File("key.p12") 
          .build(); 
    

.

+0

나를 위해, "DriveScopes.all()"을 사용하면 권한이없는 오류가 발생하므로 "드라이브"범위 만 사용해야합니다. 또한 다음에서 찾은 자바 클라이언트 라이브러리를 업데이트했습니다. https://developers.google.com/api-client-library/java/google-api-java-client/download (google-api-client) 내 시간에 -assembly-1.21.0-1.21.0.zip) –

관련 문제