【问题标题】:Adding User to Organization Unit and Group using Google Directory API使用 Google Directory API 将用户添加到组织单位和组
【发布时间】:2015-11-28 12:01:06
【问题描述】:

我成功地在 .Net 平台中使用 Google Directory API 创建了新用户帐户,但现在我需要将该创建的用户添加到组织单位和组。我在此链接中看到了将用户添加到组织单位的 API 详细信息,但任何显示插入组织单位的示例都将不胜感激。

更新了工作代码:以下是使用 Directory API 创建新用户帐户的代码:

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

                }.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, "Employee@example.com").Execute();    

知道如何使用 Directory API 在组织单位和组中插入创建的用户吗?

【问题讨论】:

    标签: c# asp.net google-admin-sdk google-directory-api


    【解决方案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();
    

    就是这样。
    注意:您必须查看范围以获得正确的权限。
    希望对您有所帮助。

    【讨论】:

    • 您好 Rodrigo,正如您所说,我编写了代码以在 OU 和 Group 中插入用户。在 OU 中插入用户正在工作,但在组中插入用户时出现错误:“请求中的未经授权的客户端或范围”:Google.Apis.Auth.OAuth2.Responses.TokenResponseException:错误:“unauthorized_client”,描述:“未经授权的客户端或范围in request.", Uri:"" 我包括以下范围:AdminDirectoryUser、AdminDirectoryOrgunit、AdminDirectoryGroup、AdminDirectoryGroupMember。知道我缺少什么、任何范围或任何要在 Google 管理员方面检查的内容吗?
    • 它只适用于这些范围(AdminDirectoryUser、AdminDirectoryGroup)。您必须将它们添加到您的代码中,并且也必须在 API 客户端访问管理中声明。在您的域管理控制台上,转到安全/高级配置/管理客户端访问 API。您可以在那里声明所需的范围。必须具有管理员权限才能访问。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    相关资源
    最近更新 更多