Ошибка аутентификации Microsoft OAuth 2.0 — ошибка неверного запроса token_url

Я хочу убедиться, что мои учетные данные для аутентификации OAuth 2.0. Итак, у меня есть client_id, client_secret, tenant_id, scope, token_url и auth_url. Я использую стороннее приложение для отправки электронной почты, но получаю сообщение об ошибке в части OAuth 2.0 как ошибка неверного запроса для token_url.

В этом случае, когда grant_type='client_credentials', как я могу исправить домены или субдомены token_url?

-> token_url like that https://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/token

Если вы доминируете в этой теме, не могли бы вы упомянуть о процессе OAuth 2.0?

Я попытался изменить параметр grant_type как client_credentials. По умолчанию было «refresh_token».

В этом случае он вернулся, как эта ошибка:

(530, b'5.7.57 Client not authenticated to send mail. Error: 535 5.7.3 Authentication unsuccessful [ZR2P278CA0041.CHEP278.PROD.OUTLOOK.COM 2023-02-14T08:10:26.343Z 08DB0DEF6EA5D39B]', '[email protected]')
2023-02-14 11:10:26,378 INFO [decorators] [send_email] StatusMessage: An error occurred while sending the email: (530, b'5.7.57 Client not authenticated to send mail. Error: 535 5.7.3 Authentication unsuccessful [ZR2P278CA0041.CHEP278.PROD.OUTLOOK.COM 2023-02-14T08:10:26.343Z 08DB0DEF6EA5D39B]', '[email protected]')
2023-02-14 11:10:26,379 INFO [decorators] [send_email] StatusMessage: Done with sending email...

Итак, в чем основная проблема в данном случае?

Спасибо за внимание,

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я попытался воспроизвести то же самое в своей среде и получил следующие результаты:

Я создал приложение Azure AD и предоставил согласие администратора на разрешение Mail.Send API:

В зависимости от ваших требований вы можете использовать поток учетных данных клиента или поток кода авторизации.

  • Если вам нужно взаимодействие с пользователем, используйте поток кода авторизации.
  • Если вы хотите отправлять почту как приложение, используйте Client Credential Flow.

Я сгенерировал токен доступа через Client Credential Flow, используя следующие параметры:

https://login.microsoftonline.com/TenantID/oauth2/v2.0/token

client_id:ClientID
client_secret:ClientSecret
scope:https://graph.microsoft.com/.default
grant_type:client_credentials

Чтобы отправить почту, я использовал следующий запрос:

https://graph.microsoft.com/v1.0/users/FromAddress/sendMail 

{
"message": {
"subject": "Test mail",
"body": {
"contentType": "Text",
"content": "Test"
},
"toRecipients": [
{
"emailAddress": {
"address": "****"
}
}
],
"ccRecipients": [
{
"emailAddress": {
"address": "****"
}
}
]
},
"saveToSentItems": "false"
}

Ссылка:

пользователь: sendMail - Microsoft Graph v1.0 | Обучение Майкрософт

Спасибо за быстрый ответ и полезный контент. Кроме того, в моем случае для использования моего стороннего приложения также требуется SMTP-сервер. Каким должен быть SMTP-сервер? Я использую smtp.office365.com. А также в этой ситуации я получаю сообщение об ошибке типа «Аутентификация не удалась» и «Клиент не прошел проверку подлинности для отправки почты». Есть ли у вас какие-либо предложения в этом вопросе?

ardaozmen 15.02.2023 10:15

Другие вопросы по теме