diff --git a/src/Spid.Cie.OIDC.AspNetCore/Middlewares/RPOpenIdFederationMiddleware.cs b/src/Spid.Cie.OIDC.AspNetCore/Middlewares/RPOpenIdFederationMiddleware.cs index f71367f..54b3f00 100644 --- a/src/Spid.Cie.OIDC.AspNetCore/Middlewares/RPOpenIdFederationMiddleware.cs +++ b/src/Spid.Cie.OIDC.AspNetCore/Middlewares/RPOpenIdFederationMiddleware.cs @@ -132,34 +132,35 @@ private RPEntityConfiguration GetEntityConfiguration(RelyingParty rp, ICryptoSer } private SAEntityConfiguration GetEntityConfiguration(Aggregator agg, ICryptoService cryptoService) - { - return new SAEntityConfiguration() - { - ExpiresOn = DateTimeOffset.UtcNow.AddMinutes(SpidCieConst.EntityConfigurationExpirationInMinutes), - IssuedAt = DateTimeOffset.UtcNow, - AuthorityHints = agg.AuthorityHints, - Issuer = agg.Id, - Subject = agg.Id, - TrustMarks = agg.TrustMarks, - JWKS = cryptoService.GetJWKS(agg.OpenIdFederationCertificates), - Metadata = new SAMetadata_SpidCieOIDCConfiguration() - { - FederationEntity = new SA_SpidCieOIDCFederationEntity() - { - Contacts = agg.Contacts, - HomepageUri = agg.HomepageUri, - LogoUri = agg.LogoUri, - OrganizationName = agg.OrganizationName, - PolicyUri = agg.PolicyUri, - FederationResolveEndpoint = $"{agg.Id.EnsureTrailingSlash()}{SpidCieConst.ResolveEndpointPath}", - FederationFetchEndpoint = $"{agg.Id.EnsureTrailingSlash()}{SpidCieConst.FetchEndpointPath}", - FederationListEndpoint = $"{agg.Id.EnsureTrailingSlash()}{SpidCieConst.ListEndpointPath}", - }, - TrustMarkIssuer = new SA_TrustMarkIssuer() - { - FederationStatusEndpoint = $"{agg.Id.EnsureTrailingSlash()}{SpidCieConst.TrustMarkStatusEndpointPath}" - } - } - }; - } + { + return new SAEntityConfiguration() + { + ExpiresOn = DateTimeOffset.UtcNow.AddMinutes(SpidCieConst.EntityConfigurationExpirationInMinutes), + IssuedAt = DateTimeOffset.UtcNow, + AuthorityHints = agg.AuthorityHints, + Issuer = agg.Id, + Subject = agg.Id, + TrustMarks = agg.TrustMarks, + JWKS = cryptoService.GetJWKS(agg.OpenIdFederationCertificates), + Metadata = new SAMetadata_SpidCieOIDCConfiguration() + { + FederationEntity = new SA_SpidCieOIDCFederationEntity() + { + Contacts = agg.Contacts, + HomepageUri = agg.HomepageUri, + LogoUri = agg.LogoUri, + OrganizationName = agg.OrganizationName, + PolicyUri = agg.PolicyUri, + FederationResolveEndpoint = $"{agg.Id.EnsureTrailingSlash()}{SpidCieConst.ResolveEndpointPath}", + FederationFetchEndpoint = $"{agg.Id.EnsureTrailingSlash()}{SpidCieConst.FetchEndpointPath}", + FederationListEndpoint = $"{agg.Id.EnsureTrailingSlash()}{SpidCieConst.ListEndpointPath}", + FederationTrustMarkStatusEndpoint = $"{agg.Id.EnsureTrailingSlash()}{SpidCieConst.TrustMarkStatusEndpointPath}" + }//, + //TrustMarkIssuer = new SA_TrustMarkIssuer() + //{ + // FederationStatusEndpoint = $"{agg.Id.EnsureTrailingSlash()}{SpidCieConst.TrustMarkStatusEndpointPath}" + //} + } + }; + } } diff --git a/src/Spid.Cie.OIDC.AspNetCore/Models/SpidCieOIDCConfiguration.cs b/src/Spid.Cie.OIDC.AspNetCore/Models/SpidCieOIDCConfiguration.cs index 1f30373..9d55b30 100644 --- a/src/Spid.Cie.OIDC.AspNetCore/Models/SpidCieOIDCConfiguration.cs +++ b/src/Spid.Cie.OIDC.AspNetCore/Models/SpidCieOIDCConfiguration.cs @@ -26,8 +26,8 @@ internal sealed class SAMetadata_SpidCieOIDCConfiguration [ExcludeFromCodeCoverage] internal sealed class SA_TrustMarkIssuer { - [JsonPropertyName("federation_status_endpoint")] - public string FederationStatusEndpoint { get; set; } + //[JsonPropertyName("federation_status_endpoint")] + //public string FederationStatusEndpoint { get; set; } } [ExcludeFromCodeCoverage] @@ -118,6 +118,9 @@ internal sealed class SA_SpidCieOIDCFederationEntity [JsonPropertyName("federation_list_endpoint")] public string FederationListEndpoint { get; set; } + + [JsonPropertyName("federation_trust_mark_status_endpoint")] + public string FederationTrustMarkStatusEndpoint { get; set; } } [ExcludeFromCodeCoverage] diff --git a/src/Spid.Cie.OIDC.AspNetCore/Services/IdentityProvidersHandler.cs b/src/Spid.Cie.OIDC.AspNetCore/Services/IdentityProvidersHandler.cs index 9c33960..1cf44fc 100644 --- a/src/Spid.Cie.OIDC.AspNetCore/Services/IdentityProvidersHandler.cs +++ b/src/Spid.Cie.OIDC.AspNetCore/Services/IdentityProvidersHandler.cs @@ -59,23 +59,23 @@ public async Task> GetIdentityProviders() return result; } - private static IdentityProvider CreateSpidIdentityProvider(IdPEntityConfiguration conf) - => new SpidIdentityProvider() - { - EntityConfiguration = conf, - Uri = conf.Subject ?? string.Empty, - OrganizationLogoUrl = conf.Metadata.OpenIdProvider.AdditionalData["logo_uri"] as string ?? string.Empty, - OrganizationName = conf.Metadata.OpenIdProvider.AdditionalData["organization_name"] as string ?? string.Empty, - SupportedAcrValues = conf.Metadata.OpenIdProvider.AcrValuesSupported.ToList(), - }; + private static IdentityProvider CreateSpidIdentityProvider(IdPEntityConfiguration conf) + => new SpidIdentityProvider() + { + EntityConfiguration = conf, + Uri = conf.Subject ?? string.Empty, + OrganizationLogoUrl = conf.Metadata.OpenIdProvider.AdditionalData.TryGetValue("logo_uri", out object? logoUri) ? logoUri as string ?? string.Empty : string.Empty, + OrganizationName = conf.Metadata.OpenIdProvider.AdditionalData.TryGetValue("organization_name", out object? organizationName) ? organizationName as string ?? string.Empty : string.Empty, + SupportedAcrValues = conf.Metadata.OpenIdProvider.AcrValuesSupported.ToList(), + }; - private static IdentityProvider CreateCieIdentityProvider(IdPEntityConfiguration conf) - => new CieIdentityProvider() - { - EntityConfiguration = conf, - Uri = conf.Subject ?? string.Empty, - OrganizationLogoUrl = conf.Metadata.OpenIdProvider.AdditionalData["logo_uri"] as string ?? string.Empty, - OrganizationName = conf.Metadata.OpenIdProvider.AdditionalData["organization_name"] as string ?? string.Empty, - SupportedAcrValues = conf.Metadata.OpenIdProvider.AcrValuesSupported.ToList(), - }; + private static IdentityProvider CreateCieIdentityProvider(IdPEntityConfiguration conf) + => new CieIdentityProvider() + { + EntityConfiguration = conf, + Uri = conf.Subject ?? string.Empty, + OrganizationLogoUrl = conf.Metadata.OpenIdProvider.AdditionalData.TryGetValue("logo_uri", out object? logoUri) ? logoUri as string ?? string.Empty : string.Empty, + OrganizationName = conf.Metadata.OpenIdProvider.AdditionalData.TryGetValue("organization_name", out object? organizationName) ? organizationName as string ?? string.Empty : string.Empty, + SupportedAcrValues = conf.Metadata.OpenIdProvider.AcrValuesSupported.ToList(), + }; }