OKTA - получить имя пользователя из утверждений профиля в методе C # Load_Page - PullRequest
0 голосов
/ 12 сентября 2018

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

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

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

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

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

best, x

1 Ответ

0 голосов
/ 05 ноября 2018

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

...