Мы пытаемся перейти от старого API WindowsLive к новому Microsoft Graph API. В процессе мы сталкиваемся с трудностями с обязательным параметром OAuth 2.0 redirect_uri
в приложении.
Согласно Oauth 2.0 RFC , redirect_uri
должен быть абсолютным путем, но может содержать правильно закодированную строку запроса.
В нашем приложении для Windows мы настроили абсолютный путь - их инструмент приложения не позволяет добавлять строки запроса: https://example.com/index.php
В нашем OAuth-запросе используется redirect_uri
с URL-кодированием, включая параметры запроса. Это необходимо, мы используем CMS (Joomla), которая должна знать, что должно обрабатывать запрос:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
response_type=code&
client_id={string}&
redirect_uri=https%3A%2F%2Fexample.com%2Findex.php%3Foption%3Dcom_jfbconnect%26task%3Dauthenticate.callback%26provider%3Dwindowslive&
scope=user.read&
state={string}&
access_type=offline&
approval_prompt=auto
Однако API Graph отклоняет это с помощью:
«URL-адрес ответа, указанный в запросе, не соответствует URL-адресу ответа, настроенному для приложения»
Кто-нибудь еще сталкивался с этим или понимал, почему Graph API не принимает параметры запроса ни в конфигурации приложения, ни в запросах токена?
Редактировать - 5/8 - Однако в области настройки приложения не разрешены строки запроса в параметре redirect_uri, что является правильным в соответствии с RFC. Тем не менее, Graph API не соблюдает это примечание RFC:
The endpoint URI MAY include an "application/x-www-form-urlencoded" formatted (per Appendix B) query component ([RFC3986] Section 3.4), which MUST be retained when adding additional query parameters.