M365Con 2027 – безкоштовна онлайн-конференція · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Усунення помилки AADSTS700054 «Response Type Not Enabled» в застосунках Azure AD

By ·

Траплялося, що ви натрапляли на помилку AADSTS700054 і думали: «Що я знову зламав?» Ви не самотні. Ця помилка відома тим, що з'являється саме тоді, коли ви намагаєтеся пройти автентифікацію застосунку через Azure Active Directory, особливо з Microsoft 365, Dynamics 365 або власними односторінковими застосунками. По суті вона означає, що ваш застосунок не налаштовано на прийом конкретного «типу від

Automatically translated with AI from the original post. Read the English original

Cover: Power Platform Tenant Governance and Security Risks

Траплялося, що ви натрапляли на помилку AADSTS700054 і думали: «Що я знову зламав?» Ви не самотні. Ця помилка відома тим, що з'являється саме тоді, коли ви намагаєтеся пройти автентифікацію застосунку через Azure Active Directory, особливо з Microsoft 365, Dynamics 365 або власними односторінковими застосунками. По суті вона означає, що ваш застосунок не налаштовано на прийом конкретного «типу відповіді» (response type), який він запитує, наприклад ID-токена або токена доступу з кінцевої точки авторизації.

Цей посібник пояснює, чому так відбувається, і показує, як це виправити для застарілих застосунків на основі неявного потоку (implicit grant), а також для сучасних конфігурацій з MSAL.js і PKCE. Ви також отримаєте найкращі практики безпечного налаштування конфігурацій, посилання на спільноти та поради з навігації по блогу, щоб швидко знаходити відповіді. Наприкінці, незалежно від того, чи усуваєте ви проблеми в застарілих, чи в сучасних застосунках, ви точно знатимете, як вирішити цю поширену проблему з автентифікацією та уникнути її в майбутньому.

Причини проблеми AADSTS700054

Помилка AADSTS700054 — це не просто ще один загадковий код від Microsoft. По суті, це спосіб Azure сказати: «Твій застосунок просить у мене те, на що він не має права». Зазвичай йдеться про типи відповідей. Коли ваш застосунок намагається отримати токен із Azure AD, але для цього «потоку» (наприклад, неявного потоку) його не налаштовано, Azure блокує запит і видає цю помилку.

Чому це виникає? У більшості випадків причина в тому, що в реєстрації застосунку бракує потрібних параметрів для ID-токенів, токенів доступу або обох типів на кінцевій точці авторизації. Наприклад, односторінковий застосунок (SPA) намагається отримати токени через неявний потік, не увімкнувши його в Azure AD. Azure бачить невідповідність між тим, що запитується, і тим, що дозволено, і — бац — ви отримуєте AADSTS700054.

Помилки конфігурації часто трапляються під час переходу від застарілих підходів до автентифікації до сучасних практик. Особливо під ризиком організації, які підтримують одночасно старіші застосунки (які можуть досі використовувати неявний потік) і новіші (які мають використовувати PKCE та потік коду авторизації). Оновлюєте хмарну автентифікацію або інтегруєте нові сервіси Microsoft? Імовірність натрапити на цю перешкоду зростає.

Розуміння цієї помилки допомагає зіставити те, що ваш код запитує, з тим, що налаштовано у вашому застосунку Azure. Тому в решті цього посібника ви побачите, як узгодити запити токенів застосунку з тим, чого очікує Microsoft Identity Platform, — і це дасть вам перевагу в усуненні несправностей.

Увімкнення рекомендованого рішення для проблем із типом відповіді неявного потоку

Якщо AADSTS700054 блокує вашу інтеграцію, найшвидший спосіб вирішити проблему — зазвичай налаштувати реєстрацію застосунку з потрібними типами відповідей. Найчастіше для цього потрібно увімкнути параметри неявного потоку, по суті, надавши застосунку дозвіл отримувати токени безпосередньо з кінцевої точки авторизації.

Ось як це зробити в порталі Azure: спочатку перейдіть до «App registrations», знайдіть свій застосунок і відкрийте розділ «Authentication». Знайдіть область «Implicit grant and hybrid flows». Там ви побачите прапорці «Access tokens» і «ID tokens». Позначте потрібні для вашого сценарію: зазвичай SPA потрібен щонайменше прапорець «ID tokens», а старішим застосункам можуть знадобитися обидва.

Але не вмикайте все підряд у надії на краще! Активуйте лише ті параметри, які справді потрібні вашому застосунку, і не забувайте про безпеку. Якщо ваш застосунок запитує токени через кінцеву точку авторизації, як це роблять більшість браузерних застосунків, ці параметри обов'язкові. Для інших, особливо тих, що переходять на безпечніші потоки (як PKCE), неявний потік, можливо, взагалі не знадобиться.

Після внесення змін більшість проблем AADSTS700054 зникає відразу. Якщо помилка лишилася, перевірте область дозволів застосунку, URI перенаправлення і те, чи повністю поширилися зміни в вашому клієнті. Це основа для вирішення цієї помилки, а також для того, щоб користувачі та розробники знову могли працювати.

Найкращі практики безпеки для уникнення помилок конфігурації типу відповіді

