2017-05-17 15 views
0

を使用してOauthカスタムスキーマを使用してユーザーにパッチを適用できません。Google Oauth2サービスアカウントを使用してカスタムユーザーフィールドにパッチを適用しようとしましたが、委任すれば403 Unauthorized自分以外のユーザー。代理ユーザーG-Suite Admin SDK Python

私は事実上、次の文書の案内を受けています。私は一時的にこの委任されたユーザー([email protected])スーパー・ユーザ権限を与えてくれたが、問題が解決しない、離れて実際の名前から実際に、私は差別何かを見つけることができません https://developers.google.com/api-client-library/python/auth/service-accounts#jwtsample

自分自身のアカウントで、実際のスキーマ「customPermissions」のパーミッションに関連していると思われます。

(委任されたユーザーには、サービスアカウントのサービスアカウントの俳優である)私のテストコードは次のように私のカスタムスキーマがある...

from __future__ import print_function 
import json 
import os 
import httplib2 

from httplib2 import Http 
from json import dumps 
from apiclient import discovery 
from httplib2 import Http 

from oauth2client.service_account import ServiceAccountCredentials 

headers = {} 

scopes = ['https://www.googleapis.com/auth/admin.directory.user', 
      'https://www.googleapis.com/auth/admin.directory.userschema'] 

credentials = ServiceAccountCredentials.from_json_keyfile_name('service-account.json', scopes=scopes) 

# Service account actor - Valid Google user but not a real person. 
account_sub = '[email protected]' 

delegated_credentials=credentials.create_delegated(account_sub) 

httplib2.debuglevel=3 

http = delegated_credentials.authorize(Http()) 

service = discovery.build('admin', 'directory_v1', http=http) 

# Prove we can get some users ... 
results = service.users().list(customer='<redacted>', maxResults=10, orderBy='email').execute() 
users = results.get('users', []) 

# Prove we can update schema for a particular user 
schema = dumps({'customSchemas':{'pugme':{'customPermissions':[{'value':'role1'},{'value':'role2'}],'realName':'Mike Kirk'}}}) 

headers['Content-Type']="application/json; charset=UTF-8" 
resp = http.request('https://www.googleapis.com/admin/directory/v1/users/[email protected]?projection=full', "PATCH", body=schema, headers=headers) 
print(resp) 

です。

custom_schema = { 
    "fields": [ 
     { 
      "fieldName": "customPermissions", 
      "fieldType": "STRING", 
      "multiValued": True 
     }, 
     { 
      "fieldName": "realName", 
      "fieldType": "STRING" 
     } 
    ], 
    "schemaName": "pugme", 
} 

おかげでマイク

答えて

1

は、ユーザー[email protected]のパスワード有効期限が切れていますか?同様の問題が発生し、パスワードをリセットすることで解決しました。

https://developers.google.com/admin-sdk/directory/v1/reference/schemas

+0

良いスポット:それはまた、属性フィールドにreadAccessTypeを変更する価値があるかもしれません!ユーザーのパスワードをリセットしました(まだ一時的でした)。 次の課題は、SuperAdminからカスタムAdminロールに権限を引き下げようとすることです。 User&Schema Managementの権限で十分であると期待していましたが、おそらくこれらのカスタム属性を設定する特権は公開されていませんか? –

関連する問題