Неинтерактивная проверка подлинности в Azure AD для операций CRUD на сервере Sharepoint Project Server - PullRequest
0 голосов
/ 27 августа 2018

Мне нужно подключиться к OData Sharepoint для выполнения некоторых операций CRUD (из SAP C4C).

Конечной точкой API является https://{tenant}.sharepoint.com/sites/{Site}/_api/ProjectServer/Projects

Мне удалось создать токен, выполняющий JWT с grant_type = client_credentials и сертификатом (см. https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow), но я не могу получить доступ к данным на ProjectServer / Projects. Ошибка заключается в следующем:

{
    "error": {
        "code": "-1, System.Web.Services.Protocols.SoapException",
        "message": {
            "lang": "en-US",
            "value": "ProjectServerError(s) LastError=GeneralNotLicensed Instructions: Pass this into PSClientError constructor to access all error information"
        }
    }
}

Я думаю, что мне нужно пройти аутентификацию в Azure AD с пользователем, но я не могу найти хороший способ сделать это без взаимодействия с пользователем.

Я попробовал поток «Предоставление пароля» (grant_type = пароль, используя пользователя службы), но, похоже, он не работает (конечная точка токена выдает ошибку: «AADSTS70002: Ошибка при проверке учетных данных. AADSTS50126: Неверное имя пользователя или пароль») ,

У меня нет доступа к какому-либо лазурному соединителю на платформе, которую я использую, поэтому я должен выполнять все операции вручную ...

У кого-нибудь есть идеи?

Спасибо.

Edit:

Я прилагаю вызов для предоставления пароля, если это может быть полезно:

URL: https://login.microsoftonline.com/{tenant_GUID}/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=password
scope=openid {clientid} offline_access
resource=https://{tenant}.sharepoint.com
client_id={clientId}
username={user}@hosttenant.com
password=password

Ответ:

{
    "error": "invalid_grant",
    "error_description": "AADSTS70002: Error validating credentials. AADSTS50126: Invalid username or password\r\nTrace ID: XXXXXXXXXX\r\nCorrelation ID: XXXXXXXX\r\nTimestamp: 2018-08-27 15:36:50Z",
    "error_codes": [
        70002,
        50126
    ],
    "timestamp": "2018-08-27 15:36:50Z",
    "trace_id": "XXXXXXXXXXXXXX",
    "correlation_id": "XXXXXXXXXXXXXX"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...