使用 ADFS 阻止匿名文件夹访问
Block anonymous folder access with ADFS
用户通过 ADFS 授权 .net mvc web 应用程序。但是一些特殊的文件夹是未经授权就可以访问的。
防止未经授权访问这些文件夹(例如 /bundles)的最佳方法是什么?
是否可以在web.config中配置或者是IIS配置?
根据您的描述,建议您尝试设置特殊文件夹的认证设置。此设置仅适用于该文件夹。然后我们可以禁用该文件夹的匿名身份验证。
更多详情,您可以参考以下步骤:
1.Open IIS 管理控制台和 select 文件夹。
2.Disable匿名认证。
如果您使用 OWIN 中间件配置 ADFS 身份验证,则可以使用以下代码保护所有匿名请求:
app.Use((context, cont) =>
{
if ((context.Authentication.User != null) && (context.Authentication.User.Identity != null) && (context.Authentication.User.Identity.IsAuthenticated))
{
return cont();
}
else
{
var provider = "ADFS Server";
context.Authentication.Challenge(new AuthenticationProperties
{
RedirectUri = "https://youapp-url/"
}, provider);
return Task.Delay(0);
}
});
其中应用程序属于 IAppBuilder 类型,提供者是 AuthenticationType
用户通过 ADFS 授权 .net mvc web 应用程序。但是一些特殊的文件夹是未经授权就可以访问的。
防止未经授权访问这些文件夹(例如 /bundles)的最佳方法是什么?
是否可以在web.config中配置或者是IIS配置?
根据您的描述,建议您尝试设置特殊文件夹的认证设置。此设置仅适用于该文件夹。然后我们可以禁用该文件夹的匿名身份验证。
更多详情,您可以参考以下步骤:
1.Open IIS 管理控制台和 select 文件夹。
2.Disable匿名认证。
如果您使用 OWIN 中间件配置 ADFS 身份验证,则可以使用以下代码保护所有匿名请求:
app.Use((context, cont) =>
{
if ((context.Authentication.User != null) && (context.Authentication.User.Identity != null) && (context.Authentication.User.Identity.IsAuthenticated))
{
return cont();
}
else
{
var provider = "ADFS Server";
context.Authentication.Challenge(new AuthenticationProperties
{
RedirectUri = "https://youapp-url/"
}, provider);
return Task.Delay(0);
}
});
其中应用程序属于 IAppBuilder 类型,提供者是 AuthenticationType