private static void KeystoneAssociateGroupWithProjectPermission(IamClient iamClient)
        {
            var keystoneGrantPermissionToGroupOnProjectRequest = new KeystoneAssociateGroupWithProjectPermissionRequest()
            {
                ProjectId = "",
                GroupId   = "",
                RoleId    = "",
            };

            try
            {
                var keystoneGrantPermissionToGroupOnProjectResponse =
                    iamClient.KeystoneAssociateGroupWithProjectPermission(keystoneGrantPermissionToGroupOnProjectRequest);
                Console.WriteLine(
                    JsonConvert.SerializeObject(keystoneGrantPermissionToGroupOnProjectResponse.HttpStatusCode));
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
        private static void KeystoneListProjectPermissionsForGroup(IamClient iamClient)
        {
            var keystoneListProjectPermissionsForGroupRequest = new KeystoneListProjectPermissionsForGroupRequest()
            {
                ProjectId = "",
                GroupId   = ""
            };

            try
            {
                var keystoneListProjectPermissionsForGroupResponse =
                    iamClient.KeystoneListProjectPermissionsForGroup(keystoneListProjectPermissionsForGroupRequest);
                foreach (var role in keystoneListProjectPermissionsForGroupResponse.Roles)
                {
                    Console.WriteLine(JsonConvert.SerializeObject(role));
                }
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #3
0
        static void Main1(string[] args)
        {
            // 华为云
            const string ak       = "{your ak string}";
            const string sk       = "{your sk string}";
            const string endpoint = "{your endpoint string}";
            const string domainId = "{your domainID string}";

            var config = HttpConfig.GetDefaultConfig();

            config.IgnoreSslVerification = true;
            var auth            = new BasicCredentials(ak, sk, null, domainId);
            var iamDomainClient = IamClient.NewBuilder()
                                  .WithCredential(auth)
                                  .WithEndPoint(endpoint)
                                  .WithHttpConfig(config).Build();

            // Credential管理

            // 通过委托获取临时访问秘钥和securitytoken POST /v3.0/OS-CREDENTIAL/securitytokens
            CreateTemporaryAccessKeyByAgency(iamDomainClient);

            // 通过token来获取临时AK/SK和securitytoken POST /v3.0/OS-CREDENTIAL/securitytokens
            CreateTemporaryAccessKeyByToken(iamDomainClient);
        }
Пример #4
0
        private static void KeystoneShowGroup(IamClient iamClient)
        {
            var keystoneShowGroupRequest = new KeystoneShowGroupRequest()
            {
                GroupId = ""
            };

            try
            {
                var keystoneShowGroupResponse =
                    iamClient.KeystoneShowGroup(keystoneShowGroupRequest);
                Console.WriteLine(JsonConvert.SerializeObject(keystoneShowGroupResponse.Group));
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #5
0
        private static void KeystoneListUsers(IamClient iamClient)
        {
            var keystoneListUsersRequest = new KeystoneListUsersRequest()
            {
                Enabled           = true,
                Name              = "",
                PasswordExpiresAt = ""
            };

            try
            {
                var keystoneListUsersResponse = iamClient.KeystoneListUsers(keystoneListUsersRequest);
                foreach (var user in keystoneListUsersResponse.Users)
                {
                    Console.WriteLine(JsonConvert.SerializeObject(user));
                }
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #6
0
        private static void KeystoneRemoveUserFromGroup(IamClient iamClient)
        {
            var keystoneRemoveUserFromGroupRequest = new KeystoneRemoveUserFromGroupRequest()
            {
                UserId  = "",
                GroupId = ""
            };

            try
            {
                var keystoneRemoveUserFromGroupResponse =
                    iamClient.KeystoneRemoveUserFromGroup(keystoneRemoveUserFromGroupRequest);
                Console.WriteLine(keystoneRemoveUserFromGroupResponse.HttpStatusCode);
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #7
0
        private static void KeystoneCreateGroup(IamClient iamClient)
        {
            var keystoneCreateGroupRequest = new KeystoneCreateGroupRequest()
            {
                Body = new KeystoneCreateGroupRequestBody()
                {
                    Group = new KeystoneCreateGroupOption()
                    {
                        Description = "",
                        DomainId    = "",
                        Name        = ""
                    }
                }
            };

            try
            {
                var keystoneCreateGroupResponse = iamClient.KeystoneCreateGroup(keystoneCreateGroupRequest);
                Console.WriteLine(JsonConvert.SerializeObject(keystoneCreateGroupResponse.Group));
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
        private static void ListAgencies(IamClient iamClient)
        {
            var listAgenciesRequest = new ListAgenciesRequest()
            {
                DomainId      = "",
                TrustDomainId = "",
                Name          = ""
            };

            try
            {
                var listAgenciesResponse = iamClient.ListAgencies(listAgenciesRequest);
                foreach (var agency in listAgenciesResponse.Agencies)
                {
                    Console.WriteLine(JsonConvert.SerializeObject(agency));
                }
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #9
0
        private static void KeystoneListGroups(IamClient iamClient)
        {
            var keystoneListGroupsRequest = new KeystoneListGroupsRequest()
            {
                DomainId = "",
                Name     = ""
            };

            try
            {
                var keystoneListGroupsResponse = iamClient.KeystoneListGroups(keystoneListGroupsRequest);
                foreach (var group in keystoneListGroupsResponse.Groups)
                {
                    Console.WriteLine(JsonConvert.SerializeObject(group));
                }
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #10
0
        private static void CheckDomainPermissionForAgency(IamClient iamV3Client)
        {
            var checkPermissionForAgencyOnDomainRequest = new CheckDomainPermissionForAgencyRequest()
            {
                DomainId = "",
                AgencyId = "",
                RoleId   = ""
            };

            try
            {
                var checkPermissionForAgencyOnDomainResponse =
                    iamV3Client.CheckDomainPermissionForAgency(checkPermissionForAgencyOnDomainRequest);
                Console.WriteLine(JsonConvert.SerializeObject(checkPermissionForAgencyOnDomainResponse.HttpStatusCode));
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #11
0
        private static void RemoveProjectPermissionFromAgency(IamClient iamClient)
        {
            var removePermissionFromAgencyOnProjectRequest = new RemoveProjectPermissionFromAgencyRequest()
            {
                ProjectId = "",
                AgencyId  = "",
                RoleId    = ""
            };

            try
            {
                var removePermissionFromAgencyOnProjectResponse =
                    iamClient.RemoveProjectPermissionFromAgency(removePermissionFromAgencyOnProjectRequest);
                Console.WriteLine(JsonConvert.SerializeObject(removePermissionFromAgencyOnProjectResponse.HttpStatusCode));
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #12
0
        private static void AssociateAgencyWithProjectPermission(IamClient iamClient)
        {
            var grantPermissionToAgencyOnProjectRequest = new AssociateAgencyWithProjectPermissionRequest()
            {
                ProjectId = "",
                AgencyId  = "",
                RoleId    = ""
            };

            try
            {
                var grantPermissionToAgencyOnProjectResponse =
                    iamClient.AssociateAgencyWithProjectPermission(grantPermissionToAgencyOnProjectRequest);
                Console.WriteLine(JsonConvert.SerializeObject(grantPermissionToAgencyOnProjectResponse.HttpStatusCode));
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #13
0
        private static void ListProjectPermissionsForAgency(IamClient iamClient)
        {
            var listPermissionsForAgencyOnProjectRequest = new ListProjectPermissionsForAgencyRequest()
            {
                ProjectId = "",
                AgencyId  = ""
            };

            try
            {
                var listPermissionsForAgencyOnProjectResponse =
                    iamClient.ListProjectPermissionsForAgency(listPermissionsForAgencyOnProjectRequest);
                foreach (var role in listPermissionsForAgencyOnProjectResponse.Roles)
                {
                    Console.WriteLine(JsonConvert.SerializeObject(role));
                }
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #14
0
        private static void DeleteAgency(IamClient iamV3Client)
        {
            var deleteAgencyRequest = new DeleteAgencyRequest()
            {
                AgencyId = ""
            };

            try
            {
                var deleteAgencyResponse = iamV3Client.DeleteAgency(deleteAgencyRequest);
                Console.WriteLine(JsonConvert.SerializeObject(deleteAgencyResponse.HttpStatusCode));
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #15
0
        private static void KeystoneListUsersForGroupByAdmin(IamClient iamClient)
        {
            var keystoneListUsersForGroupByAdminRequest = new KeystoneListUsersForGroupByAdminRequest()
            {
                GroupId = ""
            };

            try
            {
                var keystoneListUsersForGroupByAdminResponse =
                    iamClient.KeystoneListUsersForGroupByAdmin(keystoneListUsersForGroupByAdminRequest);
                foreach (var user in keystoneListUsersForGroupByAdminResponse.Users)
                {
                    Console.WriteLine(JsonConvert.SerializeObject(user));
                }
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #16
0
        private static void KeystoneRemoveDomainPermissionFromGroup(IamClient iamClient)
        {
            var keystoneRemovePermissionFromGroupOnDomainRequest =
                new KeystoneRemoveDomainPermissionFromGroupRequest()
            {
                DomainId = "",
                GroupId  = "",
                RoleId   = ""
            };

            try
            {
                var keystoneRemovePermissionFromGroupOnDomainResponse =
                    iamClient.KeystoneRemoveDomainPermissionFromGroup(
                        keystoneRemovePermissionFromGroupOnDomainRequest);
                Console.WriteLine(
                    JsonConvert.SerializeObject(keystoneRemovePermissionFromGroupOnDomainResponse.HttpStatusCode));
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #17
0
        static void Main1(string[] args)
        {
            // 华为云
            const string ak       = "{your ak string}";
            const string sk       = "{your sk string}";
            const string endpoint = "{your endpoint string}";
            const string domainId = "{your domainID string}";

            var config = HttpConfig.GetDefaultConfig();

            config.IgnoreSslVerification = true;
            var auth            = new BasicCredentials(ak, sk, null, domainId);
            var iamDomainClient = IamClient.NewBuilder()
                                  .WithCredential(auth)
                                  .WithEndPoint(endpoint)
                                  .WithHttpConfig(config).Build();

            // 委托管理

            // 查询指定条件下的委托列表 GET /v3.0/OS-AGENCY/agencies
            ListAgencies(iamDomainClient);

            // 查询委托详情 GET /v3.0/OS-AGENCY/agencies/{agency_id}
            ShowAgency(iamDomainClient);

            // 创建委托 POST /v3.0/OS-AGENCY/agencies
            CreateAgency(iamDomainClient);

            // 修改委托 PUT /v3.0/OS-AGENCY/agencies/{agency_id}
            UpdateAgency(iamDomainClient);

            // 删除委托 DELETE /v3.0/OS-AGENCY/agencies/{agency_id}
            DeleteAgency(iamDomainClient);

            // 查询全局服务中的委托权限 GET /v3.0/OS-AGENCY/domains/{domain_id}/agencies/{agency_id}/roles
            ListDomainPermissionsForAgency(iamDomainClient);

            // 查询项目服务中的委托权限 GET /v3.0/OS-AGENCY/projects/{project_id}/agencies/{agency_id}/roles
            ListProjectPermissionsForAgency(iamDomainClient);

            // 为委托授予全局服务权限 PUT /v3.0/OS-AGENCY/domains/{domain_id}/agencies/{agency_id}/roles/{role_id}
            AssociateAgencyWithDomainPermission(iamDomainClient);

            // 为委托授予项目服务权限 PUT /v3.0/OS-AGENCY/projects/{project_id}/agencies/{agency_id}/roles/{role_id}
            AssociateAgencyWithProjectPermission(iamDomainClient);

            // 查询委托是否拥有全局服务权限 HEAD /v3.0/OS-AGENCY/domains/{domain_id}/agencies/{agency_id}/roles/{role_id}
            CheckDomainPermissionForAgency(iamDomainClient);

            // 查询委托是否拥有项目服务权限 HEAD /v3.0/OS-AGENCY/projects/{project_id}/agencies/{agency_id}/roles/{role_id}
            CheckProjectPermissionForAgency(iamDomainClient);

            // 移除委托的全局服务权限  DELETE /v3.0/OS-AGENCY/domains/{domain_id}/agencies/{agency_id}/roles/{role_id}
            RemoveDomainPermissionFromAgency(iamDomainClient);

            // 移除委托的项目服务权限 DELETE /v3.0/OS-AGENCY/projects/{project_id}/agencies/{agency_id}/roles/{role_id}
            RemoveProjectPermissionFromAgency(iamDomainClient);
        }
Пример #18
0
        // Credential管理

        private static void CreateTemporaryAccessKeyByAgency(IamClient iamClient)
        {
            var createTemporaryAccessKeyByAgencyRequest = new CreateTemporaryAccessKeyByAgencyRequest()
            {
                Body = new CreateTemporaryAccessKeyByAgencyRequestBody()
                {
                    Auth = new AgencyAuth()
                    {
                        Identity = new AgencyAuthIdentity()
                        {
                            Methods = new List <AgencyAuthIdentity.MethodsEnum>()
                            {
                                AgencyAuthIdentity.MethodsEnum.ASSUME_ROLE
                            },
                            AssumeRole = new IdentityAssumerole()
                            {
                                DomainName      = "",
                                AgencyName      = "",
                                DomainId        = "",
                                DurationSeconds = 900,
                                SessionUser     = new AssumeroleSessionuser()
                                {
                                    Name = ""
                                }
                            }
                        }
                    }
                }
            };

            try
            {
                var createTemporaryAccessKeyByAgencyResponse =
                    iamClient.CreateTemporaryAccessKeyByAgency(createTemporaryAccessKeyByAgencyRequest);
                Console.WriteLine(JsonConvert.SerializeObject(createTemporaryAccessKeyByAgencyResponse.Credential));
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
        static void Main1(string[] args)
        {
            // 华为云
            const string ak       = "{your ak string}";
            const string sk       = "{your sk string}";
            const string endpoint = "{your endpoint string}";
            const string domainId = "{your domainID string}";

            var config = HttpConfig.GetDefaultConfig();

            config.IgnoreSslVerification = true;
            var auth            = new GlobalCredentials(ak, sk, domainId);
            var iamDomainClient = IamClient.NewBuilder()
                                  .WithCredential(auth)
                                  .WithEndPoint(endpoint)
                                  .WithHttpConfig(config).Build();

            // 权限管理

            // 查询权限列表 GET /v3/roles
            KeystoneListPermissions(iamDomainClient);

            // 查询权限详情 GET /v3/roles/{role_id}
            KeystoneShowPermission(iamDomainClient);

            // 查询全局服务中的用户组权限 GET /v3/domains/{domain_id}/groups/{group_id}/roles
            KeystoneListDomainPermissionsForGroup(iamDomainClient);

            // 查询项目服务中的用户组权限 GET /v3/projects/{project_id}/groups/{group_id}/roles
            KeystoneListProjectPermissionsForGroup(iamDomainClient);

            // 为用户组授予全局服务权限 PUT /v3/domains/{domain_id}/groups/{group_id}/roles/{role_id}
            KeystoneAssociateGroupWithDomainPermission(iamDomainClient);

            // 为用户组授予项目服务权限 PUT /v3/projects/{project_id}/groups/{group_id}/roles/{role_id}
            KeystoneAssociateGroupWithProjectPermission(iamDomainClient);

            // 查询用户组是否拥有全局服务权限 HEAD /v3/domains/{domain_id}/groups/{group_id}/roles/{role_id}
            KeystoneCheckDomainPermissionForGroup(iamDomainClient);

            // 查询用户组是否拥有项目服务权限 HEAD /v3/projects/{project_id}/groups/{group_id}/roles/{role_id}
            KeystoneCheckProjectPermissionForGroup(iamDomainClient);

            // 移除用户组的全局服务权限  DELETE /v3/domains/{domain_id}/groups/{group_id}/roles/{role_id}
            KeystoneRemoveDomainPermissionFromGroup(iamDomainClient);

            // 移除用户组的项目服务权限  DELETE /v3/projects/{project_id}/groups/{group_id}/roles/{role_id}
            KeystoneRemoveProjectPermissionFromGroup(iamDomainClient);
        }
Пример #20
0
        private static void CreateTemporaryAccessKeyByToken(IamClient iamClient)
        {
            var createTemporaryAccessKeyByTokenRequest = new CreateTemporaryAccessKeyByTokenRequest()
            {
                Body = new CreateTemporaryAccessKeyByTokenRequestBody()
                {
                    Auth = new TokenAuth()
                    {
                        Identity = new TokenAuthIdentity()
                        {
                            Methods = new List <TokenAuthIdentity.MethodsEnum>()
                            {
                                TokenAuthIdentity.MethodsEnum.TOKEN
                            },
                            Token = new IdentityToken()
                            {
                                Id = "",
                                DurationSeconds = 900
                            }
                        }
                    }
                }
            };

            try
            {
                var createTemporaryAccessKeyByTokenResponse =
                    iamClient.CreateTemporaryAccessKeyByToken(createTemporaryAccessKeyByTokenRequest);
                Console.WriteLine(JsonConvert.SerializeObject(createTemporaryAccessKeyByTokenResponse.Credential));
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #21
0
        static void Main1(string[] args)
        {
            // 华为云
            const string ak       = "{your ak string}";
            const string sk       = "{your sk string}";
            const string endpoint = "{your endpoint string}";
            const string domainId = "{your domainID string}";

            var config = HttpConfig.GetDefaultConfig();

            config.IgnoreSslVerification = true;
            var auth            = new BasicCredentials(ak, sk, null, domainId);
            var iamDomainClient = IamClient.NewBuilder()
                                  .WithCredential(auth)
                                  .WithEndPoint(endpoint)
                                  .WithHttpConfig(config).Build();

            // 用户组管理

            // 查询用户组列表 GET /v3/groups
            KeystoneListGroups(iamDomainClient);

            // 查询用户组详情 GET /v3/groups/{group_id}
            KeystoneShowGroup(iamDomainClient);

            // 创建用户组 POST /v3/groups
            KeystoneCreateGroup(iamDomainClient);

            // 更新用户组 PATCH /v3/groups/{group_id}
            KeystoneUpdateGroup(iamDomainClient);

            // 删除用户组 DELETE /v3/groups/{group_id}
            KeystoneDeleteGroup(iamDomainClient);

            // 查询IAM用户是否在用户组中 HEAD /v3/groups/{group_id}/users/{user_id}
            KeystoneCheckUserInGroup(iamDomainClient);

            // 添加IAM用户到用户组 PUT /v3/groups/{group_id}/users/{user_id}
            KeystoneAddUserToGroup(iamDomainClient);

            // 移除用户组中的IAM用户 DELETE /v3/groups/{group_id}/users/{user_id}
            KeystoneRemoveUserFromGroup(iamDomainClient);
        }
Пример #22
0
        static void Main1(string[] args)
        {
            // 华为云
            const string ak       = "{your ak string}";
            const string sk       = "{your sk string}";
            const string endpoint = "{your endpoint string}";
            const string domainId = "{your domainID string}";

            var config = HttpConfig.GetDefaultConfig();

            config.IgnoreSslVerification = true;
            var auth            = new GlobalCredentials(ak, sk, domainId);
            var iamDomainClient = IamClient.NewBuilder()
                                  .WithCredential(auth)
                                  .WithEndPoint(endpoint)
                                  .WithHttpConfig(config).Build();

            // 用户管理

            // 管理员查询IAM用户列表  GET /v3/users
            KeystoneListUsers(iamDomainClient);

            // 查询IAM用户详情  GET /v3/users/{user_id}
            KeystoneShowUser(iamDomainClient);

            // 查询IAM用户所属用户组  GET /v3/users/{user_id}/groups
            KeystoneListGroupsForUser(iamDomainClient);

            // 管理员查询用户组所包含的IAM用户 GET /v3/groups/{group_id}/users
            KeystoneListUsersForGroupByAdmin(iamDomainClient);

            // 管理员创建IAM用户  POST /v3/users
            KeystoneCreateUser(iamDomainClient);

            // 修改IAM用户密码  POST /v3/users/{user_id}/password
            KeystoneUpdateUserPassword(iamDomainClient);

            // 管理员修改IAM用户信息  PATCH /v3/users/{user_id}
            KeystoneUpdateUserByAdmin(iamDomainClient);

            // 管理员删除IAM用户  DELETE /v3/users/{user_id}
            KeystoneDeleteUser(iamDomainClient);
        }
Пример #23
0
        private static void KeystoneUpdateUserByAdmin(IamClient iamClient)
        {
            var keystoneUpdateUserInformationByAdminRequest = new KeystoneUpdateUserByAdminRequest()
            {
                UserId = "",
                Body   = new KeystoneUpdateUserByAdminRequestBody()
                {
                    User = new KeystoneUpdateUserOption()
                    {
                        Name        = "",
                        DomainId    = "",
                        Enabled     = true,
                        Password    = "",
                        Description = "",
                        PwdStatus   = false
                    }
                }
            };

            try
            {
                var keystoneUpdateUserInformationByAdminResponse =
                    iamClient.KeystoneUpdateUserByAdmin(keystoneUpdateUserInformationByAdminRequest);
                Console.WriteLine(JsonConvert.SerializeObject(keystoneUpdateUserInformationByAdminResponse.User));
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #24
0
        private static void CreateAgency(IamClient iamClient)
        {
            var createAgencyRequest = new CreateAgencyRequest()
            {
                Body = new CreateAgencyRequestBody()
                {
                    Agency = new CreateAgencyOption()
                    {
                        Name            = "",
                        Description     = "",
                        TrustDomainId   = "",
                        TrustDomainName = "",
                        Duration        = CreateAgencyOption.DurationEnum.ONEDAY,
                        DomainId        = ""
                    }
                }
            };

            try
            {
                var createAgencyResponse = iamClient.CreateAgency(createAgencyRequest);
                Console.WriteLine(JsonConvert.SerializeObject(createAgencyResponse.Agency));
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }
Пример #25
0
        private static void KeystoneUpdateUserPassword(IamClient iamClient)
        {
            var keystoneUpdateUserPasswordRequest = new KeystoneUpdateUserPasswordRequest()
            {
                UserId = "",
                Body   = new KeystoneUpdateUserPasswordRequestBody()
                {
                    User = new KeystoneUpdatePasswordOption()
                    {
                        OriginalPassword = "",
                        Password         = ""
                    }
                }
            };

            try
            {
                var keystoneUpdateUserPasswordResponse =
                    iamClient.KeystoneUpdateUserPassword(keystoneUpdateUserPasswordRequest);
                Console.WriteLine(keystoneUpdateUserPasswordResponse.HttpStatusCode);
            }
            catch (RequestTimeoutException requestTimeoutException)
            {
                Console.WriteLine(requestTimeoutException.ErrorMessage);
            }
            catch (ServiceResponseException clientRequestException)
            {
                Console.WriteLine(clientRequestException.HttpStatusCode);
                Console.WriteLine(clientRequestException.ErrorCode);
                Console.WriteLine(clientRequestException.ErrorMsg);
            }
            catch (ConnectionException connectionException)
            {
                Console.WriteLine(connectionException.ErrorMessage);
            }
        }