IdentityServer4 如何创建身份令牌?

问题描述 投票:0回答:1

我遵循几个教程和 IdentityServer4 文档及其术语:术语 但我不明白从哪个端点获取用户的 id 令牌。 我想我可以改变现有的方式来获得访问令牌来获取 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令牌。

c# jwt token identityserver4 c#-2.0
1个回答
2
投票

您无法通过密码授予获得身份令牌

用于获取 身份令牌的端点是 授权端点,但您不能将 密码授予与此端点一起使用。

您可以使用 访问令牌UserInfo 端点

访问用户信息(声明)
© www.soinside.com 2019 - 2024. All rights reserved.