«Срок действия предоставленных клиентских секретных ключей истек» при попытке получить токен доступа из Microsoft Graph API - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь интегрировать календарь Outlook в систему (веб-приложение), которую создаю для малого бизнеса (интерфейс React, Django Rest Framework, серверная часть), чтобы пользователи могли просматривать все свои события календаря на система, а также создавать и обновлять их там, без необходимости go туда-обратно между Outlook и системой.

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

Но, что бы я ни пытался, я получаю ошибку AADSTS7000222: The provided client secret keys are expired., что странно , поскольку созданный мною секретный ключ клиента настроен так, что он никогда не истекает.

Я следовал документам для Получить доступ от имени пользователя и Получить доступ без пользователя , но я получил одно и то же сообщение об ошибке в обоих случаях. Я не совсем уверен, в чем разница, но я предполагаю, что документы "Получить доступ от имени пользователя" - это правильный подход, который я должен использовать, потому что календарь каждого пользователя должен быть доступен для отображения событий. и создан. Я точно знаю, что предоставил правильные значения для client_id и client_secret, потому что они точно совпадают с тем, что у меня есть в приложении, которое я зарегистрировал на Azure.

Во-первых, я попробовал следующее (из https://docs.microsoft.com/en-us/graph/auth-v2-service):

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

client_id=535fb089-9ff3-47b6-9bfb-4f1264799865
&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
&client_secret=qWgdYAmab0YSkuL1qKv5bPX
&grant_type=client_credentials

с помощью Postman, изменив значения client_id и client_secret в соответствии с тем, что есть в моем приложении.

Я получил сообщение об ошибке AADSTS7000222: The provided client secret keys are expired., поэтому я решил попробовать следующее (из https://docs.microsoft.com/en-us/graph/auth-v2-user):

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=offline_access%20user.read%20mail.read
&state=12345

при необходимости изменив все значения (арендатор как common, а также изменив client_id и redirect_uri)

Ответ от этого дал мне код доступа, который я использовал в следующем:

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=user.read%20mail.read
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret=JqQX2PNo9bpM0uEihUPzyrh

, где я снова при необходимости изменил значения, но я все равно получил то же сообщение об ошибке, что и выше AADSTS7000222: The provided client secret keys are expired..

1 Ответ

0 голосов
/ 14 апреля 2020

Вы пытались использовать коллекцию почтальонов, чтобы начать работу? Просто чтобы устранить опечатки? https://docs.microsoft.com/en-us/graph/use-postman

...