private async Task ConfigureClaimsMapping(string spoId, NewGalleryAppDetails newGalleryAppDetails) { // Read and assign the claims mapping policy definition string policyDefinition = System.IO.File.ReadAllText(newGalleryAppDetails.ClaimsMappingPolicyPath); var claimsMappingPolicy = new ClaimsMappingPolicy { Definition = new List <string>() { policyDefinition }, DisplayName = "automated-mappings-policy" }; // Create and assign claims mapping policy await _galleryAppsRepository.ConfigureClaimsMappingPolicy(claimsMappingPolicy, spoId); }
/// <summary> /// Update the navigation property claimsMappingPolicies in policies /// <param name="body"></param> /// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param> /// </summary> public RequestInformation CreatePatchRequestInformation(ClaimsMappingPolicy body, Action <ClaimsMappingPolicyItemRequestBuilderPatchRequestConfiguration> requestConfiguration = default) { _ = body ?? throw new ArgumentNullException(nameof(body)); var requestInfo = new RequestInformation { HttpMethod = Method.PATCH, UrlTemplate = UrlTemplate, PathParameters = PathParameters, }; requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body); if (requestConfiguration != null) { var requestConfig = new ClaimsMappingPolicyItemRequestBuilderPatchRequestConfiguration(); requestConfiguration.Invoke(requestConfig); requestInfo.AddRequestOptions(requestConfig.Options); requestInfo.AddHeaders(requestConfig.Headers); } return(requestInfo); }
/// <summary> /// Create claims mapping policy and assign it to the service principal /// </summary> /// <param name="claimsMappingPolicy"></param> /// <param name="spoId"></param> /// <returns>Assigned claims mapping policy </returns> public async Task <ClaimsMappingPolicy> ConfigureClaimsMappingPolicy(ClaimsMappingPolicy claimsMappingPolicy, string spoId) { var result = await _graphClient.Policies.ClaimsMappingPolicies .Request() .AddAsync(claimsMappingPolicy); logger.Info("Claims mapping policy created. Name: " + result.DisplayName + " Id: " + result.Id); var assignedPolicy = new ClaimsMappingPolicy { Id = result.Id }; await _graphClient.ServicePrincipals[spoId].ClaimsMappingPolicies.References .Request() .AddAsync(assignedPolicy); logger.Info("Assigned claims mapping policy " + result.Id + "to servicePrincipal " + spoId); return(result); }