如何用C#(.NET/.NET Core)在Google Active Directory指定OU创建新用户
使用C#控制台应用在Google Workspace目录中创建用户
前置准备
- 在Google Cloud控制台启用Admin SDK Directory API
- 创建服务账号并下载JSON格式的密钥文件
- 登录Google Workspace管理员后台,给该服务账号授予域范围授权,并添加权限
https://www.googleapis.com/auth/admin.directory.user(用于创建、修改用户) - 记录下你的Workspace域名(如yourdomain.com)和授权的管理员邮箱(如admin@yourdomain.com)
安装依赖包
在控制台项目中执行以下命令安装所需NuGet包:
dotnet add package Google.Apis.Admin.Directory.directory_v1 dotnet add package Google.Apis.Auth.OAuth2 dotnet add package Google.Apis.Core
完整代码示例
using Google.Apis.Admin.Directory.directory_v1; using Google.Apis.Admin.Directory.directory_v1.Data; using Google.Apis.Auth.OAuth2; using Google.Apis.Services; using System; using System.IO; namespace GoogleAdUserCreator { class Program { static void Main(string[] args) { // 替换为你的密钥文件路径 string keyFilePath = @"C:\path\to\your-service-account-key.json"; // 替换为你的Workspace管理员邮箱 string adminEmail = "admin@yourdomain.com"; // 替换为你的Workspace域名 string domain = "yourdomain.com"; // 加载服务账号凭据 var credential = GoogleCredential.FromFile(keyFilePath) .CreateScoped(DirectoryService.Scope.AdminDirectoryUser) .CreateWithUser(adminEmail); // 初始化Directory服务 var service = new DirectoryService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "Google AD User Creator Console App" }); // 创建新用户对象 var newUser = new User { PrimaryEmail = "newuser@" + domain, Name = new UserName { GivenName = "John", FamilyName = "Doe" }, Password = "TempPass123!", // 建议使用强随机密码,后续强制用户修改 ChangePasswordAtNextLogin = true }; try { // 调用API创建用户 var request = service.Users.Insert(newUser); User createdUser = request.Execute(); Console.WriteLine($"用户创建成功!邮箱:{createdUser.PrimaryEmail},用户ID:{createdUser.Id}"); } catch (Exception ex) { Console.WriteLine($"创建用户失败:{ex.Message}"); } } } }
注意事项
- 确保服务账号已获得正确的域范围授权,否则会抛出权限不足的错误
- 密码必须符合Google Workspace的密码策略要求
- 生产环境中不要硬编码密钥文件路径、管理员邮箱等敏感信息,建议使用环境变量或配置文件管理
- 可以扩展代码添加更多用户属性,比如部门、电话等,参考User类的其他属性
内容的提问来源于stack exchange,提问作者Alex Hurtado Campuzano
相关产品推荐
相关产品推荐

