Использование MSAL в межмашинном сценарии в качестве CSP

Я пытаюсь использовать GraphAPI, используя официальную библиотеку nuget (https://github.com/microsoftgraph/msgraph-sdk-dotnet). Однако процесс аутентификации не тривиален и не очень хорошо документирован.

Я являюсь партнером CSP в межмашинном сценарии, поэтому нет приложения пользовательского интерфейса с URL-адресом перенаправления, где пользователь вручную вводит свои учетные данные для согласия на доступ. Но, кажется, это уникальный сценарий, хорошо задокументированный или доступный в найденных мной образцах... Даже официальная документация CSP не ясна (https://developer.microsoft.com/en-us/graph/docs/concepts/auth_cloudsolutionprovider).

Раньше я использовал многие другие API в производстве (и в среде TIP) в качестве CSP, например MSOL, CrestAPI и AzureGraph, поэтому вся настройка и регистрация приложения не представляет проблемы.

Можно ли использовать MSAL в качестве CSP в межмашинном сценарии? Есть ли какая-либо документация или образец для моего варианта использования?

ОБНОВЛЕНИЕ

Я думаю, что я на правильном пути.

Во-первых, мне пришлось зарегистрировать свое приложение на apps.dev.microsoft.com. Мои приложения ранее были зарегистрированы на сайте portal.azure.com. Похоже, у AzureAD и Graph разные требования к тому, где должны быть зарегистрированы приложения.

Во-вторых, я использую образец здесь: https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2 .

В-третьих, я могу вызывать Graph API, когда предоставляю свой CSP TenantId. Однако, когда я пытаюсь вызвать Graph API, используя TenantId одного из арендаторов, которыми я управляю, я получаю:

{  "error": {
"code": "Authorization_IdentityNotFound",
"message": "The identity of the calling application could not be established.",
"innerError": {
  "request-id": "7cab3137-b3e7-4622-9123-e47f2c018c56",
  "date": "2017-09-04T14:48:34"
} } }

(У меня не может быть страницы согласия в моем случае использования, поэтому я попытался предварительно дать согласие на мое приложение для всех потребителей, используя: https://developer.microsoft.com/en-us/graph/docs/concepts/auth_cloudsolutionprovider)


person Normand Bedard    schedule 01.09.2017    source источник


Ответы (1)


Вы можете использовать MSAL для выполнения проверки подлинности, необходимой для Graph SDK. Существует несколько фрагментов кода использования пакета SDK для .NET Graph с MSAL, но ваш лучше всего использовать пример подключения, который показывает это в работающем приложении.

Полный пошаговый пример того, как использовать MSAL и что делает библиотека, см. в разделе Пример рабочего стола MSAL .NET.

person Daniel Dobalian    schedule 01.09.2017
comment
При запуске приложения в Connect Sample оно перенаправляет меня на login.microsoftonline.com для аутентификации, что меня не устраивает. Мой вариант использования вообще не включает пользователя. Это сценарий от машины к машине. Причина этого в том, что я являюсь партнером CSP (торговым посредником Microsoft), а не арендатором, управляющим своими пользователями через веб-приложение. Представьте себе задание синхронизации, выполняемое ночью и выполняющее некоторую работу с несколькими арендаторами, которыми я управляю как партнер CSP. - person Normand Bedard; 04.09.2017
comment
Думаю, это мне поможет: github.com/Azure-Samples/active -directory-dotnet-daemon-v2 - person Normand Bedard; 04.09.2017
comment
Да, образец демона не будет иметь взаимодействия с конечным пользователем и, вероятно, будет лучшим примером для вашего случая! Образцы, на которые я ссылаюсь, представляют собой потоки пользователей, но они могут помочь вам сориентироваться в MSAL. - person Daniel Dobalian; 06.09.2017