Подключение к Azure для создания регистрации приложения


Я пытаюсь написать консольное приложение C#, которое зарегистрирует приложение в Azure Active Directory. Он должен работать так же, как мастер создания проекта веб-приложения в VS 2013 при изменении проверки подлинности и выборе учетных записей организаций в Azure.

Следуя трассировке fiddler, я вижу, что он аутентифицирует пользователя с помощью wsfederation и токена oauth2, а затем использует graph.windows.net graph api для настройки службы AAD directoryObjects принципал и применение.

Я пытался использовать пример приложения Graph API, но оно требует, чтобы приложение было зарегистрировано первым, чтобы у меня был clientId (идентификатор приложения) и пароль (ключ) для отправки запроса на получение маркера с помощью библиотеки аутентификации Windows Azure AD для .NET .

Я пробовал использовать кучу различных API Azure, но все они имеют мою проблему курицы и яйца, я хочу использовать незарегистрированное клиентское приложение для регистрации приложения в АВА. Мне нужно избегатьнастройки аутентификации и авторизации приложений для Graph API , чтобы у пользователя не было ручных шагов.

Знает ли кто-нибудь, как Visual Studio делает это, используя только имя пользователя с приглашением браузера или если есть стандартный идентификатор приложения и пароль, которые можно использовать для доступа к API graph, например, стандартный URL-адрес входа, https://login.windows.net/common ? Некоторые примеры C# были бы весьма признательны.

Это post создает приложение, но требует clientId и пароль, которых у меня, по-моему, нет.

1 2

1 ответ:

Вы не можете зарегистрировать новое приложение с помощью Graph API от незарегистрированного клиента. Единственная причина, по которой поток VS2013 работает, заключается в том, что VS2013 уже зарегистрирован особым образом в Azure AD-это приложение первого лица и имеет уникальные разрешения. На мой скрипач трассировки, VS2013 использует идентификатор клиента 872cd9fa-d31f-45e0-9eab-6e460a02d1f1. Технически вы можете использовать этот идентификатор клиента и URI перенаправления VS2013 для инициализации входа в Azure AD. Это все еще включает в себя взаимодействие с пользователем (пользователь должен пройти аутентификацию через всплывающее окно браузера), так что это не соответствует вашим требованиям "никаких ручных шагов", но это несколько полезно для понимания потоков протокола и того, как работает регистрация.

Суть в том, что если вы хотите вызвать Graph API без взаимодействия с пользователем (поток учетных данных клиента), клиент должен быть зарегистрирован с соответствующими разрешениями приложения.