Как я могу использовать Qt Network Authorization для Azure AD OAuth2 - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь настроить пример Qt Network Authorization OAuth2 для Reddit для работы с Azure AD.Я перешел на https://portal.azure.com/ -> Azure Active Directory -> Регистрация приложений, затем нажал «Регистрация нового приложения» и ввел:

  • Имя: QtNetworkAuthProject
  • Тип приложения: Имя
  • URI перенаправления: http://localhost:1337/

Azure Create

Я скопировал полученный идентификатор приложения в приложение, затем получил URI от Поток предоставления кода авторизации :

первая часть, кажется, работает;веб-страница открывается и просит меня подтвердить логин.Но тогда запрос на токен кажется неудачным.Мой журнал показывает:

AzureWrapper::grant()+
setModifyParametersFunction(): stage = RequestingAuthorization
AzureWrapper::grant()-
statusChanged(): status = TemporaryCredentialsReceived
setModifyParametersFunction(): stage = RequestingAccessToken
qt.networkauth.oauth2: Unexpected call
qt.networkauth.replyhandler: Error transferring https://login.microsoftonline.com/common/oauth2/token - server replied: Bad Request

Что я сделал не так?

1 Ответ

0 голосов
/ 20 июня 2018

Azure AD требуется либо в запросе кода авторизации, либо в запросе маркера доступа URI идентификатора приложения целевого веб-API (защищенного ресурса), который вы хотите использовать.(См. https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-oauth-code)

. Вы можете добавить этот дополнительный параметр ресурса в запрос кода авторизации следующим образом:

oauth2.setModifyParametersFunction([](QAbstractOAuth::Stage stage, QVariantMap* parameters) {
    if (stage == QAbstractOAuth::Stage::RequestingAuthorization) {
        parameters->insert("resource", "<App ID URI>");
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...