fix(auth): MxGateway 1.2 review fixes — group-claim doc, dedup LdapOptions, 0.1.1 pin
This commit is contained in:
@@ -72,6 +72,23 @@ public sealed class DashboardAuthenticator(
|
||||
roles));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Builds the dashboard <see cref="ClaimsPrincipal"/> from the LDAP outcome.
|
||||
/// </summary>
|
||||
/// <param name="username">The (trimmed) login name → <see cref="ClaimTypes.NameIdentifier"/>.</param>
|
||||
/// <param name="displayName">The user's display name → <see cref="ClaimTypes.Name"/>.</param>
|
||||
/// <param name="groups">
|
||||
/// The user's LDAP groups, as returned by <see cref="ILdapAuthService"/>. NOTE
|
||||
/// (review C1): these are <b>already-normalized short RDN names</b> (e.g.
|
||||
/// <c>GwAdmin</c>), not raw distinguished names. The shared
|
||||
/// <c>ZB.MOM.WW.Auth.Ldap</c> provider strips each group DN to its first RDN
|
||||
/// value before returning it, so the <see cref="DashboardAuthenticationDefaults.LdapGroupClaimType"/>
|
||||
/// claim carries the short name. This differs from the pre-cutover behaviour,
|
||||
/// which surfaced the raw <c>memberOf</c> values (full DNs) on the claim; the
|
||||
/// claim is informational only (no policy or UI reads its value — authorization
|
||||
/// is role-based), so the shape change is non-breaking for dashboard consumers.
|
||||
/// </param>
|
||||
/// <param name="roles">The dashboard roles resolved from <paramref name="groups"/>.</param>
|
||||
private static ClaimsPrincipal CreatePrincipal(
|
||||
string username,
|
||||
string displayName,
|
||||
@@ -85,6 +102,8 @@ public sealed class DashboardAuthenticator(
|
||||
];
|
||||
|
||||
claims.AddRange(roles.Select(role => new Claim(ClaimTypes.Role, role)));
|
||||
// Groups are short RDN names from ILdapAuthService (see param doc above), so
|
||||
// this claim value is the short group name, not the original DN.
|
||||
claims.AddRange(groups.Select(group => new Claim(
|
||||
DashboardAuthenticationDefaults.LdapGroupClaimType,
|
||||
group)));
|
||||
|
||||
Reference in New Issue
Block a user