Изменение ключа подписи Azure AD

Ключи входа Azure перенесены на 15 августа 2015 года. Некоторые из моих приложений не настроены для автоматического решения этой проблемы. Я думал, что у меня есть решение, которое использует следующую функцию в Global.asax

protected void RefreshValidationSettings()
{
    string configPath = AppDomain.CurrentDomain.BaseDirectory + "\\" + "Web.config";
    string metadataAddress = ConfigurationManager.AppSettings["ida:FederationMetadataLocation"];
    ValidatingIssuerNameRegistry.WriteToConfig(metadataAddress, configPath);
}

Это работает в режиме отладки на моем рабочем столе, и новые ключи загружаются и записываются в мой web.config.

Когда я загружаю сайт в Azure, я получаю отказ в доступе

Доступ к пути 'E:\sitesroot\0\Web.config' запрещен.

ASP.NET не авторизован для доступа к запрашиваемому ресурсу. Рассмотрите возможность предоставления прав доступа к ресурсу для удостоверения запроса ASP.NET. ASP.NET имеет базовый идентификатор процесса (обычно {MACHINE}\ASPNET в IIS 5 или Network Service в IIS 6 и IIS 7 и настроенный идентификатор пула приложений в IIS 7.5), который используется, если приложение не олицетворяет собой. Если приложение олицетворяет себя с помощью идентификатора, это будет анонимный пользователь (обычно IUSR_MACHINENAME) или аутентифицированный пользователь запроса.

Чтобы предоставить ASP.NET доступ к файлу, щелкните файл правой кнопкой мыши в проводнике, выберите "Свойства" и перейдите на вкладку "Безопасность". Нажмите "Добавить", чтобы добавить соответствующего пользователя или группу. Выделите учетную запись ASP.NET и установите флажки для желаемого доступа.

Странно, хотя это было предложение, учитывая мой Microsoft

2 ответа

Решение

Этот блог подробно рассказывает об этой проблеме. Может быть, это может помочь вам
https://blogs.msdn.microsoft.com/cie/2016/01/15/error-access-to-the-path-esitesroot0web-config-is-denied-when-storing-azure-ads-public-key-in-web-config-of-an-azure-cloud-services-application/

Указание, которое вы указали в разделе "Веб-приложения, защищающие ресурсы и созданные с помощью Visual Studio 2012" документации по ключу подписи, применимо только к приложениям, в которых вы можете изменить файл web.Config во время выполнения.

Веб-приложения Azure не попадают в эту категорию. Помимо проблем с разрешениями, веб-приложения Azure не дают никаких гарантий сохранения базовой виртуальной машины. Это означает, что любые изменения времени выполнения в web.Config могут быть отменены в любой момент.

В целях переноса на 15 августа вы можете запустить приложение локально и просто обновить проверенные в своих приложениях web.Config и настройки Azure Web App. Учитывая, что метаданные уже содержат как текущий ключ, так и ключ, на который Azure AD перейдет 15-го числа, результирующий файл web.Config/settings покроет вас для этого конкретного события.

Однако для правильной поддержки автоматического ролловера лучше всего перейти с вашего приложения на новый стек, такой как промежуточное программное обеспечение Owin.

Другие вопросы по тегам