Добрый день! Я просто хочу спросить о разрешении Microsoft Graph Api, здесь слишком много вариантов, но моя цель - иметь полный доступ ТОЛЬКО к определенной учетной записи и читать почтовый ящик, такой как тема, тело электронной почты, вложение и электронная почта отправителя, система будет читать письма из серверной части только с определенной учетной записи. (как базовая авторизация)
Я пытаюсь сделать систему для своей организации. У меня нет полного контроля на портале Azure, поэтому я создаю запрос на разрешение API.
Какой параметр нужно включить в мой запрос на разрешение API?
введите здесь описание изображения
Я видел опцию "Mail.Read" но я думаю, что эта опция предназначена для доступа ко ВСЕМ другим почтовым учетным записям без входа в систему. поправьте меня, если я ошибаюсь, но тогда мне действительно нужно только для одной учетной записи.
заранее спасибо
Существует отдельное разрешение Mail.Read как для приложений, так и для делегированных разрешений. Разрешения приложения позволяют приложению читать почту во всех почтовых ящиках без входа пользователя, тогда как делегированные разрешения позволяют приложению читать электронную почту в почтовых ящиках пользователей. Дополнительные сведения см. в документе — https://learn.microsoft.com/ en-us/graph/разрешения-ссылка
В вашем случае вы хотите проверять только свою почту, тогда вам нужно использовать делегированные разрешения, которые не требуют согласия администратора.
Надеюсь это поможет
Спасибо
одна вещь, которую я заметил в делегированном доступе, появляется всплывающее окно входа, в котором мне нужно ввести имя пользователя и пароль. что мне нужно, так это запустить в фоновом режиме процесс входа в систему, без всплывающего окна. это возможно для делегированного?
Делегированное разрешение требует взаимодействия с пользователем. Если вы используете обозреватель графов, вам необходимо один раз войти в обозреватель графов и вызвать API.
Доступ к Graph API обычно осуществляется одним из двух способов:
Разрешения, необходимые для типа доступа, различаются и задокументированы для каждого конечного пункта API в разделах «Разрешения». Для доступа от имени пользователя требуются разрешения «делегированного» типа, а для доступа к приложению требуются разрешения приложения.
Если вы используете «от имени доступа пользователя» (т.е. у вас есть пользователь, передающий аутентификацию, или вы знаете имя пользователя/пароль) и правильные разрешения для конечных точек API, которые вы используете, тогда у вас есть доступ только к данным, которые есть у этого пользователя. доступ тоже (даже если у вас есть такие разрешения, как «.all»).
Если вы используете «доступ к приложению», то обычно вам нужны более высокие разрешения, и вы обычно можете читать все данные пользователя/организации. В некоторых особых случаях вы можете ограничить доступ приложений. Доступ к учетной записи электронной почты оказывается одним. Следуйте инструкциям Ограничить доступ к почтовому ящику, чтобы ограничить определенный идентификатор приложения определенным набором почтовых ящиков.
Спасибо за это, я сейчас пробую делегированный доступ, одна вещь, которую я заметил в делегированном доступе, появляется всплывающее окно с надписью, в котором мне нужно ввести имя пользователя и пароль. что мне нужно, так это запустить в фоновом режиме процесс входа в систему, без всплывающего окна. Это возможно?
Да, это возможно, но вам все равно нужно указать имя пользователя/пароль. См. learn.microsoft.com/en-us/dotnet/api/… и aka.ms/msal-net-up
-- цель - иметь полный доступ ТОЛЬКО к конкретному аккаунту и читать почтовый ящик
Могу ли я понять ваше требование, поскольку вы можете захотеть иметь пользователя с ролью администратора, и только этот пользователь может запрашивать информацию о почте для всех других пользователей? Если это так, у вас должно быть всплывающее окно входа, чтобы пользователи могли войти в систему, тогда ваше приложение может проверить пользователя, чтобы проверить, находится ли вошедший пользователь в роли администратора, чтобы определить, разрешено ли этому пользователю запрашивать почту.
Но вы также упомянули «запускать в фоновом режиме процесс входа в систему, без всплывающего окна», поэтому я боюсь, что вы хотите разрешить любому, использующему ваше приложение, запрашивать почту от имени этого конкретного пользователя. Боюсь, в этом сценарии вы можете использовать поток учетных данных клиента напрямую с разрешением приложения.
опишите ваше требование, может помочь спроектировать поток.
Спасибо за просвещение, я попробую делегировать пользователя