IdentityServer4, как создать идентификационный токен? - PullRequest
0 голосов
/ 25 апреля 2018

Я следую нескольким учебным пособиям, документации IdentityServer4 и ее терминологии: Терминология Но я не понимаю, какую конечную точку получить идентификатор пользователя для токена. Я думал, что могу изменить существующий способ получения токена доступа, чтобы получить токен id, но ни один из методов не дает результата:

        var disco = new DiscoveryClient("http://localhost:55678");
        var discoResponse = disco.GetAsync().Result;
        if (discoResponse.IsError)
        {
            return null;
        }

        var tokenClient = new TokenClient(discoResponse.TokenEndpoint, "mvc", "secret");
        var tokenResponse = tokenClient.RequestResourceOwnerPasswordAsync(context.EmailAddress, context.Password, "email");
        var token = tokenResponse.Result;

Я понимаю, что способ resourceownerpassword предназначен только для доступа к ресурсу с использованием пароля, а не для идентификации пользователя.

Когда я попытался настроить свою jwtendpoint, я подумал, что могу запросить токен id, но безрезультатно:

        services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(opts =>
            {
                opts.Authority = "http://localhost:55678/";
                opts.Audience = "api1";
                opts.RequireHttpsMetadata = false;
                opts.SaveToken = true;
            });

Я не знаю, какой конечный пользователь получит токен jwt id.

1 Ответ

0 голосов
/ 20 сентября 2018

Вы не можете получить токены идентификации с предоставлением пароля .

Конечной точкой, которую нужно использовать для получения токена идентификации , является Авторизовать конечную точку , но вы не можете использовать предоставление пароля с этой конечной точкой.

Вы можете получить доступ к пользовательской информации (утверждениям) из Конечная точка UserInfo с использованием токена доступа

...