Я пытаюсь использовать JWTToken для пользовательской авторизации в функции Azure (я новичок в обоих).У меня работает базовый JWTToken, теперь я спрашиваю, есть ли лучший способ сделать это
Когда я генерирую jwttoken, я использую ClaimsIdentity для добавления пользовательского утверждения "TestAllowAccess"
ClaimsIdentity claimsIdentity = new ClaimsIdentity (new List<Claim> ()
{
new Claim (ClaimTypes.NameIdentifier, "myemail@myprovider.com"),
new Claim (ClaimTypes.Role, "Administrator"),
new Claim ("TestAllowAccess", ""),
}, "Custom");
В лазурной функции после проверки токена мне нужно будет прочитать токен и сравнить полезную нагрузку
[FunctionName ("Function1")]
public static IActionResult Run ([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)]HttpRequest req, ILogger log, ExecutionContext context)
{
// no error checking
string jwtToken = req.Headers ["Authorization"][0].Substring ("Bearer ".Length);
// validate token with validation parameters...
JwtSecurityTokenHandler tokenHandlerVerify = new JwtSecurityTokenHandler ();
tokenHandlerVerify.ValidateToken (jwtToken, tokenValidationParameters, out SecurityToken validatedToken);
// read for further validate authentication
JwtSecurityToken token = tokenHandlerVerify.ReadJwtToken (jwtToken);
if (!token.Payload.ContainsKey ("TestAllowAccess"))
throw new SecurityTokenException ("TestAllowAccess Fail");
}
Мой вопрос:
Правильно ли этоспособ сделать пользовательскую авторизацию?Есть ли лучший способ сделать это, может быть, не читая полезную нагрузку
Кажется, есть достаточно много кода для дублирования во всех функциях, я вижу, что есть EasyAuth, но яя не пользуюсь AD, это моя пользовательская авторизация.(Я сделаю черный список и запросить токен тоже).Есть ли библиотека или более простой способ?