1

.Net で Google Directory Services API を使用してメンバーをグループに追加しようとすると、不十分なアクセス許可 [403] が引き続き発生します。

※Googleドメインを設定しております。
*ユーザー xxxxx はドメインの管理者です。
*ユーザー xxxxx として管理コンソールにログインし、サービス アカウントを作成しました。

*そのサービス アカウントに関連付けられた/生成された Google ClientID を取得し、次のスコープを指定しました。

https://www.googleapis.com/auth/admin.directory.group
https://www.googleapis.com/auth/admin.directory.group.member
https://www.googleapis.com/auth/admin.directory.user

※グループは弊社ドメインで作成したグループです。有効なグループです。ユーザーを手動で追加/削除できます。
* ユーザー xxxxx は、グループの所有者およびメンバーです。
* 追加しようとしているユーザーは、ドメイン内の有効なアカウントです。
* xxxxx アカウントとサービス アカウントはすべてセットアップされ、機能しているため、Google Directory Services API を使用してプログラムでドメインにユーザーを問題なく作成できます。(つまり、Admin SDK は既に有効になっているなど)。

ユーザーをグループに追加するために使用しているコード スニペットは非常に単純です。

GroupsResource.GetRequest grGet = m_service.Groups.Get("TestGroup@OurGoogleDomain.com");//Existing group
string szGroupID = grGet.GroupKey;
Member userMember = new Member();    
userMember.Email = "u.test1923@OurGoogleDomain.com";//Existing user
userMember.Role = "MEMBER";
m_service.Members.Insert(userMember, szGroupID).Execute();

コードに何か不足していますか? 設定する必要があるが不明な Google グループ専用の設定はありますか? どんな助けでも大歓迎です!ありがとう!

4

1 に答える 1

1

次のサービス宣言を使用してコードをテストしたところ、スムーズに動作しました。

String serviceAccountEmail = "Enter your service account email";
        var certificate = new X509Certificate2("GoogleDirectoryManager-xxxxxxxxxx.p12", "Enter your Key", X509KeyStorageFlags.Exportable);

        ServiceAccountCredential credential = new ServiceAccountCredential(
        new ServiceAccountCredential.Initializer(serviceAccountEmail)
        {
            User = "Enter an Admin Email for the Domain",

            Scopes = new[] { DirectoryService.Scope.AdminDirectoryUser, DirectoryService.Scope.AdminDirectoryGroupMember }
        }.FromCertificate(certificate));

ドメイン API クライアント アクセスで承認されている Google API サービス アカウントに関連付けられている適切なスコープおよび/またはサービス アカウントを指定する必要がある場合があります。

于 2015-11-24T07:39:06.707 に答える