Azure AD签名密钥滚动

本文关键字:密钥 滚动 AD Azure | 更新日期: 2023-09-27 17:59:52

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上的Network Service,以及IIS 7.5上配置的应用程序池标识),如果应用程序未模拟,则使用该标识。如果应用程序正在通过模拟,则标识将是匿名用户(通常为IUSR_MHINENAME)或经过身份验证的请求用户。

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

奇怪的是,尽管这是一个建议,因为我的微软

Azure AD签名密钥滚动

这篇博客文章详细讨论了这个问题。也许这可以帮助你
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/

您在签名密钥文档的"Web应用程序保护资源并使用Visual Studio 2012创建"部分中指出的指南仅适用于可以修改Web的应用程序。运行时配置。

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

为了8月15日的展期,您可以在本地运行应用程序,只需更新您的应用程序的已签入web即可。Config和Azure Web App的设置。假设元数据已经具有当前密钥和Azure AD将于15日滚动到的密钥,则生成的web。配置/设置将为您提供此特定事件的服务。

然而,为了正确地支持自动滚动,您最好的选择是将应用程序迁移到较新的堆栈,例如Owin中间件。