【问题标题】:okta + .net web api - how to get authenticated user email & name (profile scope data)okta + .net web api - 如何获取经过身份验证的用户电子邮件和姓名(配置文件范围数据)
【发布时间】:2018-02-16 01:32:49
【问题描述】:

我的 Web api 服务器实现的代码与您在 okta 指南中看到的代码相同:
https://developer.okta.com/quickstart/#/widget/dotnet/aspnet4

public void Configuration(IAppBuilder app)
{
    // Configure JWT Bearer middleware
    // with an OpenID Connect Authority

    var authority = "https://{yourOktaDomain}.com/oauth2/default";

    var configurationManager = new ConfigurationManager<OpenIdConnectConfiguration>(
        authority + "/.well-known/openid-configuration",
        new OpenIdConnectConfigurationRetriever(),
        new HttpDocumentRetriever());

    app.UseJwtBearerAuthentication(new JwtBearerAuthenticationOptions
    {
        AuthenticationMode = AuthenticationMode.Active,
        TokenValidationParameters = new TokenValidationParameters
        {
            ValidAudience = "api://default",
            ValidIssuer = authority,
            IssuerSigningKeyResolver = (token, securityToken, identifier, parameters) =>
            {
                var discoveryDocument = Task.Run(() => configurationManager.GetConfigurationAsync()).GetAwaiter().GetResult();
                return discoveryDocument.SigningKeys;
            }
        }
    });
}

身份验证有效,但我如何从“个人资料”范围内获得经过身份验证的用户电子邮件和姓名
我看到的是这样的:

谢谢!

【问题讨论】:

    标签: asp.net-web-api okta okta-api


    【解决方案1】:

    好吧,在这上面浪费了很多时间之后,解决方案是这些更改:

    • 发送 id_token 而不是 session_token
    • ValidAudience = "api://default"ValidAudience = "your-application-client-id"
    • ValidateAudience = true

    【讨论】:

      猜你喜欢
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 2019-05-01
      相关资源
      最近更新 更多