Я пытаюсь вызвать AdminService API для управления группами моего домена, такими как добавление новых членов группы, создание новых групп и т. Д., Но я застрял с просьбой получить всех пользователеймоего домена.Вот код:
public static class MembersSample
{
static void Main(string[] args)
{
String serviceAccountEmail = "*****@*****.iam.gserviceaccount.com";
var certificate = new X509Certificate2(@"pathofthefile.p12", "secret", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] {
DirectoryService.Scope.AdminDirectoryUser,
DirectoryService.Scope.AdminDirectoryGroup,
DirectoryService.Scope.AdminDirectoryDomain,
DirectoryService.Scope.AdminDirectoryGroupMember },
User = "domainmanageremail"
}.FromCertificate(certificate));
var dirservice = new DirectoryService(new Google.Apis.Services.BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "my application name",
});
var listReq = dirservice.Users.List();
listReq.Domain = "my domain address";
Users allUsers = listReq.Execute();
int counter = 0;
foreach (User myUser in allUsers.UsersValue)
{
Console.WriteLine("*" + myUser.PrimaryEmail);
counter++;
}
Console.WriteLine(counter);
Console.ReadKey();
}
Я получаю эту ошибку;
Необработанное исключение: Google.Apis.Auth.OAuth2.Responses.TokenResponseException: Ошибка: "unauthorized_client", Описание: "Клиент не авторизован для получения маркеров доступа с использованием этого метода.", Uri: ""
Моя роль учетной записи службы - Пользователь учетной записи службы, а моя роль - Администратор учетной записи службы в этом проекте.Кроме того, я выполнил часть авторизации для учетной записи службы с областью действия DirectoryService.Scope.AdminDirectoryUser (делегирование по всему домену).
- Эта область неверна или мне нужна дополнительная область для управления группами и участниками?
Спасибо за любую помощь!