Налаштування implicit grant іноді справді усувають помилку, але це не завжди найбезпечніший довгостроковий варіант. Увімкнення implicit flow підвищує ризик для безпеки, адже токени повертаються безпосередньо у відповідях браузера, тому їх легше перехопити. Саме тому Microsoft, та й кожен адміністратор, який дбає про безпеку, радить для більшості сценаріїв використовувати сучасні альтернативи, наприклад Authorization Code Flow with PKCE, особливо для нових або оновлених SPA.

Тож коли варто вмикати implicit grant? Коротко: лише тоді, коли у вас є застарілі застосунки або особливі випадки, які цього вимагають. Для всього іншого налаштуйте застосунки на використання authorization code flow (з PKCE). Так токени не потрапляють у рядок адреси браузера, а поверхня атаки суттєво зменшується.

Організаціям, які поєднують Power Platform, Microsoft 365 і Dynamics 365, не можна нехтувати цими найкращими практиками. Неправильно налаштовані типи відповідей не лише ламають вхід у систему, а й можуть відкрити зловмисникам доступ або згодом створити проблеми з відповідністю вимогам. Цей огляд безпеки та управління Power Platform пояснює, чому строгі контролі та розуміння обраних потоків так важливі, особливо коли громадяни-розробники додають власні застосунки та інтеграції.

Підсумок: вмикайте лише те, що справді потрібно, де можливо, віддавайте перевагу code flow з PKCE і закривайте реєстрації застосунків у межах ширшої стратегії управління. Переконайтеся, що всі налаштування відповідають політикам безпеки, які ви хочете впровадити. Ваш майбутній «я» (і ваші аудитори) скажуть за це спасибі.

Усунення несправностей AADSTS700054 у сучасних застосунках із MSAL.js

Можна подумати, що перехід на сучасні бібліотеки автентифікації, як-от MSAL.js v2+ і PKCE, позбавить вас від «старих» помилок на кшталт AADSTS700054, правда ж? Не так швидко. Навіть сучасні single page applications можуть спіткнутися, якщо реєстрація застосунку або клієнтська конфігурація не відповідають поточним найкращим практикам.

Найбільший винуватець? Застарілі припущення. Розробники можуть почати з MSAL.js, але залишити застарілі redirect URI або випадково запитувати типи відповідей (як-от id_token), які не увімкнені в Azure AD. Особливо це стосується випадків, коли маніфест застосунку скопійовано з іншого проєкту. Результат: Azure AD видає цю жахливу помилку, щойно ваш застосунок запускає потік автентифікації.

Як це налагодити? Відкрийте інструменти розробника у браузері, перейдіть на вкладку Network і простежте запит авторизації. Перевірте, чи відповідає ваш response_type потокам, які справді дозволені для застосунку Azure. Якщо ви бачите запити на токени, які не були належним чином увімкнені, поверніться до порталу Azure і скоригуйте реєстрацію застосунку.

Не забувайте: з MSAL.js v2 і PKCE зазвичай взагалі не потрібно вмикати implicit flow. Але якщо застосунок досі не працює, шукайте жорстко закодовані налаштування «implicit», помилки в redirect URI або неправильні типи грантів. Ретельна перевірка конфігурації (як на боці Azure, так і на клієнті) усуває більшість проблем. Це може бути не надто захопливо, але ефективне усунення несправностей заощаджує години здогадок.

Міграція застарілих застосунків із implicit grant на PKCE

Готові назавжди відмовитися від implicit flow? Правильне рішення. Міграція на PKCE (Proof Key for Code Exchange) зараз є золотим стандартом, і Microsoft наполегливо її рекомендує. Але, по правді кажучи, міграція працюючого застосунку з користувачами ніколи не зводиться до перемикання однієї опції. Потрібен план, який уникає простоїв, мінімізує збої входу та тримає всіх в курсі.

Перший крок — оцінити та інвентаризувати всі наявні реєстрації застосунків, які використовують implicit grant. Далі протестуйте новий потік на основі PKCE у тестовому середовищі. Це означає налаштування застосунку на використання authorization code flow, оновлення redirect URI та змін у конфігураційних файлах клієнта (наприклад, заміни MSAL.js або ADAL.js). Пройдіть повні цикли входу та виходу і оновлення токенів. Переконайтеся, що все працює для всіх типів користувачів.

Перш ніж перемикати все у продуктиві, майте план відкату. Можливо, доведеться тимчасово залишити увімкненими обидва потоки, якщо міграція піде не за планом. Чітко повідомляйте користувачів: їм не подобаються несподіванки, особливо якщо їхня робота зупиняється через незаплановану зміну способу входу.

Нарешті, стежте за проблемами на кшталт збоїв оновлення токенів або перерваних активних сесій після міграції. За можливості плануйте оновлення на час низького навантаження. Потрібно більше про те, як організувати такі переходи на практиці? Деякі ресурси ведуть на інші сторінки, але ви завжди можете переглянути останні подкасти про Microsoft 365 Copilot і архітектуру, де є непрямі підказки щодо управління змінами на рівні підприємства (див. нещодавні обговорення тут).

Пошук надійних блогів на кшталт блогу Nishant Rana для перевірених рішень

Пошук останніх публікацій про проблеми з Azure AD через швидкий пошук і архіви

Microsoft Entra ID Dynamics 365 Microsoft

Related articles

RSS