Использование моей собственной страницы входа для аутентификации в Azure AD с использованием MVC

#asp.net-mvc #azure #model-view-controller #azure-active-directory

#asp.net-mvc #azure #модель-представление-контроллер #azure-active-directory

Вопрос:

Что я хочу: я хочу использовать мою собственную страницу входа, чтобы попытаться пройти аутентификацию в Azure AD, чтобы убедиться, что у них есть доступ, затем там после проверки, существуют ли они в базе данных (таблица AspNetUsers). Это означало бы, что пользователи должны быть зарегистрированы для использования приложения, если они существуют в Azure AD (которое будет синхронизировано с локальной рекламой).

Что я обнаружил: Кажется, что это невозможно и что он всегда будет перенаправляться на azure login screen (если я могу это так назвать) и после аутентификации перенаправит обратно в веб-приложение и выполнит вход. Это правда, или есть способ сделать это так, как я хочу? Я знаю, что это возможно, если веб-приложение находится в той же сети и работает с локальным AD.

В прошлом я использовал Azure ADB2C, используя следующий код, но понятия не имею, как я могу использовать свой собственный экран входа, и в то время я также не мог найти ничего, что позволяло бы мне использовать мой собственный экран входа для передачи таких сведений, как имя пользователя и пароль, в Azure AD для аутентификации:

 public void SignUpSignIn(string type)
        {
            //Logout();
            TempData["SignInOutType"] = type;
            // Use the default policy to process the sign up / sign in flow
            if (!Request.IsAuthenticated)
            {
                try
                {
                    HttpContext.GetOwinContext().Authentication.Challenge();
                    return;
                }
                catch (Exception ex)
                {

                } 
            }

            Response.Redirect("/");

        }
  

Буду признателен за любую помощь! Спасибо!

Редактировать

Я только что заметил, что если вы используете Azure AD Premium 1 или 2, то вы можете создать пользовательскую страницу входа. Кто-нибудь использовал это и как далеко вы можете это настроить? Я видел видео ADB2C, где вы, очевидно, можете указать свою страницу, css и поля, и тогда страница входа будет выглядеть точно так же, как ваша страница — кто-нибудь использовал это раньше?

Ответ №1:

Я бы рекомендовал не пытаться пропустить страницу входа в MS. Есть способ сделать это, но он не будет работать для пользователей с MFA или из встроенной AD и т.д.

Если вы хотите определить подмножество пользователей, имеющих доступ к приложению, я предлагаю вам найти свое приложение в разделе Корпоративные приложения в разделе управление Azure AD на портале Azure. Оттуда вы переходите в Свойства и устанавливаете требуемое назначение пользователя? на Да. Теперь вы можете назначать пользователей на вкладке «Пользователи и группы».

Другой способ — добавить шаг проверки после аутентификации пользователя, свериться с вашей базой данных в это время и при необходимости выполнить проверку подлинности неудачно.

Комментарии:

1. Спасибо за ответ. Я прочитал то же самое о странице входа в MS, но мой клиент указал определенный внешний вид, и я хотел бы сделать все возможное, чтобы придерживаться этого. Хм, я немного разочарован тем, что MS не разрешила что-то подобное. Затем мне просто нужно будет выполнить 2 входа (один для AAD, а другой для веб-приложения) или просто позволить AAD быть единственным входом. По крайней мере, если клиент недоволен, я могу с уверенностью сказать, что это из соображений безопасности. Тем не менее, спасибо за вашу помощь

2. Я только что прочитал кое-что о настройке вашей страницы входа на портале Azure (каталог AD) — я обновил свой пост, пожалуйста, ознакомьтесь с ним и дайте мне знать, был ли у вас какой-либо опыт работы с этим?

3. Это функция фирменного стиля, которая позволяет изменять некоторые изображения и текст на странице входа вашей организации. Это ограничено, но позволяет, например, изменить фон и логотип.

4. Я пометил ваш ответ как принятый, поскольку все, что вы сказали, в точности соответствует результатам моего исследования. Не похоже, что можно сделать что-то еще — Спасибо за попытку помочь.