Как получить претензии в рамках метода API, защищенного JwtBearer :) - PullRequest
0 голосов
/ 11 июля 2019

В настоящее время IdentityServer настроен с использованием JWT. У нас есть около 8 API каждый с 2-8 конечными точками. Каждая из этих конечных точек использует атрибут AuthorizeAttribute, чтобы проверить, может ли пользователь использовать конечную точку и т. Д.

Это все работает хорошо, но теперь мы хотим реализовать многопользовательский режим. Есть ли способ использовать токен после авторизации API?

Ниже приведен основной поток

  1. Пользователь нажимает кнопку на передней панели, чтобы инициировать вызов API
  2. Конечная точка API проверяет токен доступа с сервером идентификации
  3. Пользователю разрешен доступ при подтверждении

Именно после этой стадии мы хотим снова использовать токен, чтобы запросить у сервера идентификации подробности о пользователе, чтобы мы могли реализовать мультитенантность

Многочисленные поиски в Google и т. Д.

Код API выглядит следующим образом. Каждая конечная точка API имеет тег Authorize, который авторизуется на сервере идентификации, чтобы пользователь мог вызывать конечную точку. Как только пользователь авторизован, мне нужно извлечь данные из токена, чтобы получить арендатора

[HttpGet]
    [Route("api/resultset/{userID}")]
    [Authorize]
    public IActionResult Get(int userID){
       //access token here to get details for multi-tenant
}

1 Ответ

1 голос
/ 11 июля 2019

После того, как ваш вызов API был успешно авторизован, заявки от токена под HttpContext:

[HttpGet]
[Route("api/resultset/{userID}")]
[Authorize]
public IActionResult Get(int userID){
    //access token here to get details for multi-tenant
    var claims = HttpContext.User.Claims;
}
...