Что такое правильное разрешение API Microsoft Graph для чтения почтового ящика только для определенного пользователя

Добрый день! Я просто хочу спросить о разрешении Microsoft Graph Api, здесь слишком много вариантов, но моя цель - иметь полный доступ ТОЛЬКО к определенной учетной записи и читать почтовый ящик, такой как тема, тело электронной почты, вложение и электронная почта отправителя, система будет читать письма из серверной части только с определенной учетной записи. (как базовая авторизация)

Я пытаюсь сделать систему для своей организации. У меня нет полного контроля на портале Azure, поэтому я создаю запрос на разрешение API.

Какой параметр нужно включить в мой запрос на разрешение API?

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

Я видел опцию "Mail.Read" но я думаю, что эта опция предназначена для доступа ко ВСЕМ другим почтовым учетным записям без входа в систему. поправьте меня, если я ошибаюсь, но тогда мне действительно нужно только для одной учетной записи.

заранее спасибо

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как создать простое погодное приложение на Python с API OpenWeatherMap
Как создать простое погодное приложение на Python с API OpenWeatherMap
Этот учебник проведет вас через процесс создания простого погодного приложения с помощью Python и OpenWeatherMap API.
Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
В этом руководстве вы узнаете, как использовать API парсинга квитанций за 5 минут с помощью JavaScript. Eden AI предоставляет простой и удобный для...
0
0
65
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Существует отдельное разрешение Mail.Read как для приложений, так и для делегированных разрешений. Разрешения приложения позволяют приложению читать почту во всех почтовых ящиках без входа пользователя, тогда как делегированные разрешения позволяют приложению читать электронную почту в почтовых ящиках пользователей. Дополнительные сведения см. в документе — https://learn.microsoft.com/ en-us/graph/разрешения-ссылка

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

Надеюсь это поможет

Спасибо

Спасибо за просвещение, я попробую делегировать пользователя

Chi- 02.12.2022 08:35

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

Chi- 02.12.2022 08:54

Делегированное разрешение требует взаимодействия с пользователем. Если вы используете обозреватель графов, вам необходимо один раз войти в обозреватель графов и вызвать API.

vicky kumar 02.12.2022 11:13
Ответ принят как подходящий

Доступ к Graph API обычно осуществляется одним из двух способов:

Разрешения, необходимые для типа доступа, различаются и задокументированы для каждого конечного пункта API в разделах «Разрешения». Для доступа от имени пользователя требуются разрешения «делегированного» типа, а для доступа к приложению требуются разрешения приложения.

Если вы используете «от имени доступа пользователя» (т.е. у вас есть пользователь, передающий аутентификацию, или вы знаете имя пользователя/пароль) и правильные разрешения для конечных точек API, которые вы используете, тогда у вас есть доступ только к данным, которые есть у этого пользователя. доступ тоже (даже если у вас есть такие разрешения, как «.all»).

Если вы используете «доступ к приложению», то обычно вам нужны более высокие разрешения, и вы обычно можете читать все данные пользователя/организации. В некоторых особых случаях вы можете ограничить доступ приложений. Доступ к учетной записи электронной почты оказывается одним. Следуйте инструкциям Ограничить доступ к почтовому ящику, чтобы ограничить определенный идентификатор приложения определенным набором почтовых ящиков.

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

Chi- 02.12.2022 08:31

Да, это возможно, но вам все равно нужно указать имя пользователя/пароль. См. learn.microsoft.com/en-us/dotnet/api/… и aka.ms/msal-net-up

Shane Powell 02.12.2022 20:24

-- цель - иметь полный доступ ТОЛЬКО к конкретному аккаунту и читать почтовый ящик

Могу ли я понять ваше требование, поскольку вы можете захотеть иметь пользователя с ролью администратора, и только этот пользователь может запрашивать информацию о почте для всех других пользователей? Если это так, у вас должно быть всплывающее окно входа, чтобы пользователи могли войти в систему, тогда ваше приложение может проверить пользователя, чтобы проверить, находится ли вошедший пользователь в роли администратора, чтобы определить, разрешено ли этому пользователю запрашивать почту.

Но вы также упомянули «запускать в фоновом режиме процесс входа в систему, без всплывающего окна», поэтому я боюсь, что вы хотите разрешить любому, использующему ваше приложение, запрашивать почту от имени этого конкретного пользователя. Боюсь, в этом сценарии вы можете использовать поток учетных данных клиента напрямую с разрешением приложения.

опишите ваше требование, может помочь спроектировать поток.

Tiny Wang 02.12.2022 10:40

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