/// <summary> /// Gets the claim challenge from HTTP header. /// Used, for example, for CA auth context. /// </summary> /// <param name="httpResponseHeaders">The HTTP response headers.</param> /// <param name="scheme">Authentication scheme. Default is Bearer.</param> /// <returns></returns> public static string GetClaimChallengeFromResponseHeaders( HttpResponseHeaders httpResponseHeaders, string scheme = "Bearer") { WwwAuthenticateParameters parameters = CreateFromResponseHeaders( httpResponseHeaders, scheme); try { // read the header and checks if it contains an error with insufficient_claims value. if (null != parameters.Error && "insufficient_claims" == parameters.Error) { if (null != parameters.Claims) { return(parameters.Claims); } } } catch (Exception ex) { throw ex; } return(null); }
/// <summary> /// Gets the claim challenge from HTTP header. /// Used, for example, for CA auth context. /// </summary> /// <param name="httpResponseHeaders">The HTTP response headers.</param> /// <param name="scheme">Authentication scheme. Default is Bearer.</param> /// <returns></returns> public static string GetClaimChallengeFromResponseHeaders( HttpResponseHeaders httpResponseHeaders, string scheme = "Bearer") { WwwAuthenticateParameters parameters = CreateFromResponseHeaders( httpResponseHeaders, scheme); // read the header and checks if it contains an error with insufficient_claims value. if (parameters.Claims != null && string.Equals(parameters.Error, "insufficient_claims", StringComparison.OrdinalIgnoreCase)) { return(parameters.Claims); } return(null); }
internal static WwwAuthenticateParameters CreateWwwAuthenticateParameters(IDictionary <string, string> values) { WwwAuthenticateParameters wwwAuthenticateParameters = new WwwAuthenticateParameters { RawParameters = values }; string value; if (values.TryGetValue("authorization_uri", out value)) { wwwAuthenticateParameters.Authority = value.Replace("/oauth2/authorize", string.Empty); } if (string.IsNullOrEmpty(wwwAuthenticateParameters.Authority)) { if (values.TryGetValue("authorization", out value)) { wwwAuthenticateParameters.Authority = value.Replace("/oauth2/authorize", string.Empty); } } if (string.IsNullOrEmpty(wwwAuthenticateParameters.Authority)) { if (values.TryGetValue("authority", out value)) { wwwAuthenticateParameters.Authority = value.TrimEnd('/'); } } if (values.TryGetValue("claims", out value)) { wwwAuthenticateParameters.Claims = GetJsonFragment(value); } if (values.TryGetValue("error", out value)) { wwwAuthenticateParameters.Error = value; } return(wwwAuthenticateParameters); }