Теперь у меня уже есть токен, и могу ли я использовать этот токен для вызова Microsoft graph API?
Нет. Токен для вашего API. Вам нужно получить другой токен для MS Graph API, используя, например, библиотеку MSAL (https://www.nuget.org/packages/Microsoft.Identity.Client/).
Теперь я пытаюсь получить текущую авторизацию в группе пользователей, поэтому при добавлении У Microsoft graph у нас есть два варианта делегированного разрешения и разрешения приложения. делегированное разрешение -> Используется для вызова API графа от имени пользователя. Разрешение приложения -> Само приложение вызывает API графа Microsoft. Использование потока учетных данных клиента Он генерирует токен и передает его в граф Microsoft и проверяет подлинность.
В моем случае я зарегистрировался в пользовательском объявлении и пытаюсь попасть в граф Microsoft. Так какой же мне следует использовать делегированное разрешение или разрешение на применение?
Это хороший вопрос. Скорее всего, будет работать. Я склонен отдавать предпочтение делегированным разрешениям, когда это возможно, поскольку это ограничивает область, к которой моё приложение может получить доступ.
Разрешения приложений, как правило, проще в использовании, но предоставляют доступ к вашему владельцу приложения. Поскольку токен, полученный с разрешениями приложения, является одним и тем же независимо от того, какой пользователь вызывает ваш API, он может использоваться совместно и использоваться в различных запросах.
Делегированные разрешения требуют немного больше усилий для использования. В этом случае вам нужно будет обменять токен доступа, полученный вашим API, на токен MS Graph API. Но этот токен будет указан c для этого пользователя, поэтому они не могут быть общими.
Если вы используете разрешения приложения, вы можете получить токен, используя области ["https://graph.microsoft.com/.default"]
и идентификатор вашего клиента + секретный / сертификат .
С делегированными разрешениями вы можете использовать те же области. .default
будет использовать разрешения, назначенные приложению при регистрации. Но вам также нужно будет включить токен доступа, полученный вашим API.
Еще одна проблема, с которой вы можете столкнуться с делегированными разрешениями, заключается в том, что если пользователь не сможет получить доступ к данным, к которым вы пытаетесь получить доступ, он потерпит неудачу. Это довольно приятное свойство, так как вы не можете получить данные, которые пользователь не может получить.
Здесь нет лучшего варианта. Разрешения приложений определенно проще. И если это приложение используется только в вашей организации и со стороны администраторов нормально, что ваше приложение может получить доступ к любым группам пользователей, то это может быть то, с чем я бы go.
Но если нужны разрешения быть ограниченным, go с делегированным.