Микросервисы: C# Авторизация WebAPI для внешнего сервиса. (Конечная точка) - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть конечная точка webapi. Мне нужно использовать внешнюю авторизацию jwt для звонков. В основном есть несколько микросервисов. Когда вызов попадает в эту конкретную службу, у которой в заголовке есть контроллер webapi с токеном JWT, необходимо вызвать конечную точку внешнего сервера авторизации для проверки и получения взамен ролей и идентификатора.

Я уже реализовал это путем расширения AuthorizationFilterAttribute. Но я смотрю на использование OWIN. Есть ли способ сделать это через OWIN, который перехватывает, проверяет токен, когда запрос попадает в контроллер.

Примечание: мне просто придется неавторизоваться, если токен недействителен.

Добавление кода :

[JwtAuthorizationFilter]
    public class abcController : ApiController
    {
    }


 public class JwtAuthorizationFilterAttribute : AuthorizationFilterAttribute {
        public override void OnAuthorization(HttpActionContext actionContext) {
            try {
            //Parse and get token from Header
                var requestToken = FetchRequestTokenFromHeader(actionContext);
            //Call(postasync) external enpoint to validate the token and get jwtdetails 
                var validationResponseMessage = JwtValidation(requestToken, actionContext);
            //crate a generic identity and set actioncontext
                ParseValidationResponseMessage(actionContext, validationResponseMessage);

            } catch (Exception exception) {
                Logger.Info("Exception on authorization: " + exception.Message);
                actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.InternalServerError);
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...