3

marketplace requirement Google Apps for Work 도메인 관리자가 자신의 도메인에 대해 Google 앱을 설치하면 관리자와 도메인의 모든 사용자가 이후에 볼 수 없게됩니다 앱에 액세스 할 때 범위 인증 화면 도메인에 앱을 설치하는 행위는 앱과 관련된 서비스 계정에 대한 도메인 전체 권한을 암시 적으로 위임해야합니다.서비스 계정 및 위임 권한을 사용하여 Google API를 호출 할 때 현재 사용자로 가장

이 동작을 달성하기 위해 나는 delegation of authority to a service account을 대신하여 일을 시도하고 있습니다. 일명 가장로, 현재 로그인 한 사용자입니다.

아래의 코드 스 니펫은이 기능을 사용하기 위해 시도한 다양한 시도를 보여줍니다. 작동하는 유일한 방법은 JWT를 만들 때 도메인 수퍼 유저의 전자 메일 주소를 "하위"매개 변수 (일명 prn)로 전달하는 것입니다. 그러나이 기능은 본질적으로 제재소 도메인 사용자의 특권을 정기적으로 실행하여 원하는 효과가 아닌 수퍼 유저 권한으로 향상시킵니다.

var client = new googleapis.auth.JWT(
    '<serviceaccount>@developer.gserviceaccount.com', 
    'localhost.pem', 
    null, 
    ["https://www.googleapis.com/auth/admin.directory.user.readonly"], 
    // null - // 403 not auth 
    // {'userId' : '[email protected]'} // 403 not auth 
    // {'userId' : 'me'} // 403 not auth 
    // "[email protected]" // works! 
    // "{[email protected]}" // not a valid email error 
    // 'me' // invalid impersonation prn email address 
); 

구글은 특별한 '나'값으로 당신이 가장 원하는 사람의 단지 이메일 주소가 아닌 다른 ID를 존중 하는가?

우리는 여기서 닭고기와 달걀 문제를 겪고있는 것처럼 느껴집니다. 기본적으로 전자 메일 주소 (특히 관리자 전자 메일이 아님)를 하드 코딩하지 않으므로 API 호출을해야하는 것처럼 느껴집니다. 하지만 사용자를 가장하지 않고 API 호출을 할 수는 없습니다.

답변

1

이 경우 서비스 계정과 도메인 위임을 사용할 필요가 없습니다. 대신 사용자와 정상적인 OAuth2 흐름을 따라 가면 승인 화면이 자동으로 건너 뜁니다.

관리자가 앱을 설치하고 범위를 승인하면 도메인의 모든 사용자에 대해 해당 범위에 대한 액세스가 본질적으로 자동으로 부여됩니다. 또한 사용자가 승인 화면을 보지 못하도록하는 요구 사항이지만 OAuth2 토큰을 얻기 위해서는 여전히 OAuth2 플로우를 거쳐야합니다. 사용자의 OAuth2 흐름을 실행하고 도메인 관리자가 아직 승인하지 않은 범위를 요청하지 않고 URL에 approval_prompt=force을 설정하지 않으면 OAuth2 승인 화면이 즉시 리디렉션 URI로 리디렉션되어 프로세스를 만듭니다 사용자에게는 보이지 않습니다.

+0

안녕하세요, 에릭, 응답 해 주셔서 감사합니다. 이는 앱을 새로 설치하는 경우에도 작동하지만 기존 설치의 경우 해당 범위를 수동으로 추가하려면 Google 조직의 관리자가 필요합니다. 기존 API 클라이언트의 액세스 범위에 범위를 추가 할 수있는 방법이 있습니까? 여기에서 시도했지만 업데이트하려고하면 오류가 발생합니다. https://admin.google.com/AdminHome?chromeless=1#OGX:ManageOauthClients –

+0

도메인에 대한 위임 권한을 위임하는 것이 우리가 생각할 수있는 유일한 방법이었습니다. 기존 사용자에 대한 범위 프롬프트를 제거하십시오. –

+0

앱이 사용하는 범위를 늘리는 것이 오늘날 가장 즐거운 경험이 아닙니다. Apps Marketplace 구성을 새 범위로 업데이트하면 관리 콘솔에서 응용 프로그램을 다시 인증 할 수있는 옵션이 표시됩니다 (수동으로 범위를 추가하지 않아도 됨). 그러나 그렇게 할 때까지 사용자는 새 범위를 묻는 승인 프롬프트를 보게됩니다. 그러나 이것은 정상적인 것이며 귀하의 기존 목록에 영향을 미치지 않아야합니다. 그러나 일반적으로 관리자에게 전자 메일을 보내거나 재 인증의 필요성을 알리는 경고 표시 줄을 앱에 표시하는 것이 좋습니다. –

관련 문제