OKTA — получить имя пользователя из утверждений профиля в методе C# Load_Page

Мы разрабатываем пользовательскую страницу входа. На самом деле мы используем виджет входа Okta на странице aspx. Причина, по которой мы это делаем, заключается в том, что мы должны интегрироваться с другой библиотекой .NET API.

Пока все из коробки работает отлично. Пользователь переходит на страницу, ему показывается экран входа в систему, он входит в систему и получает страницу .aspx.

Чтобы пойти дальше, нам нужно написать некоторый код в событии Page_Load() страницы .aspx, который проверяет, аутентифицирован ли пользователь, и если да, извлекает имя пользователя из коллекции утверждений. Как только это будет сделано, мы проделаем некоторую работу с другим API, а затем перенаправим его в другое приложение, передав имя пользователя и токен, полученные от Okta.

Я не нахожу, как я могу получить эту информацию в C# в событии Page_Load().

Любая помощь будет очень признательна.

лучший, х


person xgp    schedule 12.09.2018    source источник


Ответы (1)


Вам нужен OKTA SDK — https://github.com/okta/okta-sdk-dotnet.

Чтобы аутентифицировать пользователя/запрос, передайте access_token, полученный из виджета входа, в качестве заголовка авторизации. API должен проверить этот заголовок авторизации. Например, вот мой .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 Client без аутентификации, но я рекомендую вам это сделать. Надеюсь, вы найдете это полезным.

person yyc    schedule 05.11.2018