Область видимости
Я пытаюсь читать / записывать события из календаря office365, используя microsoftgraph API. Кажется, я не могу получить правильную область, я получаю user.read только когда мне нужно calendar.readwrite. вот мой запрос кода, я попытался добавить область, и у меня есть calendar.readwrite, определенный в разрешениях на портале регистрации, но всегда я получаю только user.read. когда я получу токен доступа.
https://login.microsoftonline.com/common/oauth2/authorize?
client_id={CLIENT_ID}&
response_type=code&
redirect_uri=https://localhost&
state=985542
как мне увеличить сферу применения?
1 ответ
Возможно, ваша заявка находится в состоянии, когда у вас есть согласие на user.read
сфера, но не calendar.readwrite
объем.
В частности, я предполагаю, что вы зарегистрировали свое приложение только с user.read
объем, а затем согласился на приложение. Это сработало, и ваши токены начали получать user.read
объем. Затем вы добавили дополнительное разрешение для calendar.readwrite
Однако вы не видите его в токене!
Это потому, что вы не согласились повторно с новой областью применения. Если вы измените уровни разрешений вашего приложения, вы также должны повторно дать согласие на новое приложение. Если вы этого не сделаете, вы будете продолжать получать разрешения, на которые вы дали согласие в прошлом, независимо от того, какими они были.
Чтобы это исправить, просто добавьте &prompt=consent
в конце вашего логина, который заставит пользователя дать согласие на новый набор разрешений.
Это происходит потому, что наша служба токенов сначала проверяет, есть ли EntitlementGrants, записанные между пользователем и приложением. Если они есть, они пропустят все процессы согласия и просто перейдут к чеканке токена. Если вы удалите запись о согласии или снова заставите пользователя дать согласие, мы начнем процесс с нуля, что приведет ко всем выбранным вами разрешениям.
Позвольте мне знать, если это помогает!