OKTA - 在C#Load_Page方法中从配置文件声明中获取用户名

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

我们正在开发自定义登录页面。实际上,我们在aspx页面上使用Okta Sign In Widget。我们之所以这样做是因为我们必须与另一个.NET API库集成。

到目前为止,开箱即用的一切都很棒。用户转到页面,显示登录屏幕,登录并给出.aspx页面。

为了更进一步,我们需要在.aspx页面的Page_Load()事件中编写一些代码,以检查用户是否经过身份验证,如果是,则从声明集合中提取用户名。完成后,我们将使用其他API执行一些操作,然后重定向到另一个应用程序,传递用户名和从Okta收到的令牌。

我没有找到如何在Page_Load()事件中使用C#获取此信息。

非常感谢任何帮助。

最好的,x

.net okta okta-api
1个回答
0
投票

你需要OKTA SDK - https://github.com/okta/okta-sdk-dotnet

要对用户/请求进行身份验证,请将从登录窗口小部件获取的access_token作为授权标头传递。 API应该检查此Authorization标头。例如,这是我的.NETCore Startup.cs:

public void ConfigureServices(...) {
    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
      .AddJwtBearer(options =>
      {
        options.Authority = <your_authorization_url>;
        options.Audience = <your_api_audience>;
      });
   ...
}

public void Configure(...) {
    ...
    app.UseAuthentication()
    ...
}

然后,您可以使用OKTA Client GetUser检索服务中的用户配置文件。

public class MyService {
  ...
  public void GetUser(string userId) {
    var client = new OktaClient(new OktaClientConfiguration
    {
       OktaDomain = <your_okta_domain>,
       Token = <okta_api_key>
    });
    var user = await client.Users.GetUserAsync(userId);
  }
}

您可以在没有身份验证的情况下使用OKTA客户端,但我建议您应该这样做。希望你觉得它有用。

© www.soinside.com 2019 - 2024. All rights reserved.