Skip to content

Commit 2ffc513

Browse files
committed
SecurityService Use Issuer for token, if no kid available
1 parent f35e34d commit 2ffc513

File tree

4 files changed

+13
-12
lines changed

4 files changed

+13
-12
lines changed

src/AasSecurity/SecurityHelper.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
using AasxServer;
1515
using Extensions;
16+
using Microsoft.IdentityModel.Tokens;
1617
using System.Security.Cryptography.X509Certificates;
1718

1819
namespace AasSecurity
@@ -93,18 +94,20 @@ private static void ParseSecurityMetamodel()
9394
return null;
9495
}
9596

96-
internal static string? FindServerJwksUrl(string kid, out string domain)
97+
internal static string? FindServerJwksUrl(string kid, string iss, out string domain)
9798
{
9899
domain = "";
99100
if (GlobalSecurityVariables.ServerKid != null)
100101
{
101102
for (var i = 0; i < GlobalSecurityVariables.ServerKid.Count; i++)
102103
{
103-
if (GlobalSecurityVariables.ServerKid[i] == kid)
104+
if ((GlobalSecurityVariables.ServerKid[i] != "" &&
105+
GlobalSecurityVariables.ServerKid[i] == kid)
106+
|| GlobalSecurityVariables.ServerJwksUrl[i] == iss)
104107
{
105108
domain = GlobalSecurityVariables.ServerDomain[i];
106109
return GlobalSecurityVariables.ServerJwksUrl[i];
107-
}
110+
}
108111
}
109112
}
110113

src/AasSecurity/SecurityService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ private string HandleBearerToken(string? bearerToken, ref string user, ref bool
482482
var kid = jwtSecurityToken.Header["kid"].ToString();
483483
if (kid != null)
484484
{
485-
jwksUrl = SecurityHelper.FindServerJwksUrl(kid, out domain);
485+
jwksUrl = SecurityHelper.FindServerJwksUrl(kid, iss, out domain);
486486
}
487487
if (!jwksUrl.IsNullOrEmpty())
488488
{

src/AasSecurity/SecuritySettingsForServerParser.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,9 +168,6 @@ private static void ParseAuthenticationServer(AdminShellPackageEnv env, Submodel
168168
XNamespace ns = "http://uri.etsi.org/02231/v2#"; // <- critical
169169
// (There's also an XMLDSIG signature later in a different ns; we can ignore it.)
170170

171-
XNamespace nsDs = "http://www.w3.org/2000/09/xmldsig#"; // XMLDSIG ns (for <Signature>)
172-
173-
174171
// Navigate to <TrustServiceProviderList>
175172
var tspList = doc
176173
.Root // <TrustServiceStatusList>
@@ -227,8 +224,14 @@ private static void ParseAuthenticationServer(AdminShellPackageEnv env, Submodel
227224
foreach (var provider in providers)
228225
{
229226
var serverName = provider?.Service?.Name;
227+
Console.WriteLine(" serverName: " + serverName);
228+
230229
var domain = provider?.Domain;
230+
Console.WriteLine(" domain: " + domain);
231+
231232
var jwks = provider?.Service?.SupplyPoint;
233+
Console.WriteLine(" jwks: " + jwks);
234+
232235
var kid = "";
233236

234237
GlobalSecurityVariables.ServerCertificates.Add(null);

src/AasxServerBlazor/trustlist.txt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,3 @@ kooy8pxAjM5YUv+GDZdu3ojEdtDtTeZewiAXVCcDeUSLb+q2ogB2GTbYkuBSebhZ
112112
BmNbiHJ541E5aeIXKj1Ksdv6fUgYvzXgASKfjpq3l+bD7XSBbIAp9mMYl/pi0C8D
113113
ejiwt3d6N936huydhEwz
114114
-----END CERTIFICATE-----
115-
116-
# Token exchange
117-
serverName: STS
118-
jwks: https://iam-security-training.com/sts
119-
kid: demo-key

0 commit comments

Comments
 (0)