Google API/認証を正しく使用するには、「@developer.gserviceaccount.com」で終わるサービス アカウントの電子メールを指定する必要があるようです 。
ただし、このアカウントには、ユーザーを追加/リスト/削除するドメインへのアクセス権がありません。これが「承認されていません」リクエストの原因だと思います。
このアカウントに、変更を加えたいドメインへのアクセス許可をどのように付与しますか? または - 認証中に別のアカウントをリストすることになっていますか? もしそうなら、どのようにすればよいですか - パーミッションを持つドメイン アカウントを指定すると、" invalid_grant" が得られるからです。
どんな助けでも大歓迎です。ありがとう。
これはコードです:
String szDomainName = "testdomainname.com";
String szServiceAccount = "google_generated_user@developer.gserviceaccount.com";
var certificate = new X509Certificate2(@"Google_Key.p12", "notasecret", X509KeyStorageFlags.Exportable);
ServiceAccountCredential.Initializer ServiceAccountCredentialInitializer = new ServiceAccountCredential.Initializer(szServiceAccount);
ServiceAccountCredentialInitializer.FromCertificate(certificate);
ServiceAccountCredentialInitializer.Scopes = new[] { DirectoryService.Scope.AdminDirectoryUser };
ServiceAccountCredential credential = new ServiceAccountCredential(ServiceAccountCredentialInitializer);
// Create the service.
BaseClientService.Initializer ServiceInitializer = new BaseClientService.Initializer();
ServiceInitializer.HttpClientInitializer = credential;
ServiceInitializer.ApplicationName = "List Users";
var service = new DirectoryService(ServiceInitializer);
var listReq = service.Users.List();
listReq.Domain = szDomainName;