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);
        }
Ejemplo n.º 2
0
        /// <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);
        }