public async Task <AuthorizationResponse> ExecuteAsync(PostAuthorization request, string url, string token)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            if (string.IsNullOrWhiteSpace(url))
            {
                throw new ArgumentNullException(nameof(url));
            }

            if (string.IsNullOrWhiteSpace(token))
            {
                throw new ArgumentNullException(nameof(token));
            }

            var httpClient = _httpClientFactory.GetHttpClient();
            var serializedPostAuthorization = JsonConvert.SerializeObject(request);
            var body        = new StringContent(serializedPostAuthorization, Encoding.UTF8, "application/json");
            var httpRequest = new HttpRequestMessage
            {
                Method     = HttpMethod.Post,
                Content    = body,
                RequestUri = new Uri(url)
            };

            httpRequest.Headers.Add("Authorization", "Bearer " + token);
            var result = await httpClient.SendAsync(httpRequest).ConfigureAwait(false);

            result.EnsureSuccessStatusCode();
            var content = await result.Content.ReadAsStringAsync().ConfigureAwait(false);

            return(JsonConvert.DeserializeObject <AuthorizationResponse>(content));
        }
Ejemplo n.º 2
0
        private async Task <AuthorizationResponse> GetAuthorization(string ticketId, string accessToken)
        {
            var postAuthorization = new PostAuthorization
            {
                TicketId = ticketId
            };

            return(await _identityServerUmaClientFactory.GetAuthorizationClient()
                   .GetByResolution(postAuthorization, _securityOptions.UmaConfigurationUrl, accessToken));
        }
Ejemplo n.º 3
0
        public static GetAuthorizationActionParameter ToParameter(this PostAuthorization postAuthorization)
        {
            var tokens = new List <ClaimTokenParameter>();

            if (postAuthorization.ClaimTokens != null &&
                postAuthorization.ClaimTokens.Any())
            {
                tokens = postAuthorization.ClaimTokens.Select(ct => ct.ToParameter()).ToList();
            }

            return(new GetAuthorizationActionParameter
            {
                Rpt = postAuthorization.Rpt,
                TicketId = postAuthorization.TicketId,
                ClaimTokenParameters = tokens
            });
        }
Ejemplo n.º 4
0
        private async Task <AuthorizationResponse> GetAuthorization(string ticketId, string accessToken, string identityToken)
        {
            var postAuthorization = new PostAuthorization
            {
                TicketId    = ticketId,
                ClaimTokens = new List <PostClaimToken>
                {
                    new PostClaimToken
                    {
                        Format = "http://openid.net/specs/openid-connect-core-1_0.html#HybridIDToken",
                        Token  = identityToken
                    }
                }
            };

            return(await _identityServerUmaClientFactory.GetAuthorizationClient()
                   .GetByResolution(postAuthorization, _securityOptions.UmaConfigurationUrl, accessToken));
        }
        public async Task <ActionResult> GetAuthorization([FromBody] PostAuthorization postAuthorization)
        {
            if (postAuthorization == null)
            {
                throw new ArgumentNullException(nameof(postAuthorization));
            }

            var parameter = postAuthorization.ToParameter();
            var clientId  = this.GetClientId();
            var result    = await _authorizationActions.GetAuthorization(parameter, clientId);

            if (result.AuthorizationPolicyResult != AuthorizationPolicyResultEnum.Authorized)
            {
                return(GetErrorResponse(result.AuthorizationPolicyResult));
            }

            var content = new AuthorizationResponse
            {
                Rpt = result.Rpt
            };

            return(new OkObjectResult(content));
        }
        public async Task <AuthorizationResponse> GetByResolution(PostAuthorization request, string url, string token)
        {
            var configuration = await _getConfigurationOperation.ExecuteAsync(UriHelpers.GetUri(url));

            return(await Get(request, configuration.RptEndPoint, token));
        }
 public Task <AuthorizationResponse> Get(PostAuthorization request, string url, string token)
 {
     return(_getAuthorizationOperation.ExecuteAsync(request, url, token));
 }