diff --git a/Source/ProofOfConcept/Program.cs b/Source/ProofOfConcept/Program.cs index 1f902c3..180ec54 100644 --- a/Source/ProofOfConcept/Program.cs +++ b/Source/ProofOfConcept/Program.cs @@ -52,6 +52,7 @@ builder.Services o.Configuration.JwksUri = "https://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3/discovery/thirdparty/keys"; o.Configuration.EndSessionEndpoint = "https://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3/logout"; o.Configuration.UserInfoEndpoint = "https://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3/userinfo"; + o.ConfigurationManager = new TeslaOIDCConfigurationManager(o.MetadataAddress); // Standard OIDC web app settings o.ResponseType = OpenIdConnectResponseType.Code; diff --git a/Source/ProofOfConcept/Utilities/TeslaOIDCConfigurationManager.cs b/Source/ProofOfConcept/Utilities/TeslaOIDCConfigurationManager.cs index cbbc3fa..1a1d67a 100644 --- a/Source/ProofOfConcept/Utilities/TeslaOIDCConfigurationManager.cs +++ b/Source/ProofOfConcept/Utilities/TeslaOIDCConfigurationManager.cs @@ -11,21 +11,24 @@ using Microsoft.IdentityModel.Protocols.OpenIdConnect; public sealed class TeslaOIDCConfigurationManager : IConfigurationManager { - private readonly Func urlOverride; private readonly IConfigurationManager _inner; - public TeslaOIDCConfigurationManager(string metadataAddress, Func urlOverride) + public TeslaOIDCConfigurationManager(string metadataAddress) { - this.urlOverride = urlOverride; - _inner = new ConfigurationManager( - metadataAddress, - new OpenIdConnectConfigurationRetriever()); + _inner = new ConfigurationManager(metadataAddress, new OpenIdConnectConfigurationRetriever()); } public async Task GetConfigurationAsync(CancellationToken cancel) { OpenIdConnectConfiguration? configuration = await _inner.GetConfigurationAsync(cancel); - configuration.TokenEndpoint = urlOverride(configuration.TokenEndpoint); + + string cloudEndpointBase = "https://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3"; + configuration.AuthorizationEndpoint = $"{cloudEndpointBase}/authorize"; + configuration.TokenEndpoint = $"{cloudEndpointBase}/token"; + configuration.JwksUri = $"{cloudEndpointBase}/discovery/thirdparty/keys"; + configuration.EndSessionEndpoint = $"{cloudEndpointBase}/logout"; + configuration.UserInfoEndpoint = $"{cloudEndpointBase}/userinfo"; + return configuration; }