Добавление пользователя в организационное подразделение и группу с помощью Google Directory API

Мне удалось создать новую учетную запись пользователя с помощью Google Directory API на платформе .Net, но теперь мне нужно добавить этого созданного пользователя в организационную единицу и группу. Я вижу детали API в этой ссылке, чтобы добавить пользователя в организационную единицу, но любой пример, показывающий вставку в организационную единицу, был бы очень признателен.

Обновлен с рабочим кодом: Ниже приведен код для создания новой учетной записи пользователя с использованием Directory API:

String serviceAccountEmail = "[email protected]";
                X509Certificate2 certificate = new X509Certificate2(@"C:\key.p12", "secret", X509KeyStorageFlags.Exportable);
                ServiceAccountCredential credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccountEmail)
                {
                    Scopes = new[]
                        {
                          DirectoryService.Scope.AdminDirectoryUser
                        },
                    User = "[email protected]",

                }.FromCertificate(certificate));

                var ser = new DirectoryService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = credential,
                    ApplicationName = "Google Account",
                });
                try
                {                           
                    var user = new Google.Apis.Admin.Directory.directory_v1.Data.User()
                    {
                        Name = new Google.Apis.Admin.Directory.directory_v1.Data.UserName()
                        {

                            GivenName = FirstName.Text,
                            FamilyName = LastName.Text
                        },
                        Password = password
                    };

                    User newUser = new User();
                    UserName newUserName = new UserName();
                    newUser.PrimaryEmail = Email.Text;
                    newUserName.GivenName = FirstName_txt.Text;
                    newUserName.FamilyName = LastName_txt.Text;
                    newUser.Name = newUserName;
                    newUser.Password = password;

                 //Adding User to OU:
                    newUser.OrgUnitPath = "/Employee";
                    User results = ser.Users.Insert(newUser).Execute();

                //Adding User to Group:
                   Member newMember = new Member();
                   newMember.Email = Email.Text;
                   newMember.Role = "MEMBER";
                   newMember.Kind = "admin#directory#member";
                   api.Members.Insert(newMember, "[email protected]").Execute();    

Любая идея, как вставить созданного пользователя в организационную единицу и группу с помощью API каталога?


person TechPro    schedule 02.09.2015    source источник


Ответы (1)


Чтобы вставить нового пользователя в организационную единицу, просто укажите путь к OU при создании пользователя.

    User newUser = new User();
    UserName newUserName = new UserName();
    newUser.PrimaryEmail = Email.Text;
    newUserName.GivenName = FirstName_txt.Text;
    newUserName.FamilyName = LastName_txt.Text;
    newUser.Name = newUserName;
    newUser.Password = password;
    **newUser.OrgUnitPath ="\My\Organization\Unit\path\";**
    User results = ser.Users.Insert(newUser).Execute();

Теперь ваш пользователь добавлен в путь OU.

Чтобы добавить участника в группу, см. следующий код.

    Member newMember = new Member();
    newMember.Email = userKey;//email of the user that you want to add
    newMember.Role = "MEMBER";
    newMember.Type = "USER";
    newMember.Kind = "admin#directory#member";

    ser.Members.Insert(newMember, "MyDestinationGroup@mydomain").Execute();

вот и все.
Примечание: вы должны проверить области для правильных разрешений.
Надеюсь, это поможет вам.

person Rodrigo_dev    schedule 02.09.2015
comment
Здравствуйте, Родриго. Как вы сказали, я сделал код для вставки пользователя в OU и группу. Вставка пользователя в OU работает, но при вставке пользователя в группу я получаю сообщение об ошибке: Неавторизованный клиент или область в запросе: Google.Apis.Auth.OAuth2.Responses.TokenResponseException: Ошибка: unauthorized_client, Описание: Неавторизованный клиент или область в запросе., Uri : я включаю следующие области: AdminDirectoryUser, AdminDirectoryOrgunit, AdminDirectoryGroup, AdminDirectoryGroupMember. Любая идея, что мне не хватает, какую-либо область или что-то, что можно проверить на стороне администратора Google? - person TechPro; 03.09.2015
comment
Он отлично работает только с этими областями (AdminDirectoryUser, AdminDirectoryGroup). Вы должны добавить их в свой код и также должны быть объявлены в администрировании клиентского доступа API. в консоли администратора домена перейдите в раздел безопасность/дополнительная конфигурация/управление API клиентского доступа. вы можете объявить там необходимые области. Для доступа необходимо иметь права администратора. - person Rodrigo_dev; 03.09.2015