Skip to content

Commit 4257729

Browse files
authored
fix: Fix XACML attribute id for system users (#1340)
## Description This fixes the XACML attribute id used when construction PDP requests ## Related Issue(s) - N/A ## Verification - [x] **Your** code builds clean without any errors or warnings - [x] Manual testing done (required) - [x] Relevant automated test added (if you find this hard, leave it and we'll help out) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Updated the system user identifier format for improved consistency in authorization requests. - **Bug Fixes** - Adjusted test assertions to align with the new system user identifier format. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 480f5e3 commit 4257729

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

src/Digdir.Domain.Dialogporten.Application/Common/Extensions/ClaimsPrincipalExtensions.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ public static class ClaimsPrincipalExtensions
2121
private const string IdPrefix = "0192";
2222
private const string AltinnClaimPrefix = "urn:altinn:";
2323
private const string IdportenAuthLevelClaim = "acr";
24-
private const string AltinnAutorizationDetailsClaim = "authorization_details";
25-
private const string AttributeIdSystemUser = "urn:altinn:systemuser";
24+
private const string AuthorizationDetailsClaim = "authorization_details";
25+
private const string AuthorizationDetailsType = "urn:altinn:systemuser";
2626
private const string AltinnAuthLevelClaim = "urn:altinn:authlevel";
2727
private const string ScopeClaim = "scope";
2828
private const char ScopeClaimSeparator = ' ';
@@ -85,7 +85,7 @@ private static bool TryGetAuthorizationDetailsClaimValue(this ClaimsPrincipal cl
8585
{
8686
authorizationDetails = null;
8787

88-
if (!claimsPrincipal.TryGetClaimValue(AltinnAutorizationDetailsClaim, out var authDetailsJson))
88+
if (!claimsPrincipal.TryGetClaimValue(AuthorizationDetailsClaim, out var authDetailsJson))
8989
{
9090
return false;
9191
}
@@ -125,7 +125,7 @@ public static bool TryGetSystemUserId(this ClaimsPrincipal claimsPrincipal,
125125
return false;
126126
}
127127

128-
var systemUserDetails = authorizationDetails.FirstOrDefault(x => x.Type == AttributeIdSystemUser);
128+
var systemUserDetails = authorizationDetails.FirstOrDefault(x => x.Type == AuthorizationDetailsType);
129129

130130
if (systemUserDetails?.SystemUserIds is null)
131131
{

src/Digdir.Domain.Dialogporten.Infrastructure/Altinn/Authorization/DecisionRequestHelper.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ internal static class DecisionRequestHelper
1919
private const string AltinnAutorizationDetailsClaim = "authorization_details";
2020
private const string AttributeIdOrg = "urn:altinn:org";
2121
private const string AttributeIdApp = "urn:altinn:app";
22-
private const string AttributeIdSystemUser = "urn:altinn:systemuser";
22+
private const string AttributeIdSystemUser = "urn:altinn:systemuser:uuid";
2323
private const string AttributeIdUserId = "urn:altinn:userid";
2424
private const string ReservedResourcePrefixForApps = "app_";
2525
private const string AttributeIdAppInstance = "urn:altinn:instance-id";

tests/Digdir.Domain.Dialogporten.Infrastructure.Unit.Tests/DecisionRequestHelperTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ public void CreateDialogDetailsRequestShouldReturnCorrectRequestForSystemUser()
152152
var accessSubject = result.Request.AccessSubject.First();
153153
Assert.Equal("s1", accessSubject.Id);
154154
Assert.Contains(accessSubject.Attribute, a => a.AttributeId == "urn:altinn:foo" && a.Value == "bar");
155-
Assert.Contains(accessSubject.Attribute, a => a.AttributeId == "urn:altinn:systemuser" && a.Value == "unique_systemuser_id");
155+
Assert.Contains(accessSubject.Attribute, a => a.AttributeId == "urn:altinn:systemuser:uuid" && a.Value == "unique_systemuser_id");
156156
}
157157

158158
[Fact]

0 commit comments

Comments
 (0)