Нет, вам нужно обновить записанное согласие для пользователя. Полагаю, вы используете конечные точки Azure v1 OAUth2 , поскольку эта проблема возникает чаще, чем конечные точки v2:).
Проблема в том, что когда ваш пользователь впервые дал согласие, Azure записал его согласие, чтобы его больше не запрашивали. Эта запись захватила разрешения, которые вы изначально настроили при регистрации вашего приложения. Azure v1 недостаточно интеллектуален, чтобы обнаружить, что вы добавили новые разрешения в регистрацию своего приложения с момента регистрации согласия пользователя, поэтому он с радостью продолжает выдавать токены со старыми разрешениями, пропуская приглашение пользователя.
Чтобы отобразить запрос, вам нужно включить параметр запроса prompt=consent
в URL авторизации, как описано здесь .
Если вы используете конечные точки OAuth2 v2 , это становится немного проще. С конечными точками v2 все, что вам нужно сделать, это включить новые области разрешений в параметр запроса scope
для вашего URL авторизации. Azure обнаружит, что пользователь не дал на это свое согласие, и выдаст запрос.
Так как вы скажете, какую конечную точку вы используете?
- Вы зарегистрировали приложение на https://portal.azure.com? Вы используете v1.
- Вы используете библиотеки ADAL в своем коде? Это v1.
Вы используете библиотеки MSAL? Это v2.
Посылает ли ваш код пользователю URL-адрес с v2.0
? Вы догадались, это v2. Если в нем нет v2.0
, значит v1.