OpenId Connect: запрос аутентификации (служба входа) с претензиями - PullRequest
0 голосов
/ 28 февраля 2019

Я использую: IdentityModel.OidcClient в моем проекте asp.net (framework dot net), Version = 2.9.0.0 для создания запроса аутентификации (запрос HTTPS GET), требуются следующие параметры: client_id, response_type, scope, redirect_uri.

После различных тестов это работает:

            OidcClientOptions _options = new OidcClientOptions
        {
            Authority = _authority,
            Flow = OidcClientOptions.AuthenticationFlow.AuthorizationCode,
            ClientId = _clientId,
            ResponseMode = OidcClientOptions.AuthorizeResponseMode.Redirect,
            Scope = "openid profile email service:EPICURA_LOGIN phone address",
            RedirectUri = "https://localhost:44302/",
            FilterClaims = false,

            ProviderInformation = new ProviderInformation
            {
                IssuerName = _authority,
                AuthorizeEndpoint = _authorizationEndpoint,
                TokenEndpoint = _tokenEndpoint,
                KeySet = new IdentityModel.Jwk.JsonWebKeySet("{\"alg\":\"RS256\"}"),
                UserInfoEndpoint = "https://e2emerchant.itsme.be/oidc/userinfo"
            }
        };

        OidcClientOptions _options = EpiAuthorize.GenerateRequestAuthentication();
        OidcClient _client = new OidcClient(_options);
        var _state = await _client.PrepareLoginAsync();

        string jsonStr = JsonConvert.SerializeObject(_client, Formatting.Indented);

Эта работа, но у меня нет параметра утверждений для добавления в OidcClientOptions, 112/5000 Мне нужна дополнительная информация через параметр утверждений: "tag: sixdots.be, 2016-06: demand_eid"

Можно ли сделать запрос "get" с помощью RestClient?

Я пытался это сделать, но безуспешно:

*var client = new RestClient("https://e2emerchant.itsme.be/");
        var request = new RestRequest("oidc/authorization", Method.GET);

        request.AddHeader("Accept", "application/json");
        request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
        request.AddParameter("response_type", "code");
        request.AddParameter("scope", "openid profile email service: EPICURA_LOGIN");
        request.AddParameter("client_id", _clientId);
        request.AddParameter("redirect_uri", "https://localhost:44302/");
        request.AddBody("");

        // execute the request
        IRestResponse response = client.Execute(request);
        var content = response.Content;

У вас есть решение, чтобы предложить мне, я застрял на нем на 1 неделю, я вижу много примеров с сетевым ядром, но я не использую его.

Есть ли какие-либоспособ добавить параметр утверждений в «OidcClientOptions» или же можно сделать то же самое, что и мой исходный код выше, с «OidcClientOptions», но с RestClient.

Заранее спасибо

...