/// <summary> /// Updates information about a user in Azure Active Directory. /// </summary> public async Task <IHttpActionResult> Post(IdentityUpdate identity) { if (StsConfiguration.StsType != StsType.AzureActiveDirectory) { return(this.BadRequest("Updating user information is only supported when using Azure Active Directory.")); } if (identity != null && !string.IsNullOrWhiteSpace(identity.DisplayName)) { var userId = this.User.GetUniqueIdentifier(); var graphClient = new AadGraphClient(StsConfiguration.Authority, StsConfiguration.AadTenant, SiteConfiguration.TodoListWebApiClientId, SiteConfiguration.TodoListWebApiClientSecret); await graphClient.UpdateUserAsync(userId, identity.DisplayName); } return(Ok()); }
public async Task <IActionResult> Index(IdentityUpdate model) { if (model != null && !string.IsNullOrWhiteSpace(model.DisplayName)) { // Update identity information through the Todo List Web API. var todoListWebApiClient = await TodoListController.GetTodoListClient(this.siteConfiguration, this.User); var identityUpdateRequest = new HttpRequestMessage(HttpMethod.Post, this.siteConfiguration.TodoListWebApiRootUrl + "api/identity"); identityUpdateRequest.Content = new JsonContent(model); var todoListWebApiIdentityInfoResponse = await todoListWebApiClient.SendAsync(identityUpdateRequest); todoListWebApiIdentityInfoResponse.EnsureSuccessStatusCode(); } return(RedirectToAction("Index")); }
/// <summary> /// Update an identity in the specified subscription and resource group. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the Resource Group to which the identity belongs. /// </param> /// <param name='resourceName'> /// The name of the identity resource. /// </param> /// <param name='parameters'> /// Parameters to update the identity /// </param> public static Identity Update(this IUserAssignedIdentitiesOperations operations, string resourceGroupName, string resourceName, IdentityUpdate parameters) { return(operations.UpdateAsync(resourceGroupName, resourceName, parameters).GetAwaiter().GetResult()); }
/// <summary> /// Update an identity in the specified subscription and resource group. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the Resource Group to which the identity belongs. /// </param> /// <param name='resourceName'> /// The name of the identity resource. /// </param> /// <param name='parameters'> /// Parameters to update the identity /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <Identity> UpdateAsync(this IUserAssignedIdentitiesOperations operations, string resourceGroupName, string resourceName, IdentityUpdate parameters, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.UpdateWithHttpMessagesAsync(resourceGroupName, resourceName, parameters, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
public async Task TestIdentityCRUD() { Identity i = new Identity(); var handler = new RecordedDelegatingHandler { IsPassThrough = true }; using (MockContext context = MockContext.Start(this.GetType())) { var msiMgmtClient = context.GetServiceClient <ManagedServiceIdentityClient>(handlers: handler); string firstTagValue = "first tag value"; string secondTagValue = "second tag value"; string updatedFirstTagValue = "updated first tag value"; string updatedSecondTagValue = "updated second tag value"; /*-------------PUT-------------*/ // Create new identities var identityParameters = new Identity(location: CanaryCentralRegion, tags: new Dictionary <string, string>() { { FirstTagKey, firstTagValue }, { SecondTagKey, secondTagValue } }); var createResponse1 = await msiMgmtClient.UserAssignedIdentities.CreateOrUpdateWithHttpMessagesAsync(ResourceGroupName, firstIdentityName, identityParameters); Assert.Equal(HttpStatusCode.Created, createResponse1.Response.StatusCode); VerifyIdentity(createResponse1.Body, msiMgmtClient.SubscriptionId, firstIdentityName, CanaryCentralRegion, firstTagValue, secondTagValue); AzureOperationResponse <Identity> createResponse2 = await msiMgmtClient.UserAssignedIdentities.CreateOrUpdateWithHttpMessagesAsync(ResourceGroupName, secondIdentityName, identityParameters); Assert.Equal(HttpStatusCode.Created, createResponse2.Response.StatusCode); VerifyIdentity(createResponse2.Body, msiMgmtClient.SubscriptionId, secondIdentityName, CanaryCentralRegion, firstTagValue, secondTagValue); // Put on existing identity var createResponse3 = await msiMgmtClient.UserAssignedIdentities.CreateOrUpdateWithHttpMessagesAsync(ResourceGroupName, firstIdentityName, identityParameters); Assert.Equal(HttpStatusCode.OK, createResponse3.Response.StatusCode); VerifyIdentity(createResponse3.Body, msiMgmtClient.SubscriptionId, firstIdentityName, CanaryCentralRegion, firstTagValue, secondTagValue); /*-------------GET-------------*/ // Get the created identities var getResponse1 = await msiMgmtClient.UserAssignedIdentities.GetWithHttpMessagesAsync(ResourceGroupName, firstIdentityName); Assert.Equal(HttpStatusCode.OK, getResponse1.Response.StatusCode); VerifyIdentity(getResponse1.Body, msiMgmtClient.SubscriptionId, firstIdentityName, CanaryCentralRegion, firstTagValue, secondTagValue); var getResponse2 = await msiMgmtClient.UserAssignedIdentities.GetWithHttpMessagesAsync(ResourceGroupName, secondIdentityName); Assert.Equal(HttpStatusCode.OK, getResponse2.Response.StatusCode); VerifyIdentity(getResponse2.Body, msiMgmtClient.SubscriptionId, secondIdentityName, CanaryCentralRegion, firstTagValue, secondTagValue); /*-------------PATCH-------------*/ var updateParameters = new IdentityUpdate(location: CanaryCentralRegion, tags: new Dictionary <string, string>() { { FirstTagKey, updatedFirstTagValue }, { SecondTagKey, updatedSecondTagValue } }); var updateResponse = await msiMgmtClient.UserAssignedIdentities.UpdateWithHttpMessagesAsync(ResourceGroupName, firstIdentityName, updateParameters); Assert.Equal(HttpStatusCode.OK, updateResponse.Response.StatusCode); VerifyIdentity(updateResponse.Body, msiMgmtClient.SubscriptionId, firstIdentityName, CanaryCentralRegion, updatedFirstTagValue, updatedSecondTagValue); /*-------------List by ResourceGroup-------------*/ var listResourceGroupResponse = await msiMgmtClient.UserAssignedIdentities.ListByResourceGroupWithHttpMessagesAsync(ResourceGroupName); Assert.Equal(HttpStatusCode.OK, listResourceGroupResponse.Response.StatusCode); string[] identityNames = new string[] { firstIdentityName, secondIdentityName }; VerifyIdentityCollection(listResourceGroupResponse.Body, identityNames); /*-------------DELETE-------------*/ var deleteResponse1 = await msiMgmtClient.UserAssignedIdentities.DeleteWithHttpMessagesAsync(ResourceGroupName, firstIdentityName); Assert.Equal(HttpStatusCode.OK, deleteResponse1.Response.StatusCode); // Delete identity that does not exist var deleteResponse2 = await msiMgmtClient.UserAssignedIdentities.DeleteWithHttpMessagesAsync(ResourceGroupName, firstIdentityName); Assert.Equal(HttpStatusCode.NoContent, deleteResponse2.Response.StatusCode); var deleteResponse3 = await msiMgmtClient.UserAssignedIdentities.DeleteWithHttpMessagesAsync(ResourceGroupName, secondIdentityName); Assert.Equal(HttpStatusCode.OK, deleteResponse3.Response.StatusCode); // Delete identity that does not exist var deleteResponse4 = await msiMgmtClient.UserAssignedIdentities.DeleteWithHttpMessagesAsync(ResourceGroupName, secondIdentityName); Assert.Equal(HttpStatusCode.NoContent, deleteResponse4.Response.StatusCode); } }