public virtual void EnrichWithClaimsParameter(JwsPayload payload, IEnumerable <AuthorizationRequestClaimParameter> requestedClaims, OAuthUser user = null, DateTime?authDateTime = null, AuthorizationRequestClaimTypes claimType = AuthorizationRequestClaimTypes.IdToken) { if (requestedClaims != null) { foreach (var claim in requestedClaims.Where(c => c.Type == claimType)) { if (AllUserClaims.Contains(claim.Name) && user != null) { payload.AddOrReplace(user.Claims.First(c => c.Type == claim.Name)); } else { if (claim.Name == OAuthClaims.AuthenticationTime && authDateTime != null) { payload.Add(OAuthClaims.AuthenticationTime, authDateTime.Value.ConvertToUnixTimestamp()); } } } } }
public static void EnrichWithScopeParameter(JwsPayload payload, IEnumerable <OAuthScope> scopes, OAuthUser user, string subject) { if (scopes != null) { foreach (var scope in scopes) { foreach (var scopeClaim in scope.Claims) { if (scopeClaim.ClaimName == UserClaims.Subject) { payload.Add(UserClaims.Subject, subject); } else { var userClaims = user.Claims.Where(c => c.Type == scopeClaim.ClaimName); payload.AddOrReplace(userClaims); } } } } }