Skip to content

Commit 226a04d

Browse files
feature(#20): this commit introduces support for multiple audiences
1 parent fdf3911 commit 226a04d

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

Applications/Backend/Source/HttpsRichardy.Federation.Infrastructure/Security/ClaimsBuilder.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,16 @@ public ClaimsBuilder WithPermissions(IEnumerable<Permission> permissions)
3939
return this;
4040
}
4141

42+
public ClaimsBuilder WithAudiences(IEnumerable<string> audiences)
43+
{
44+
foreach (var audience in audiences)
45+
{
46+
_claims.Add(new Claim(JwtRegisteredClaimNames.Aud, audience));
47+
}
48+
49+
return this;
50+
}
51+
4252
public ClaimsBuilder WithClaim(string type, string value)
4353
{
4454
_claims.Add(new Claim(type, value));

Applications/Backend/Source/HttpsRichardy.Federation.Infrastructure/Security/JwtSecurityTokenService.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,11 @@ public async Task<Result<SecurityToken>> GenerateAccessTokenAsync(Client client,
7171
var realm = realmProvider.GetCurrentRealm();
7272

7373
var claims = new ClaimsBuilder()
74+
.WithSubject(client.Id)
7475
.WithRealmName(realm.Name)
7576
.WithClientId(client.Id)
7677
.WithPermissions(client.Permissions)
78+
.WithAudiences(client.Audiences.Select(audience => audience.Value))
7779
.Build();
7880

7981
var privateKey = await GetPrivateKeyAsync(cancellation);

0 commit comments

Comments
 (0)