public virtual object Clone() { return(new OAuthClient { ClientId = ClientId, ClientNames = ClientNames == null ? new List <OAuthTranslation>() : ClientNames.Select(c => (OAuthTranslation)c.Clone()).ToList(), ClientUris = ClientUris == null ? new List <OAuthTranslation>() : ClientUris.Select(c => (OAuthTranslation)c.Clone()).ToList(), LogoUris = LogoUris == null ? new List <OAuthTranslation>() : LogoUris.Select(c => (OAuthTranslation)c.Clone()).ToList(), PolicyUris = PolicyUris == null ? new List <OAuthTranslation>() : PolicyUris.Select(c => (OAuthTranslation)c.Clone()).ToList(), TosUris = TosUris == null ? new List <OAuthTranslation>() : TosUris.Select(c => (OAuthTranslation)c.Clone()).ToList(), CreateDateTime = CreateDateTime, JwksUri = JwksUri, RefreshTokenExpirationTimeInSeconds = RefreshTokenExpirationTimeInSeconds, UpdateDateTime = UpdateDateTime, TokenEndPointAuthMethod = TokenEndPointAuthMethod, TokenExpirationTimeInSeconds = TokenExpirationTimeInSeconds, Secrets = Secrets == null ? new List <ClientSecret>() : Secrets.Select(s => (ClientSecret)s.Clone()).ToList(), AllowedScopes = AllowedScopes == null ? new List <OAuthScope>() : AllowedScopes.Select(s => (OAuthScope)s.Clone()).ToList(), JsonWebKeys = JsonWebKeys == null ? new List <JsonWebKey>() : JsonWebKeys.Select(j => (JsonWebKey)j.Clone()).ToList(), GrantTypes = GrantTypes.ToList(), RedirectionUrls = RedirectionUrls.ToList(), PreferredTokenProfile = PreferredTokenProfile, TokenEncryptedResponseAlg = TokenEncryptedResponseAlg, TokenEncryptedResponseEnc = TokenEncryptedResponseEnc, TokenSignedResponseAlg = TokenSignedResponseAlg, ResponseTypes = ResponseTypes.ToList(), Contacts = Contacts.ToList(), SoftwareId = SoftwareId, SoftwareVersion = SoftwareVersion, PostLogoutRedirectUris = PostLogoutRedirectUris.ToList() }); }
public async Task <IEnumerable <JsonWebKey> > ResolveJsonWebKeys(IHttpClientFactory httpClientFactory) { if (JsonWebKeys != null && JsonWebKeys.Any()) { return(JsonWebKeys); } Uri uri = null; if (string.IsNullOrWhiteSpace(JwksUri) || !Uri.TryCreate(JwksUri, UriKind.Absolute, out uri)) { return(new JsonWebKey[0]); } using (var httpClient = httpClientFactory.GetHttpClient()) { httpClient.BaseAddress = uri; var request = await httpClient.GetAsync(uri.AbsoluteUri).ConfigureAwait(false); request.EnsureSuccessStatusCode(); var json = await request.Content.ReadAsStringAsync().ConfigureAwait(false); var keysJson = JObject.Parse(json)["keys"].ToString(); var jsonWebKeys = JsonConvert.DeserializeObject <JArray>(keysJson).Select(k => JsonWebKey.Deserialize(k.ToString())); return(jsonWebKeys); } }
public void ConfigureServices(IServiceCollection services) { var isSqlServer = bool.Parse(Configuration["isSqlServer"]); var isSqlLite = bool.Parse(Configuration["isSqlLite"]); // Add the dependencies needed to enable CORS services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader())); var connectionString = Configuration["Data:DefaultConnection:ConnectionString"]; // Configure the rate limitation services.Configure <RateLimitationOptions>(opt => { opt.IsEnabled = true; opt.RateLimitationElements = new List <RateLimitationElement> { new RateLimitationElement { Name = "PostToken", NumberOfRequests = 20, SlidingTime = 2000 } }; opt.MemoryCache = new MemoryCache(new MemoryCacheOptions()); }); var dataSourceType = DataSourceTypes.InMemory; if (isSqlServer) { dataSourceType = DataSourceTypes.SqlServer; } else if (isSqlLite) { dataSourceType = DataSourceTypes.SqlLite; } // Configure Simple identity server services.AddSimpleIdentityServer(new DataSourceOptions { DataSourceType = dataSourceType, ConnectionString = connectionString, Clients = Clients.Get(), JsonWebKeys = JsonWebKeys.Get(), ResourceOwners = ResourceOwners.Get(), Scopes = Scopes.Get(), Translations = Translations.Get() }, _swaggerOptions); services.AddLogging(); }
public override object Clone() { return(new OpenIdClient { ClientId = ClientId, ClientNames = ClientNames == null ? new List <OAuthTranslation>() : ClientNames.Select(c => (OAuthTranslation)c.Clone()).ToList(), ClientUris = ClientUris == null ? new List <OAuthTranslation>() : ClientUris.Select(c => (OAuthTranslation)c.Clone()).ToList(), LogoUris = LogoUris == null ? new List <OAuthTranslation>() : LogoUris.Select(c => (OAuthTranslation)c.Clone()).ToList(), PolicyUris = PolicyUris == null ? new List <OAuthTranslation>() : PolicyUris.Select(c => (OAuthTranslation)c.Clone()).ToList(), TosUris = TosUris == null ? new List <OAuthTranslation>() : TosUris.Select(c => (OAuthTranslation)c.Clone()).ToList(), CreateDateTime = CreateDateTime, JwksUri = JwksUri, RefreshTokenExpirationTimeInSeconds = RefreshTokenExpirationTimeInSeconds, UpdateDateTime = UpdateDateTime, TokenEndPointAuthMethod = TokenEndPointAuthMethod, TokenExpirationTimeInSeconds = TokenExpirationTimeInSeconds, Secrets = Secrets == null ? new List <ClientSecret>() : Secrets.Select(s => (ClientSecret)s.Clone()).ToList(), AllowedScopes = AllowedScopes == null ? new List <OpenIdScope>() : AllowedScopes.Select(s => (OpenIdScope)s.Clone()).ToList(), JsonWebKeys = JsonWebKeys == null ? new List <JsonWebKey>() : JsonWebKeys.Select(j => (JsonWebKey)j.Clone()).ToList(), GrantTypes = GrantTypes.ToList(), RedirectionUrls = RedirectionUrls.ToList(), PreferredTokenProfile = PreferredTokenProfile, TokenEncryptedResponseAlg = TokenEncryptedResponseAlg, TokenEncryptedResponseEnc = TokenEncryptedResponseEnc, TokenSignedResponseAlg = TokenSignedResponseAlg, ResponseTypes = ResponseTypes.ToList(), Contacts = Contacts.ToList(), SoftwareId = SoftwareId, SoftwareVersion = SoftwareVersion, ApplicationType = ApplicationType, DefaultAcrValues = DefaultAcrValues.ToList(), DefaultMaxAge = DefaultMaxAge, IdTokenEncryptedResponseAlg = IdTokenEncryptedResponseAlg, IdTokenEncryptedResponseEnc = IdTokenEncryptedResponseEnc, IdTokenSignedResponseAlg = IdTokenSignedResponseAlg, PairWiseIdentifierSalt = PairWiseIdentifierSalt, RequestObjectEncryptionAlg = RequestObjectEncryptionAlg, RequestObjectEncryptionEnc = RequestObjectEncryptionEnc, RequestObjectSigningAlg = RequestObjectSigningAlg, RequireAuthTime = RequireAuthTime, SectorIdentifierUri = SectorIdentifierUri, SubjectType = SubjectType, UserInfoEncryptedResponseAlg = UserInfoEncryptedResponseAlg, UserInfoEncryptedResponseEnc = UserInfoEncryptedResponseEnc, UserInfoSignedResponseAlg = UserInfoSignedResponseAlg, RegistrationAccessToken = RegistrationAccessToken, PostLogoutRedirectUris = PostLogoutRedirectUris, InitiateLoginUri = InitiateLoginUri }); }
private void SerializeJwks(JObject jObject, string propertyName, JsonWebKeys jsonWebKeys) { var array = new JArray(); foreach (var key in jsonWebKeys.Keys) { array.Add(SerializedProperties(key)); } var j = new JObject { new JProperty("keys", array) }; jObject.Add(new JProperty(propertyName, j)); }
public object Clone() { return(new OAuthClient { ClientId = ClientId, Translations = Translations == null ? new List <OAuthClientTranslation>() : Translations.Select(t => (OAuthClientTranslation)t.Clone()).ToList(), CreateDateTime = CreateDateTime, JwksUri = JwksUri, RefreshTokenExpirationTimeInSeconds = RefreshTokenExpirationTimeInSeconds, UpdateDateTime = UpdateDateTime, TokenEndPointAuthMethod = TokenEndPointAuthMethod, TokenExpirationTimeInSeconds = TokenExpirationTimeInSeconds, ClientSecret = ClientSecret, ClientSecretExpirationTime = ClientSecretExpirationTime, AllowedScopes = AllowedScopes == null ? new List <OAuthScope>() : AllowedScopes.Select(s => (OAuthScope)s.Clone()).ToList(), JsonWebKeys = JsonWebKeys == null ? new List <JsonWebKey>() : JsonWebKeys.Select(j => (JsonWebKey)j.Clone()).ToList(), GrantTypes = GrantTypes.ToList(), RedirectionUrls = RedirectionUrls.ToList(), PreferredTokenProfile = PreferredTokenProfile, TokenEncryptedResponseAlg = TokenEncryptedResponseAlg, TokenEncryptedResponseEnc = TokenEncryptedResponseEnc, TokenSignedResponseAlg = TokenSignedResponseAlg, ResponseTypes = ResponseTypes.ToList(), Contacts = Contacts.ToList(), SoftwareId = SoftwareId, SoftwareVersion = SoftwareVersion, RegistrationAccessToken = RegistrationAccessToken, PostLogoutRedirectUris = PostLogoutRedirectUris.ToList(), TlsClientAuthSanDNS = TlsClientAuthSanDNS, TlsClientAuthSanEmail = TlsClientAuthSanEmail, TlsClientAuthSanIP = TlsClientAuthSanIP, TlsClientAuthSanURI = TlsClientAuthSanURI, TlsClientAuthSubjectDN = TlsClientAuthSubjectDN, TlsClientCertificateBoundAccessToken = TlsClientCertificateBoundAccessToken }); }
public object Clone() { return(new OpenIdClient { ClientId = ClientId, Translations = Translations == null ? new List <OAuthClientTranslation>() : Translations.Select(c => (OAuthClientTranslation)c.Clone()).ToList(), CreateDateTime = CreateDateTime, JwksUri = JwksUri, RefreshTokenExpirationTimeInSeconds = RefreshTokenExpirationTimeInSeconds, UpdateDateTime = UpdateDateTime, TokenEndPointAuthMethod = TokenEndPointAuthMethod, TokenExpirationTimeInSeconds = TokenExpirationTimeInSeconds, ClientSecret = ClientSecret, ClientSecretExpirationTime = ClientSecretExpirationTime, AllowedScopes = AllowedScopes == null ? new List <OAuthScope>() : AllowedScopes.Select(s => (OAuthScope)s.Clone()).ToList(), JsonWebKeys = JsonWebKeys == null ? new List <JsonWebKey>() : JsonWebKeys.Select(j => (JsonWebKey)j.Clone()).ToList(), GrantTypes = GrantTypes.ToList(), RedirectionUrls = RedirectionUrls.ToList(), PreferredTokenProfile = PreferredTokenProfile, TokenEncryptedResponseAlg = TokenEncryptedResponseAlg, TokenEncryptedResponseEnc = TokenEncryptedResponseEnc, TokenSignedResponseAlg = TokenSignedResponseAlg, ResponseTypes = ResponseTypes.ToList(), Contacts = Contacts.ToList(), SoftwareId = SoftwareId, SoftwareVersion = SoftwareVersion, ApplicationType = ApplicationType, DefaultAcrValues = DefaultAcrValues.ToList(), DefaultMaxAge = DefaultMaxAge, IdTokenEncryptedResponseAlg = IdTokenEncryptedResponseAlg, IdTokenEncryptedResponseEnc = IdTokenEncryptedResponseEnc, IdTokenSignedResponseAlg = IdTokenSignedResponseAlg, PairWiseIdentifierSalt = PairWiseIdentifierSalt, RequestObjectEncryptionAlg = RequestObjectEncryptionAlg, RequestObjectEncryptionEnc = RequestObjectEncryptionEnc, RequestObjectSigningAlg = RequestObjectSigningAlg, RequireAuthTime = RequireAuthTime, SectorIdentifierUri = SectorIdentifierUri, SubjectType = SubjectType, UserInfoEncryptedResponseAlg = UserInfoEncryptedResponseAlg, UserInfoEncryptedResponseEnc = UserInfoEncryptedResponseEnc, UserInfoSignedResponseAlg = UserInfoSignedResponseAlg, RegistrationAccessToken = RegistrationAccessToken, PostLogoutRedirectUris = PostLogoutRedirectUris, InitiateLoginUri = InitiateLoginUri, BCTokenDeliveryMode = BCTokenDeliveryMode, BCClientNotificationEndpoint = BCClientNotificationEndpoint, BCAuthenticationRequestSigningAlg = BCAuthenticationRequestSigningAlg, BCUserCodeParameter = BCUserCodeParameter, FrontChannelLogoutUri = FrontChannelLogoutUri, FrontChannelLogoutSessionRequired = FrontChannelLogoutSessionRequired, BackChannelLogoutSessionRequired = BackChannelLogoutSessionRequired, BackChannelLogoutUri = BackChannelLogoutUri, TlsClientAuthSanDNS = TlsClientAuthSanDNS, TlsClientAuthSanEmail = TlsClientAuthSanEmail, TlsClientAuthSanIP = TlsClientAuthSanIP, TlsClientAuthSanURI = TlsClientAuthSanURI, TlsClientAuthSubjectDN = TlsClientAuthSubjectDN, TlsClientCertificateBoundAccessToken = TlsClientCertificateBoundAccessToken, ApplicationKind = ApplicationKind }); }