Как проверить Azure Active Directory локально (ответные URL-адреса) - PullRequest
0 голосов
/ 23 мая 2018

Я добавил тестовый .NET Web Api в службу приложений Azure и включил регистрацию приложений в Azure Active Directory.Затем я отправился на локальное тестирование и заметил, что Azure хочет использовать URL-адрес ответа при регистрации приложения после входа в систему.URL-адрес ответа при регистрации приложения - это URL-адрес службы приложения.Мой локальный экземпляр будет выглядеть примерно так: https://localhost:44377/. Как вы должны тестировать изменения локально после первоначального развертывания в Azure?Все, что я могу сделать, - это создать еще одну регистрацию приложения для тестирования, использовать URL-адрес моего локального хоста, а затем обновить мой web.config, чтобы он указывал на регистрацию этого приложения разработки.Затем перед повторной публикацией обновите файл web.config до регистрации другого приложения.

Ниже приведен код, который я использовал для аутентификации, основанный на стандартном шаблоне из простого проекта MVC.Регистрация значений приложения используется для URL перенаправления, но, может быть, я должен переопределить эти значения ниже во время тестирования?

      public class AccountController : Controller
{
    public void SignIn()
    {
        // Send an OpenID Connect sign-in request.
        if (!Request.IsAuthenticated)
        {
            HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" },
                OpenIdConnectAuthenticationDefaults.AuthenticationType);
        }
    }

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Если вы хотите выполнить локальное тестирование, просто добавьте localhost в качестве URL-адреса ответа и убедитесь, что в файле web.config также указан localhost.

Пожалуйста, обратитесь к этому хранилищу, если вы еще этого не сделали: https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect

0 голосов
/ 24 мая 2018

Вы можете иметь несколько URL-адресов ответов, указав, какой из них вы хотите использовать в запросе на аутентификацию.Вы делаете это при настройке вашей аутентификации в Startup.cs.Вам необходимо добавить RedirectUri к вашему OpenIdConnectAuthenticationOptions.Notifications.RedirectToIdentityProvider

var openIdOptions = new OpenIdConnectAuthenticationOptions
{
  //...
  Notifications = new OpenIdConnectAuthenticationNotifications
  {
    RedirectToIdentityProvider = (context) =>
    {
      context.ProtocolMessage.RedirectUri = "<current reply uri>";

      return Task.FromResult(0);
    }
  }
  // ...
};

Этот URI ответа может быть извлечен из вашего web.config или сгенерирован динамически с помощью context.Request.

Если вы хотите использовать другое приложение AD после запуска в производство, вы можете иметь два приложения и поместить идентификатор клиента и его секрет в web.config.

...