У меня есть существующее веб-приложение asp.net core 2.0, которое использует локальную базу данных для хранения логинов (отдельных учетных записей пользователей). Однако теперь я хочу спрятать страницу приложений за аутентификацией AD.
Я создал другое тестовое приложение, выбрав «рабочие или школьные учетные записи», чтобы увидеть, как это выглядит, используя правильный домен. Это новое приложение позволяет мне сразу войти в систему с моей рабочей учетной записью AD, и поэтому я взял весь соответствующий код из этого нового тестового приложения и поместил его в мое старое приложение, чтобы он направлялся на страницу входа в Microsoft, когда вы нажмите на правильную ссылку на страницу. Кажется, все работает и подключено правильно, за исключением того, что после входа в систему я получаю это сообщение:
AADSTS50011: URL-адрес ответа, указанный в запросе, не соответствует URL-адресам ответа, настроенным для приложения: '[ClientId, который я добавил в appsettings]'
Я скопировал также раздел appsettings из тестового проекта для конфигурации AzureAd, но, конечно, мне нужен ClientId для моего уже существующего проекта, а не из тестового проекта. Соответствующий раздел appsettings выглядит так:
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"Domain": "XXXX.com",
"TenantId": "XXXXXXXXXXXXXXXXX", //this seems to be the same everywhere and is fine?
"ClientId": "XXXXXXXXXXXXXXXXX", //this is app specific and generated automatically when the app is created?
"CallbackPath": "/signin-oidc"
},
Мой вопрос: где я могу найти этот ClientId для моего существующего приложения? Каждый ответ на этот вопрос, который я смотрю, говорит, что вы должны его получить или настроить в Azure, но на самом деле мы не используем Azure, вместо этого ClientId генерируется автоматически Visual Studio при создании приложения (он все еще работает для входа в систему на тестовое приложение, так что я думаю, мне не нужна лазурь для этого?). Где я могу получить ClientId для существующего приложения? Или как я могу добавить его в существующее приложение? Или создать тот, который будет принят?
Спасибо
РЕДАКТИРОВАТЬ (добавлено из комментария ниже):
Спасибо за ваш ответ. Я вошел в лазурный портал. Тестовое приложение, которое я сделал, было там, но не новое приложение, которое было сначала сделано с локальными учетными записями. Итак, я добавил новое приложение, взял его сгенерированный applicationid и поместил его в appsettings как идентификатор клиента. Я также сгенерировал ключ для приложения на портале Azure, но я не уверен, что делать с этим ключом. Теперь кажется, что я могу успешно пройти аутентификацию, так как после входа в систему он дает мне опцию «Вы хотите остаться в системе ...», но затем при перенаправлении он просто работает… неопределенно. думаю, что проблема сейчас с перенаправлением.
URL-адрес ответа на портале Azure просто
https://localhost:44320/signin-oidc
Я просто поместил это там, чтобы имитировать работающее тестовое приложение, которое имеет то же самое, но другое число, (это число соответствует номеру локального хоста, который новое приложение использует при разработке в настройках запуска). В c # в AccountController я перепробовал много вещей, в том числе по умолчанию
var redirectUrl = Url.Action(nameof(HomeController.Index), "Home");
но перенаправление всегда застревает на Работе ...
Кроме того, как ни странно, теперь каждая ссылка на сайте перенаправляет на имя входа Azure, а не только на одну ссылку, которую я изначально настроил, чтобы перенаправить на действие входа на контроллере аккаунта для Azure, что странно, а не нужное мне поведение. Как мне это исправить?
спасибо