Веб-приложение Azure Active Directory без входа в систему текущего пользователя - PullRequest
0 голосов
/ 11 сентября 2018

Я следую более старому учебнику (https://code.msdn.microsoft.com/Write-Sample-App-for-79e55502), в котором показано, как создать веб-приложение, которое подключается к клиенту Azure Active Directory с помощью ADAL. Существует библиотека классов, содержащая классы DirectoryService, которые, как я считаю, работают в поиске свойств пользователя AD. Я хочу создать метод входа в систему для этого проекта в целях безопасности и иметь возможность определить, какой пользователь вошел в приложение. В настоящее время не существует метода входа, который проверяет подлинность в AD путем ввода имя пользователя / пароль, поэтому я немного озадачен тем, как приложение может извлекать пользовательские свойства, используя только AppId, Domain и AppSecret в Web.config, фактически не заставляя кого-либо входить в систему с помощью своих кредитов AD или перенаправляя на login.microsoftonline / { tenantId} ..... Я не знаю, имею ли я смысл, но я хочу иметь возможность добавить метод входа в систему, чтобы пользователь был вынужден войти в систему, чтобы он получил требования для этого конкретного пользователя, но если я уже использую АДАЛЬ, я могу также включить Оуэна? * 10 03 *

1 Ответ

0 голосов
/ 11 сентября 2018

Ваш вопрос состоит из двух частей -

1.Как это приложение работает сегодня, не требуя от конечных пользователей явного входа в систему

В этом образце используется Client Credential Grant, в котором конечным пользователям не требуется входить в систему, а использовать идентификационные данныесамо приложение, чтобы получить токен аутентификации и использовать его для дальнейших операций.Как вы сами упомянули, ему просто нужны AppId, Domain и App Secret из web.config.Вы можете прочитать все об этом здесь - Client Credentials Grant

Связанный код для приобретения токена доступен в файле MVCDirectoryGraphSample \ Helpers \ MVCGraphServiceHelper.cs

  AuthenticationContext authenticationContext = new AuthenticationContext(authString); 
                ClientCredential clientCred = new ClientCredential(ConfigurationManager.AppSettings["AppPrincipalId"],

2.Как добавить метод входа в систему, чтобы заставить пользователей входить в ваше веб-приложение

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

Точный пример кода для этого доступен здесь - Примеры кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...