Невозможно сгенерировать токен доступа для api онлайн-собрания Microsoft Graph

Я пробовал все, но каким-то образом не могу сгенерировать токен, или токен, который сгенерирован, не работает. Пожалуйста, помогите с тем, что я делаю не так. Я хочу, чтобы токен создавал онлайн-встречу. Запросы на совместное использование, ниже которых я пробовал

  1. Сгенерируйте токен с типом предоставления учетных данных клиента ЗАПРОС:

    POST 'https://login.microsoftonline.com/CXXXXXXX/oauth2/token'
    --header 'Content-Type: application / x-www-form-urlencoded'
    --data-urlencode ' пароль = CXXXXXXX '
    --data-urlencode' grant_type = client_credentials '
    --data-urlencode' scope = OnlineMeetings.ReadWrite '
    --data-urlencode' client_id = CXXXXXXXXCXXXXXXX-464c- 965a-CXXXXXXXCXXXXXXX '
    --data-urlencode' [email protected] '
    --data-urlencode' client_secret = CXXXXXXX6ryCXXXXXXXXuV.zu8SmW ~ D_ '

Сохраните созданный токен - используя его в https://graph.microsoft.com/v1.0/me/onlineMeetings выдает ошибку - Ошибка проверки токена доступа. Недействительная аудитория

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

    POST 'https://login.microsoftonline.com/learn123456789.onmicrosoft.com/oauth2/token' --header 'Content-Type: application / x-www-form-urlencoded' --data-urlencode 'grant_type = urn: ietf: params: oauth: grant-type: jwt-bearer '--data-urlencode' scope = OnlineMeetings.ReadWrite '
    --data-urlencode' client_id = CXXXXXXXCXXXXXXX-464c-965a-CXXXXXXXXCXX /
    --data-urlencode 'client_secret = CXXXXXXX6ryCXXXXXXXuV.zu8SmW ~ D_'
    --data-urlencode 'resource = https: //graph.microsoft.com/'
    --data-urlencode 'required_token_use = on_behalf_of '
    --data-urlencode' утверждение = tokenFromFirstAPI '

  2. Также пробовал этот api

    //login.microsoftonline.com/common/oauth2/authorize?client_id=CXXXXXXXCXXXXXXX-464c-965a-CXXXXXXXCXXXXXXX&response_type=token&resource=XXXXXXX6-ba00-4fdX7-XXX3

Ошибка: аудитория утверждения не соответствует клиентскому приложению, представляющему утверждение. Аудитория в утверждении была «00000002-0000-0000-c000-000000000000», а ожидаемая аудитория - «clientID» или один из Uris приложения этого приложения с идентификатором приложения XXX. Нижестоящий клиент должен запросить токен для ожидаемой аудитории (приложение, сделавшее запрос OBO), и это приложение должно использовать этот токен в качестве утверждения.

В этом случае токен не работает - https://graph.microsoft.com/v1.0/me/onlineMeetings

Получение - ошибка проверки токена доступа. Недействительная аудитория.,

Помогите пожалуйста, что я делаю не так?


person Sakshi Juneja    schedule 25.12.2020    source источник
comment
Не могли бы вы проверить разрешения один раз и попробовать использовать обозреватель графиков.   -  person VaraPrasad-MSFT    schedule 30.12.2020


Ответы (3)


Спасибо, Карл, немного не получилось

Даже предоставили все разрешения, как указано выше.

ОШИБКА - неверный запрос - 400 - 819 мс

{error: {code: AuthenticationError, message: Error Authentication with resource, innerError: {date: 2020-12-27T09: 36: 57, request-id: 4e01eff1-9eb5-42dd-9009-dbdd85aca49a, client-request-id: 5effa441-d7f6-5ef7-5066-1d7153f39712}}

person Sakshi Juneja    schedule 27.12.2020
comment
Можете ли вы использовать Graph Explorer для тестирования? developer.microsoft.com/en-us/graph/graph-explorer - person Carl Zhao; 28.12.2020

Как говорится в вашем сообщении об ошибке, ваша аудитория токенов недействительна, потому что вы установили неправильный scope при запросе токена. Вы должны установить для области значение https://graph.microsoft.com/.default или https://graph.microsoft.com/OnlineMeetings.ReadWrite, кроме того, вызов api поддерживает только delegated permissions, поэтому вы не можете использовать поток учетных данных клиента для получения токена. Для конечной точки /me пользователю необходимо войти в систему, поэтому вам необходимо использовать поток кода аутентификации для получения токена доступа.

введите описание изображения здесь

Или есть более простой способ: вы можете использовать Graph Explorer, чтобы test, вам нужно только войти в систему и добавить разрешения.

введите описание изображения здесь


Обновление:

Я заметил, что вы используете 3 метода для получения токена.

Прежде всего, для первого метода вы используете конечную точку v1.0 и используете поток учетных данных клиента для получения токена. Следует обратить внимание на то, что при использовании аутентификации v1.0 нельзя использовать scope, следует использовать resource. Кроме того, когда вы используете поток учетных данных клиента, вы не можете использовать версию v1.0, вам необходимо использовать бета-версию, а поскольку поток учетных данных клиента является потоком без входа пользователя, вы не можете вызвать конечную точку /me, вам следует вызовите конечную точку /users. (Примечание: при использовании бета-версии и потока учетных данных клиента в соответствии с документация: Администраторы должны создать политика доступа к приложению и предоставить ее пользователю, авторизовав приложение, настроенное в политике. для создания онлайн-встречи от имени этого пользователя (идентификатор пользователя указан в пути запроса).

Полный запрос:

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

client_id=535fb089-9ff3-47b6-9bfb-xxxxxxxxxx
&resource=https://graph.microsoft.com/
&client_secret=qWgdYAmab0YSkuLxxxxxxx
&grant_type=client_credentials

вызов API:

https://graph.microsoft.com/beta/users/{userId}/onlineMeetings

Я заметил, что для второго метода вы используете поток OBO, а затем вы передаете неверный токен доступа, полученный первым методом, в качестве утверждения, поэтому токен доступа, полученный с помощью этого потока, определенно неверен. . Кроме того, если у вас нет внутреннего API, не используйте этот поток. Этот поток требует, чтобы у вас был API среднего уровня, и его громоздко использовать.

Ваш третий метод тоже неверен, ваш ресурс должен быть: https://graph.microsoft.com

Подводя итог: если вы хотите использовать поток учетных данных клиента без входа в систему, обратитесь к моему обновлению. Если у вас нет backend api, пожалуйста, не используйте поток OBO.

person Carl Zhao    schedule 25.12.2020
comment
Если мой ответ полезен для вас, вы можете принять его как ответ (щелкните галочку рядом с ответом, чтобы переключить его с серого на заполненный). См. meta.stackexchange.com/questions / 5234 / Это может быть полезно другим участникам сообщества. Спасибо. - person Carl Zhao; 25.12.2020

ИЗОБРАЖЕНИЕ ОШИБКИ Ошибка в следующем URL-адресе

    "message": "Error authenticating with resource",

https://developer.microsoft.com/en-us/graph/graph-explorer

person Sakshi Juneja    schedule 29.12.2020
comment
Вы вошли в систему с рабочей или учебной учетной записью? Он не поддерживает личные учетные записи Microsoft. - person Carl Zhao; 30.12.2020
comment
На данный момент я создал личный кабинет. Позвольте мне попробовать, создав рабочую или учебную учетную запись. - person Sakshi Juneja; 31.12.2020