Azure AD OAuth 2 проверяет токен .NET Core - PullRequest
0 голосов
/ 18 октября 2018

Сейчас я занимаюсь разработкой проекта Microsoft .NET Core.У нас есть Azure AD, и мы хотим проверять запросы, поступающие ко всем микросервисам Apis.

Существует множество приложений, которые будут вызывать наши проекты веб-API.Каждое из этих приложений имеет свое собственное приложение (ClientId и секрет клиента).Они генерируют токен, используя свои данные, а затем отправляют его в заголовке при каждом запросе.(Никаких проблем до сих пор)

Со своей стороны я должен проверять токен с каждым запросом, но проверка должна работать для всех токенов, поступающих из разных приложений.

Итак, яя пытаюсь настроить JWTBarear на прием любого токена, но я немного потерян с конфигурацией:

services.AddAuthentication(o =>
   {
      o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
      o.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
   })
   .AddJwtBearer(jwt =>
   {
      jwt.Authority = "https://login.microsoftonline.com/[myTenant]";
   });

services.AddAuthorization(auth =>
   {
      auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder(JwtBearerDefaults.AuthenticationScheme)
                        .RequireAuthenticatedUser()
                        .Build());
   });

и в настройке:

app.UseAuthentication();   
app.UseMvc();

Но я получаю всегдаи 401. Я сгенерировал токен с помощью почтальона, и он действителен.

Я не очень хорош с конфигурациями.Я что-то пропустил?Все примеры, которые я видел в Интернете, используют ClientId, который у меня есть много, а не один.

PS Мне не нужно входить в систему или что-то в этом роде, мне нужно только проверить токен.

Спасибо!

1 Ответ

0 голосов
/ 18 октября 2018

О, я нашел ответ.Мне не хватало аудитории, которая отличалась в .NET Core:

.AddJwtBearer(jwtOptions =>
       {
           jwtOptions.Audience = "https://management.core.windows.net";
           jwtOptions.Authority = "https://login.microsoftonline.com/[myTenant]";
       });
...