Skip to content

Commit 40b03dd

Browse files
committed
Update security headers
1 parent 712dac5 commit 40b03dd

File tree

3 files changed

+13
-25
lines changed

3 files changed

+13
-25
lines changed

server/BffMicrosoftEntraID.Server.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
<PackageReference Include="Microsoft.Identity.Web.GraphServiceClient" Version="3.2.1" />
1414
<PackageReference Include="Microsoft.Identity.Web" Version="3.2.1" />
1515
<PackageReference Include="Microsoft.Identity.Web.UI" Version="3.2.1" />
16-
<PackageReference Include="NetEscapades.AspNetCore.SecurityHeaders" Version="0.24.0" />
17-
<PackageReference Include="NetEscapades.AspNetCore.SecurityHeaders.TagHelpers" Version="0.24.0" />
16+
<PackageReference Include="NetEscapades.AspNetCore.SecurityHeaders" Version="1.0.0-preview.1" />
17+
<PackageReference Include="NetEscapades.AspNetCore.SecurityHeaders.TagHelpers" Version="1.0.0-preview.1" />
1818
<PackageReference Include="Yarp.ReverseProxy" Version="2.2.0" />
1919
</ItemGroup>
2020

server/Program.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Microsoft.Identity.Web;
66
using Microsoft.Identity.Web.UI;
77
using Microsoft.IdentityModel.Logging;
8+
using NetEscapades.AspNetCore.SecurityHeaders.Infrastructure;
89

910
var builder = WebApplication.CreateBuilder(args);
1011

@@ -17,6 +18,13 @@
1718
var configuration = builder.Configuration;
1819
var env = builder.Environment;
1920

21+
services.AddSecurityHeaderPolicies()
22+
.SetPolicySelector((PolicySelectorContext ctx) =>
23+
{
24+
return SecurityHeadersDefinitions.GetHeaderPolicyCollection(env.IsDevelopment(),
25+
configuration["MicrosoftEntraID:Instance"]);
26+
});
27+
2028
services.AddScoped<MsGraphService>();
2129
services.AddScoped<CaeClaimsChallengeService>();
2230

@@ -74,9 +82,7 @@
7482
app.UseExceptionHandler("/Error");
7583
}
7684

77-
app.UseSecurityHeaders(
78-
SecurityHeadersDefinitions.GetHeaderPolicyCollection(env.IsDevelopment(),
79-
configuration["MicrosoftEntraID:Instance"]));
85+
app.UseSecurityHeaders();
8086

8187
app.UseHttpsRedirection();
8288

server/SecurityHeadersDefinitions.cs

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,37 +34,19 @@ public static HeaderPolicyCollection GetHeaderPolicyCollection(bool isDev, strin
3434
{
3535
builder.AddStyleSrc().WithNonce().UnsafeInline();
3636
}
37-
37+
3838

3939
builder.AddScriptSrc().WithNonce().UnsafeInline();
4040
})
4141
.RemoveServerHeader()
42-
.AddPermissionsPolicy(builder =>
43-
{
44-
builder.AddAccelerometer().None();
45-
builder.AddAutoplay().None();
46-
builder.AddCamera().None();
47-
builder.AddEncryptedMedia().None();
48-
builder.AddFullscreen().All();
49-
builder.AddGeolocation().None();
50-
builder.AddGyroscope().None();
51-
builder.AddMagnetometer().None();
52-
builder.AddMicrophone().None();
53-
builder.AddMidi().None();
54-
builder.AddPayment().None();
55-
builder.AddPictureInPicture().None();
56-
builder.AddSyncXHR().None();
57-
builder.AddUsb().None();
58-
});
42+
.AddPermissionsPolicyWithDefaultSecureDirectives();
5943

6044
if (!isDev)
6145
{
6246
// maxage = one year in seconds
6347
policy.AddStrictTransportSecurityMaxAgeIncludeSubDomains(maxAgeInSeconds: 60 * 60 * 24 * 365);
6448
}
6549

66-
policy.ApplyDocumentHeadersToAllResponses();
67-
6850
return policy;
6951
}
7052
}

0 commit comments

Comments
 (0)