Azure AD签名密钥滚动

时间:2016-08-02 15:22:06

标签: c# asp.net-mvc azure active-directory azure-active-directory

Azure登录密钥将于2015年8月15日滚动。我的某些应用程序未设置为自动处理此问题。我以为我有一个在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具有基本进程标识(IIS 5上通常为{MACHINE} \ ASPNET,IIS 6和IIS 7上为网络服务,IIS 7.5上已配置的应用程序池标识),如果应用程序未模拟,则使用该标识。如果应用程序模拟通过,则标识将是匿名用户(通常为IUSR_MACHINENAME)或经过身份验证的请求用户。

     

要授予对文件的ASP.NET访问权限,请在“文件资源管理器”中右键单击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”以添加适当的用户或组。突出显示ASP.NET帐户,并选中所需访问的框。

奇怪的是,虽然这是我的https://www.polymer-project.org/1.0/toolbox/app-layout

的建议

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您在"Web applications protecting resources and created with Visual Studio 2012" section of the Signing Key Documentation中指出的指南仅适用于您可以在运行时修改web.Config的应用程序。

Azure Web应用程序不属于此类别。除了您面临的权限问题之外,Azure Web应用程序无法保证底层VM的持久性。这意味着任何运行时都可以更改为web.Config可以在任何时候撤消。

出于8月15日翻转的目的,您可以在本地运行应用程序,只需更新应用程序的已登录web.Config和Azure Web App的设置。鉴于元数据已经同时具有当前密钥和Azure AD将在15日滚动到的密钥,因此生成的web.Config / settings将覆盖此特定事件。

但是,要正确支持自动翻转,最好的办法是将应用程序迁移到较新的堆栈,例如Owin中间件。