Аутентификация приложений Azure AD успешно прошла проверку подлинности всех приложений в одном клиенте без делегирования / разрешения из белого списка - PullRequest
0 голосов
/ 13 апреля 2019

Я использую приложение Azure AD для аутентификации приложения, а также для аутентификации пользователя.Теперь из одного и того же клиента AD любое зарегистрированное приложение может вызывать мое приложение как с маркером пользователя, так и с приложением, даже если я не добавил / не внес в белый список приложение вызывающего абонента.Это отличается от того, что случалось пару лет назад, когда мы должны были добавить делегированное разрешение в наши разрешения на регистрацию приложения, чтобы любое приложение могло вызывать нас с токеном.

Мое приложение Asp.Net Core используетприведенный ниже фрагмент кода для настройки аутентификации.

services.AddAuthentication(sharedOptions =>
            {
                sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer((option) =>
            {
                option.Audience = audience;
                option.Authority = authority;
                option.TokenValidationParameters = new TokenValidationParameters()
                {
                    ValidateAudience = true,
                };
            });

Пожалуйста, дайте мне знать, почему больше нет необходимости добавлять делегированные разрешения в приложении Azure AD?

Спасибо

1 Ответ

2 голосов
/ 13 апреля 2019

Возможно, вы нажали одну из функций Azure AD. Приложение любого арендатора может получить токен доступа для API любого арендатора, если они знают его идентификаторы (идентификатор клиента + идентификатор клиента / URI идентификатора приложения). Маркер не будет содержать каких-либо делегированных разрешений или разрешений для приложений, для него нет способа получить их, не требуя их + кто-то, конечно, согласившийся с ними. Но в противном случае оно будет действительным.

Вам необходимо проверить в своем API, что вызывающий абонент имеет соответствующие разрешения для вызова вашего API. Убедитесь, что токен содержит допустимое делегированное разрешение или разрешение приложения. Делегированные разрешения будут разделены пробелом в утверждении scp, а разрешения приложения будут в массиве в утверждении ролей. Невыполнение этих проверок может сделать ваш API уязвимым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...