├── .dockerignore ├── .gitattributes ├── .github ├── FUNDING.yml └── workflows │ ├── ci_main_docker.yaml │ ├── ci_master_seed_tool_release.yaml │ ├── ci_release.yaml │ ├── ci_seed_tool_release.yaml │ └── ci_test_docker.yaml ├── .gitignore ├── Docker ├── README-FoxIDs-Control-image.md ├── README-FoxIDs-image.md ├── docker-compose-image.yaml ├── docker-compose-project.yaml ├── docker-compose.development-http.yaml └── docker-compose.development-https.yaml ├── FoxIDs.sln ├── Kubernetes ├── k8s-foxids-deployment.yaml ├── k8s-foxids-ingress-deployment.yaml ├── k8s-letsencrypt-issuer.yaml ├── k8s-mongo-configmap.yaml ├── k8s-mongo-deployment.yaml ├── k8s-mongo-pv-dockerdesktop.yaml ├── k8s-mongo-pvc-dockerdesktop.yaml ├── k8s-mongo-pvc-dynamic.yaml ├── k8s-mongo-secret.yaml ├── k8s-postgres-configmap.yaml ├── k8s-postgres-secret.yaml ├── k8s-redis-configmap.yaml ├── k8s-redis-deployment.yaml ├── k8s-redis-pv-dockerdesktop.yaml ├── k8s-redis-pvc-dockerdesktop.yaml └── k8s-redis-pvc-dynamic.yaml ├── LICENSE ├── README.md ├── ReleaseConfig ├── FoxIDs.Control │ ├── linux │ │ ├── appsettings.json │ │ └── web.config │ └── win │ │ ├── appsettings.json │ │ └── web.config └── FoxIDs │ ├── linux │ ├── appsettings.json │ └── web.config │ └── win │ ├── appsettings.json │ └── web.config ├── azuredeploy-small.json ├── azuredeploy.json ├── docs ├── README.md ├── _sidebar.md ├── app-reg-howto-saml-2.0-adfs.md ├── app-reg-oauth-2.0.md ├── app-reg-oidc.md ├── app-reg-saml-2.0.md ├── auth-method-howto-oidc-amazon-cognito.md ├── auth-method-howto-oidc-azure-ad-b2c.md ├── auth-method-howto-oidc-azure-ad.md ├── auth-method-howto-oidc-facebook.md ├── auth-method-howto-oidc-google.md ├── auth-method-howto-oidc-identityserver.md ├── auth-method-howto-oidc-nets-eid-broker.md ├── auth-method-howto-oidc-signicat.md ├── auth-method-howto-saml-2.0-adfs.md ├── auth-method-howto-saml-2.0-google-workspace.md ├── auth-method-howto-saml-2.0-nemlogin.md ├── auth-method-howto-saml-2.0-pingone.md ├── auth-method-howto-saml-amazon-iam-identity-center.md ├── auth-method-oidc.md ├── auth-method-saml-2.0.md ├── bridge.md ├── certificates.md ├── claim-transform-dk-privilege.md ├── claim-transform-task.md ├── claim.md ├── connections.md ├── control.md ├── custom-domain.md ├── customisation.md ├── deployment-azure.md ├── deployment-docker.md ├── deployment-k8s.md ├── deployment-window-iis.md ├── deployment.md ├── description.md ├── development.md ├── email.md ├── external-login.md ├── faq.md ├── foxids-dev.md ├── foxids-inside.md ├── get-started.md ├── gs-context-handler.md ├── gs-nemlogin.md ├── howto-connect.md ├── howto-environmentlink-foxids.md ├── howto-oidc-foxids.md ├── howto-saml-2.0-context-handler.md ├── images │ ├── bridge-oidc-saml.svg │ ├── bridge-saml-oidc.svg │ ├── bridge.vsdx │ ├── claim-transform.svg │ ├── claims.vsdx │ ├── configuration.svg │ ├── configure-authorization-code-flow-pkce.png │ ├── configure-authorization-code-flow.png │ ├── configure-certificate.png │ ├── configure-claim-task-auth-method.png │ ├── configure-claim-transform-app-reg.png │ ├── configure-claim-transform-auth-method.png │ ├── configure-client-api-client.png │ ├── configure-client-api-resource.png │ ├── configure-client-credentials-grant.png │ ├── configure-connections.png │ ├── configure-default-scope-claims.png │ ├── configure-email-provider-environment-sendgrid.png │ ├── configure-email-provider-environment-smtp.png │ ├── configure-env-name-address.png │ ├── configure-environment-setting.png │ ├── configure-environment.png │ ├── configure-external-claims-config.png │ ├── configure-external-login-config.png │ ├── configure-external-login-ui.png │ ├── configure-foxids_control_api.png │ ├── configure-implicit-code-flow.png │ ├── configure-jwt-saml-mappings.png │ ├── configure-log-stream-appinsight.png │ ├── configure-log.png │ ├── configure-login-2fa-example.png │ ├── configure-login-2fa.png │ ├── configure-login-advanced.png │ ├── configure-login-css-backbround-image.png │ ├── configure-login-css-backbround-logo.png │ ├── configure-login-css-sample-test.png │ ├── configure-login-customisation.png │ ├── configure-login-hrd-example.png │ ├── configure-login-hrd.png │ ├── configure-login-session.png │ ├── configure-login-title-icon-css.png │ ├── configure-login.png │ ├── configure-oauth-resource.png │ ├── configure-oidc-auth-method.png │ ├── configure-oidc-lifetime.png │ ├── configure-plan-tenant.png │ ├── configure-plan.png │ ├── configure-resource-scopes-client.png │ ├── configure-resource-scopes-resource.png │ ├── configure-reverse-proxy-secret-firewall.png │ ├── configure-reverse-proxy-secret-permissions.png │ ├── configure-reverse-proxy-secret.png │ ├── configure-saml-adfs-auth-method.png │ ├── configure-saml-app-reg.png │ ├── configure-saml-auth-method-idp-initiated.png │ ├── configure-saml-auth-method.png │ ├── configure-saml-googleworkspace-add-app.png │ ├── configure-saml-googleworkspace-app.png │ ├── configure-saml-googleworkspace-auth-method.png │ ├── configure-saml-googleworkspace-start-auth-method.png │ ├── configure-saml-manual-auth-method.png │ ├── configure-tenant-adminuser.png │ ├── configure-tenant-custom-domain-environment.png │ ├── configure-tenant-custom-domain-my-environment.png │ ├── configure-tenant-text.png │ ├── configure-tenant.png │ ├── configure-user-mfa.png │ ├── configure-user.png │ ├── connections-app-reg-oauth.svg │ ├── connections-app-reg-oidc.svg │ ├── connections-app-reg-saml.svg │ ├── connections-auth-method-oidc.svg │ ├── connections-auth-method-saml-idpi.svg │ ├── connections-auth-method-saml.svg │ ├── connections-login.svg │ ├── connections-oauth.svg │ ├── connections-oidc.svg │ ├── connections-saml.svg │ ├── connections.svg │ ├── connections.vsdx │ ├── deployment-window-iis-add-website.png │ ├── deployment-window-iis-my-cert.png │ ├── environments.vsdx │ ├── example-claim-transform-name-to-given_name-family_name.png │ ├── example-claim-transform-remove-post-auth-method-name.png │ ├── faq-pass-through-all-claims-app-reg.png │ ├── faq-pass-through-all-claims-auth-method.png │ ├── fqa-matching-issuer-authority.png │ ├── get-started-first-access.png │ ├── get-started-login.png │ ├── get-started-new-app-reg-conf.png │ ├── get-started-new-app-reg-done.png │ ├── get-started-new-app-reg.png │ ├── get-started-test-user.png │ ├── how-to-connect.svg │ ├── how-to-context-handler-environment-link.svg │ ├── how-to-context-handler-foxids-idp.png │ ├── how-to-context-handler-rp.svg │ ├── how-to-context-handler.svg │ ├── how-to-environment-link.svg │ ├── how-to-nemlogin-environment-link.svg │ ├── how-to-nemlogin.svg │ ├── how-to.vsdx │ ├── howto-environmentlink-foxids-auth-method-select.png │ ├── howto-environmentlink-foxids-auth-method-y-select.png │ ├── howto-oidc-amazon-cognito-app-client-client-id.png │ ├── howto-oidc-amazon-cognito-app-client-logout.png │ ├── howto-oidc-amazon-cognito-app-client.png │ ├── howto-oidc-amazon-cognito-authority.png │ ├── howto-oidc-amazon-cognito-config.png │ ├── howto-oidc-amazon-cognito-urls.png │ ├── howto-oidc-amazon-cognito-user-pool.png │ ├── howto-oidc-amazon-iam-ic-acs-issuer.png │ ├── howto-oidc-amazon-iam-ic-binding-format.png │ ├── howto-oidc-amazon-iam-ic-certificate-change.png │ ├── howto-oidc-amazon-iam-ic-certificate-type.png │ ├── howto-oidc-amazon-iam-ic-create.png │ ├── howto-oidc-azuread-readredirect.png │ ├── howto-oidc-facebook-app-details.png │ ├── howto-oidc-facebook-config.png │ ├── howto-oidc-facebook-email.png │ ├── howto-oidc-facebook-readredirect.png │ ├── howto-oidc-facebook-redirect-url.png │ ├── howto-oidc-facebook-select-login.png │ ├── howto-oidc-foxids-auth-method-readredirect.png │ ├── howto-oidc-foxids-auth-method.png │ ├── howto-oidc-foxids-parallel-app-reg.png │ ├── howto-oidc-google-appclient.png │ ├── howto-oidc-google-config.png │ ├── howto-oidc-google-readredirect.png │ ├── howto-oidc-google-scopes.png │ ├── howto-oidc-google-usertype.png │ ├── howto-oidc-identityserver-readredirect.png │ ├── howto-oidc-nets-eid-broker-claim-transform.png │ ├── howto-oidc-nets-eid-broker-external-user.png │ ├── howto-oidc-nets-eid-broker-profile.png │ ├── howto-saml-claim-mappings.png │ ├── howto-saml-context-handler-app-base-config-reg.png │ ├── howto-saml-context-handler-app-base-config.png │ ├── howto-saml-context-handler-app-ct1.png │ ├── howto-saml-context-handler-app-ct2.png │ ├── howto-saml-context-handler-auth-attributes.png │ ├── howto-saml-context-handler-auth-nameidformat.png │ ├── howto-saml-context-handler-auth-read-metadata.png │ ├── howto-saml-context-handler-certificate.png │ ├── howto-saml-context-handler-new-environment.png │ ├── howto-saml-context-handler-test-user1.png │ ├── howto-saml-nemlogin3-auth-attributes.png │ ├── howto-saml-nemlogin3-auth-claims.png │ ├── howto-saml-nemlogin3-auth-contact.png │ ├── howto-saml-nemlogin3-auth-nameidformat.png │ ├── howto-saml-nemlogin3-auth-read-metadata.png │ ├── howto-saml-nemlogin3-auth-req-ext.png │ ├── howto-saml-nemlogin3-auth-top.png │ ├── howto-saml-nemlogin3-certificate-container-type.png │ ├── howto-saml-nemlogin3-certificate.png │ ├── howto-saml-nemlogin3-claim-mappings.png │ ├── howto-saml-nemlogin3-id-type.png │ ├── howto-saml-nemlogin3-log.png │ ├── howto-saml-nemlogin3-nsis-level.png │ ├── howto-saml-privilege-claim-tf.png │ ├── language-danish.png │ ├── language-french.png │ ├── language-german.png │ ├── language-spanish.png │ ├── main-tenant.png │ ├── master-seed-tool-client.png │ ├── master-tenant-admin-user.png │ ├── master-tenant2.png │ ├── sample_seed-client.png │ ├── search-logs.png │ ├── search-usage-logs.png │ ├── seed-tool-client.png │ ├── structure.svg │ ├── structure.vsdx │ ├── token-exchange-access-token-by-trust.svg │ ├── token-exchange-access-token-in-api.svg │ ├── token-exchange-access-token-in-web-app.svg │ ├── token-exchange-config-app-reg.png │ ├── token-exchange-config-auth-method.png │ ├── token-exchange-oauth-by-trust-app-reg-client.png │ ├── token-exchange-oauth-by-trust-auth-method.png │ ├── token-exchange-oauth-same-environment-app-reg.png │ ├── token-exchange-oidc-same-environment-app-reg.png │ ├── token-exchange-saml-by-trust-app-reg-client.png │ ├── token-exchange-saml-by-trust-auth-method.png │ ├── token-exchange-saml-by-trust.svg │ ├── token-exchange.vsdx │ ├── user-create-new-account-config.png │ ├── user-create-new-account.png │ ├── user-email-phone-username-user-identifier.png │ ├── user-external-auth-method-redemption.png │ ├── user-external-create-new-account-config.png │ ├── user-external-create-new-account.png │ ├── user-external-redemption.png │ ├── user-login.png │ └── user-phone-user-identifier.png ├── language.md ├── logging.md ├── login.md ├── monitoring.md ├── name-title-icon-css.md ├── oauth-2.0.md ├── oidc.md ├── plan.md ├── reverse-proxy.md ├── risk-passwords.md ├── saml-2.0.md ├── samples.md ├── standard-support.md ├── token-exchange.md ├── users-upload.md └── users.md ├── src ├── FoxIDs.Control │ ├── Controllers │ │ ├── Base │ │ │ ├── ApiController.cs │ │ │ └── HealthController.cs │ │ ├── Client │ │ │ ├── MClientSettingsController.cs │ │ │ └── WController.cs │ │ ├── Grants │ │ │ ├── TRefreshTokenGrantController.cs │ │ │ └── TRefreshTokenGrantsController.cs │ │ ├── Helpers │ │ │ ├── TDownPartyTestController.cs │ │ │ ├── TNewPartyNameController.cs │ │ │ ├── TPlanInfoController.cs │ │ │ └── TReadCertificateController.cs │ │ ├── Master │ │ │ ├── MFilterPlanController.cs │ │ │ ├── MPlanController.cs │ │ │ ├── MPlansController.cs │ │ │ ├── MRiskPasswordController.cs │ │ │ ├── MRiskPasswordFirstController.cs │ │ │ ├── MRiskPasswordInfoController.cs │ │ │ ├── MRiskPasswordTestController.cs │ │ │ ├── MSmsPriceController.cs │ │ │ ├── MSmsPricesController.cs │ │ │ └── MUsageSettingsController.cs │ │ ├── Parties │ │ │ ├── GenericOAuthClientKeyUpPartyController.cs │ │ │ ├── GenericOAuthClientSecretDownPartyController.cs │ │ │ ├── GenericOAuthClientSecretUpPartyController.cs │ │ │ ├── GenericPartyApiController.cs │ │ │ ├── TDownPartiesController.cs │ │ │ ├── TExternalLoginSecretUpPartyController.cs │ │ │ ├── TExternalLoginUpPartyController.cs │ │ │ ├── TFilterDownPartyController.cs │ │ │ ├── TFilterUpPartyController.cs │ │ │ ├── TLoginUpPartyController.cs │ │ │ ├── TOAuthClientSecretDownPartyController.cs │ │ │ ├── TOAuthDownPartyController.cs │ │ │ ├── TOAuthUpPartyController.cs │ │ │ ├── TOidcClientKeyUpPartyController.cs │ │ │ ├── TOidcClientSecretDownPartyController.cs │ │ │ ├── TOidcClientSecretUpPartyController.cs │ │ │ ├── TOidcDownPartyController.cs │ │ │ ├── TOidcUpPartyController.cs │ │ │ ├── TSamlDownPartyController.cs │ │ │ ├── TSamlUpPartyController.cs │ │ │ ├── TSamlUpPartyReadMetadataController.cs │ │ │ ├── TTrackLinkDownPartyController.cs │ │ │ ├── TTrackLinkUpPartyController.cs │ │ │ └── TUpPartiesController.cs │ │ ├── TenantResources │ │ │ ├── TFilterResourceNameController.cs │ │ │ └── TResourceNamesController.cs │ │ ├── Tenants │ │ │ ├── TFilterTenantController.cs │ │ │ ├── TFilterUsageTenantController.cs │ │ │ ├── TMyMollieFirstPaymentController.cs │ │ │ ├── TMyTenantController.cs │ │ │ ├── TMyTenantLogController.cs │ │ │ ├── TMyTenantLogUsageController.cs │ │ │ ├── TTenantController.cs │ │ │ ├── TTenantLogController.cs │ │ │ ├── TTenantLogUsageController.cs │ │ │ ├── TTenantsController.cs │ │ │ └── TUsageTenantsController.cs │ │ ├── Tracks │ │ │ ├── TExternalUserController.cs │ │ │ ├── TExternalUsersController.cs │ │ │ ├── TFailingLoginLockController.cs │ │ │ ├── TFailingLoginLocksController.cs │ │ │ ├── TFilterExternalUserController.cs │ │ │ ├── TFilterTrackController.cs │ │ │ ├── TFilterUserController.cs │ │ │ ├── TMyUserController.cs │ │ │ ├── TTrackClaimMappingController.cs │ │ │ ├── TTrackController.cs │ │ │ ├── TTrackKeyContainedController.cs │ │ │ ├── TTrackKeyContainedSwapController.cs │ │ │ ├── TTrackKeyTypeController.cs │ │ │ ├── TTrackLogController.cs │ │ │ ├── TTrackLogSettingController.cs │ │ │ ├── TTrackLogStreamsSettingsController.cs │ │ │ ├── TTrackLogUsageController.cs │ │ │ ├── TTrackResourceController.cs │ │ │ ├── TTrackResourceSettingController.cs │ │ │ ├── TTrackSendEmailController.cs │ │ │ ├── TTracksController.cs │ │ │ ├── TUserChangePasswordController.cs │ │ │ ├── TUserControlProfileController.cs │ │ │ ├── TUserController.cs │ │ │ └── TUsersController.cs │ │ └── Usage │ │ │ ├── TFilterUsageController.cs │ │ │ ├── TUsageController.cs │ │ │ ├── TUsageInvoicingActionController.cs │ │ │ └── TUsagesController.cs │ ├── Dockerfile │ ├── Extensions │ │ ├── ClaimExtensions.cs │ │ ├── PaymentStatusExtension.cs │ │ └── TenantScopeAuthorizeExtension.cs │ ├── FoxIDs.Control.csproj │ ├── Infrastructure │ │ ├── ApiDescription │ │ │ └── FoxIDsApiDescriptionGroupCollectionProvider.cs │ │ ├── Filters │ │ │ ├── LogAttribute.cs │ │ │ └── RequireMasterTenantAttribute.cs │ │ ├── Hosting │ │ │ ├── ApplicationBuilderExtensions.cs │ │ │ ├── FoxIDsApiExceptionMiddleware.cs │ │ │ ├── FoxIDsApiRouteBindingMiddleware.cs │ │ │ ├── FoxIDsApiRouteTransformer.cs │ │ │ ├── FoxIDsClientRouteBindingMiddleware.cs │ │ │ ├── FoxIDsClientRouteTransformer.cs │ │ │ ├── MvcCoreBuilderExtensions.cs │ │ │ ├── OpenSearchClientQueryLog.cs │ │ │ └── ServiceCollectionExtensions.cs │ │ └── Security │ │ │ ├── BaseAuthorizationRequirement.cs │ │ │ ├── BaseScopeAuthorizeAttribute.cs │ │ │ ├── JwtBearerMultipleTenantsHandler.cs │ │ │ ├── JwtBearerMultipleTenantsOptions.cs │ │ │ ├── MasterAuthorizationRequirement.cs │ │ │ ├── MasterScopeAuthorizeAttribute.cs │ │ │ ├── TenantAuthorizationRequirement.cs │ │ │ └── TenantScopeAuthorizeAttribute.cs │ ├── Logic │ │ ├── Logs │ │ │ ├── LogAnalyticsWorkspaceProvider.cs │ │ │ ├── LogApplicationInsightsLogic.cs │ │ │ ├── LogLogic.cs │ │ │ ├── LogOpenSearchLogic.cs │ │ │ ├── SendEventEmailLogic.cs │ │ │ ├── UsageLogApplicationInsightsLogic.cs │ │ │ ├── UsageLogLogic.cs │ │ │ └── UsageLogOpenSearchLogic.cs │ │ ├── OidcDiscoveryReadUpLogic.cs │ │ ├── PartyLogic.cs │ │ ├── Queues │ │ │ ├── BackgroundQueue.cs │ │ │ ├── DownPartyAllowUpPartiesQueueLogic.cs │ │ │ └── QueueBackgroundService.cs │ │ ├── SamlMetadataReadUpLogic.cs │ │ ├── Seed │ │ │ ├── MainTenantDocumentsSeedLogic.cs │ │ │ ├── MasterTenantDocumentsSeedLogic.cs │ │ │ └── SeedLogic.cs │ │ ├── Usage │ │ │ ├── UsageBackgroundService.cs │ │ │ ├── UsageBackgroundWorkLogic.cs │ │ │ ├── UsageCalculatorLogic.cs │ │ │ ├── UsageInvoicingLogic.cs │ │ │ └── UsageMolliePaymentLogic.cs │ │ └── Validators │ │ │ ├── ValidateApiModelDynamicElementLogic.cs │ │ │ ├── ValidateApiModelExternalLoginPartyLogic.cs │ │ │ ├── ValidateApiModelExternalUserLogic.cs │ │ │ ├── ValidateApiModelGenericPartyLogic.cs │ │ │ ├── ValidateApiModelLoginPartyLogic.cs │ │ │ ├── ValidateApiModelOAuthOidcPartyLogic.cs │ │ │ ├── ValidateApiModelSamlPartyLogic.cs │ │ │ ├── ValidateApiModelTrackLinkPartyLogic.cs │ │ │ ├── ValidateModelGenericPartyLogic.cs │ │ │ └── ValidateModelOAuthOidcPartyLogic.cs │ ├── MappingProfiles │ │ ├── ExternalMappingProfile.cs │ │ ├── MasterMappingProfile.cs │ │ └── TenantMappingProfiles.cs │ ├── Models │ │ ├── ApplicationInsightsQuery.cs │ │ ├── Config │ │ │ ├── ApplicationInsightsSettings.cs │ │ │ ├── FoxIDsControlSettings.cs │ │ │ ├── PaymentSettings.cs │ │ │ ├── UsageBaseSettings.cs │ │ │ └── UsageSellerSettings.cs │ │ ├── ExternalInvoices │ │ │ ├── Address.cs │ │ │ ├── Customer.cs │ │ │ ├── InvoiceLine.cs │ │ │ ├── InvoiceRequest.cs │ │ │ ├── InvoiceResponse.cs │ │ │ ├── Seller.cs │ │ │ ├── UsedItem.cs │ │ │ └── UsedItemTypes.cs │ │ ├── LogErrorMessageItem.cs │ │ ├── LogExceptionDetail.cs │ │ ├── LogExceptionPassedStack.cs │ │ ├── LogTraceMessageItem.cs │ │ ├── Payments │ │ │ ├── MolliePaymentDetailsResponse.cs │ │ │ ├── MolliePaymentLinkResponse.cs │ │ │ ├── MolliePaymentLinksResponse.cs │ │ │ └── MolliePaymentResponse.cs │ │ ├── Queues │ │ │ ├── UpPartyHrdQueueMessage.cs │ │ │ └── UpPartyHrdQueueMessageActions.cs │ │ └── ViewModels │ │ │ └── ClientViewModel.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Startup.cs │ ├── appsettings.json │ ├── web.Release.config │ ├── web.config │ └── wwwroot │ │ └── robots.txt ├── FoxIDs.ControlClient │ ├── App.razor │ ├── Extensions │ │ ├── CertificateExtensions.cs │ │ ├── ClaimTransformsExtensions.cs │ │ ├── DictionaryExtensions.cs │ │ ├── DynamicElementExtensions.cs │ │ ├── LinkExternalUserExtensions.cs │ │ ├── LogExtensions.cs │ │ ├── MapperExtensions.cs │ │ ├── RouteBindingExtensions.cs │ │ ├── TimeExtensions.cs │ │ └── TrackExtensions.cs │ ├── FoxIDs.ControlClient.csproj │ ├── Infrastructure │ │ ├── CheckResponseMessageHandler.cs │ │ ├── Hosting │ │ │ └── ServiceCollectionExtensions.cs │ │ └── Security │ │ │ └── TenantOpenidConnectPkce.cs │ ├── Logic │ │ ├── ClipboardLogic.cs │ │ ├── ControlClientSettingLogic.cs │ │ ├── MetadataLogic.cs │ │ ├── NotificationLogic.cs │ │ ├── RouteBindingLogic.cs │ │ ├── ServerErrorLogic.cs │ │ ├── TrackSelectedLogic.cs │ │ └── UserProfileLogic.cs │ ├── Models │ │ ├── Config │ │ │ └── ClientSettings.cs │ │ ├── ExternalLoginTabTypes.cs │ │ ├── LoginTabTypes.cs │ │ ├── OAuthTabTypes.cs │ │ ├── SamlTabTypes.cs │ │ ├── TrackLinkTabTypes.cs │ │ └── ViewModels │ │ │ ├── FilterResourceViewModel.cs │ │ │ ├── GeneralResourceViewModel.cs │ │ │ ├── Master │ │ │ ├── FilterPlanViewModel.cs │ │ │ ├── FilterSmsPriceViewModel.cs │ │ │ ├── GeneralPlanViewModel.cs │ │ │ ├── GeneralSmsPriceViewModel.cs │ │ │ ├── LogLifetimeOptionsVievModel.cs │ │ │ └── PlanViewModel.cs │ │ │ ├── Parties │ │ │ ├── ClaimTransformViewModel.cs │ │ │ ├── CreateUserViewModel.cs │ │ │ ├── DownPartyOAuthClientTypes.cs │ │ │ ├── DownPartyOAuthTypes.cs │ │ │ ├── DownPartyTestViewModel.cs │ │ │ ├── DynamicElementViewModel.cs │ │ │ ├── ExternalLoginUpPartyProfileViewModel.cs │ │ │ ├── ExternalLoginUpPartyViewModel.cs │ │ │ ├── FilterDownPartyViewModel.cs │ │ │ ├── FilterUpPartyViewModel.cs │ │ │ ├── GeneralDownPartyViewModel.cs │ │ │ ├── GeneralExternalLoginUpPartyViewModel.cs │ │ │ ├── GeneralLoginUpPartyViewModel.cs │ │ │ ├── GeneralOAuthDownPartyViewModel.cs │ │ │ ├── GeneralOAuthUpPartyViewModel.cs │ │ │ ├── GeneralOidcDownPartyViewModel.cs │ │ │ ├── GeneralOidcUpPartyViewModel.cs │ │ │ ├── GeneralSamlDownPartyViewModel.cs │ │ │ ├── GeneralSamlUpPartyViewModel.cs │ │ │ ├── GeneralTrackLinkDownPartyViewModel.cs │ │ │ ├── GeneralTrackLinkUpPartyViewModel.cs │ │ │ ├── GeneralUpPartyViewModel.cs │ │ │ ├── IAllowUpPartyNames.cs │ │ │ ├── IClientAdditionalParameters.cs │ │ │ ├── IClientResourceScope.cs │ │ │ ├── IClientSecret.cs │ │ │ ├── IDownPartyName.cs │ │ │ ├── IDynamicElementsViewModel.cs │ │ │ ├── IGeneralOAuthDownPartyTabViewModel.cs │ │ │ ├── IGeneralOAuthUpPartyTabViewModel.cs │ │ │ ├── ILinkExternalUser.cs │ │ │ ├── ISamlMetadataAttributeConsumingServiceVievModel.cs │ │ │ ├── ISamlMetadataContactPersonVievModel.cs │ │ │ ├── ISamlMetadataOrganizationVievModel.cs │ │ │ ├── IUpPartyHrd.cs │ │ │ ├── IUpPartySelection.cs │ │ │ ├── IUpPartySessionLifetime.cs │ │ │ ├── LinkExternalUserViewModel.cs │ │ │ ├── LoginUpPartyViewModel.cs │ │ │ ├── NewDownPartyOAuthClientViewModel.cs │ │ │ ├── NewDownPartyOAuthResourceViewModel.cs │ │ │ ├── NewDownPartyOidcViewModel.cs │ │ │ ├── NewDownPartySamlViewModel.cs │ │ │ ├── NewDownPartyViewModel.cs │ │ │ ├── NewUpPartyEnvironmentLinkViewModel.cs │ │ │ ├── NewUpPartyViewModel.cs │ │ │ ├── OAuthClaimTransformClaimInViewModel.cs │ │ │ ├── OAuthClaimTransformClaimsInViewModel.cs │ │ │ ├── OAuthClientSecretViewModel.cs │ │ │ ├── OAuthDownClientViewModel.cs │ │ │ ├── OAuthDownPartyViewModel.cs │ │ │ ├── OAuthDownScopeViewModel.cs │ │ │ ├── OAuthUpClientViewModel.cs │ │ │ ├── OAuthUpImportClientKeyViewModel.cs │ │ │ ├── OAuthUpPartyViewModel.cs │ │ │ ├── OidcDownClientViewModel.cs │ │ │ ├── OidcDownPartyViewModel.cs │ │ │ ├── OidcDownScopeViewModel.cs │ │ │ ├── OidcUpClientProfileViewModel.cs │ │ │ ├── OidcUpClientViewModel.cs │ │ │ ├── OidcUpPartyProfileViewModel.cs │ │ │ ├── OidcUpPartyViewModel.cs │ │ │ ├── SamlAuthnContextComparisonTypesVievModel.cs │ │ │ ├── SamlClaimTransformClaimInViewModel.cs │ │ │ ├── SamlClaimTransformClaimsInViewModel.cs │ │ │ ├── SamlDownPartyViewModel.cs │ │ │ ├── SamlUpPartyProfileViewModel.cs │ │ │ ├── SamlUpPartyViewModel.cs │ │ │ ├── TrackLinkDownPartyViewModel.cs │ │ │ ├── TrackLinkUpPartyProfileViewModel.cs │ │ │ ├── TrackLinkUpPartyViewModel.cs │ │ │ ├── UpPartyFilterViewModel.cs │ │ │ ├── UpPartyProfileViewModel.cs │ │ │ └── X509RevocationMode.cs │ │ │ ├── ResourceItemViewModel.cs │ │ │ ├── Tenants │ │ │ ├── CreateTenantViewModel.cs │ │ │ ├── CustomerViewModel.cs │ │ │ ├── FilterTenantViewModel.cs │ │ │ ├── FilterUsageViewModel.cs │ │ │ ├── GeneralTenantViewModel.cs │ │ │ ├── GeneralUsageSettingsViewModel.cs │ │ │ ├── GeneralUsedViewModel.cs │ │ │ ├── MasterTenantViewModel.cs │ │ │ ├── MolliePaymentErrorResult.cs │ │ │ ├── MolliePaymentResult.cs │ │ │ ├── TenantViewModel.cs │ │ │ ├── TestRiskPasswordViewModel.cs │ │ │ ├── UsageSettingsViewModel.cs │ │ │ └── UsedViewModel.cs │ │ │ └── Tracks │ │ │ ├── ClaimMappingDefaultViewModel.cs │ │ │ ├── ClaimMappingViewModel.cs │ │ │ ├── CreateTrackViewModel.cs │ │ │ ├── ExternalUserViewModel.cs │ │ │ ├── FailingLoginLockViewModel.cs │ │ │ ├── FilterExternalUserViewModel.cs │ │ │ ├── FilterRefreshTokenGrantViewModel.cs │ │ │ ├── FilterTrackViewModel.cs │ │ │ ├── FilterUserLockViewModel.cs │ │ │ ├── FilterUserViewModel.cs │ │ │ ├── GeneralExternalUserViewModel.cs │ │ │ ├── GeneralLogSettingsViewModel.cs │ │ │ ├── GeneralLogStreamSettingsViewModel.cs │ │ │ ├── GeneralRefreshTokenGrantViewModel.cs │ │ │ ├── GeneralResourceSettingsViewModel.cs │ │ │ ├── GeneralTrackCertificateViewModel.cs │ │ │ ├── GeneralUserViewModel.cs │ │ │ ├── KeyInfoViewModel.cs │ │ │ ├── LogItemDetailViewModel.cs │ │ │ ├── LogItemViewModel.cs │ │ │ ├── LogQueryTypes.cs │ │ │ ├── LogRequestViewModel.cs │ │ │ ├── LogResponseViewModel.cs │ │ │ ├── LogTimeIntervals.cs │ │ │ ├── MailProviders.cs │ │ │ ├── MailSettingsViewModel.cs │ │ │ ├── RefreshTokenGrantViewModel.cs │ │ │ ├── TrackCertificateInfoViewModel.cs │ │ │ ├── TrackSettingsViewModel.cs │ │ │ ├── UsageLogIncludeTypes.cs │ │ │ ├── UsageLogRequestViewModel.cs │ │ │ └── UserViewModel.cs │ ├── Pages │ │ ├── Authentication.razor │ │ ├── Certificates.cs │ │ ├── Certificates.razor │ │ ├── Components │ │ │ ├── DownPartyBase.cs │ │ │ ├── EExternalLoginUpParty.cs │ │ │ ├── EExternalLoginUpParty.razor │ │ │ ├── ELogItem.razor │ │ │ ├── ELoginUpParty.cs │ │ │ ├── ELoginUpParty.razor │ │ │ ├── EOAuthDownParty.cs │ │ │ ├── EOAuthDownParty.razor │ │ │ ├── EOAuthUpParty.cs │ │ │ ├── EOAuthUpParty.razor │ │ │ ├── EOidcDownParty.cs │ │ │ ├── EOidcDownParty.razor │ │ │ ├── EOidcUpParty.cs │ │ │ ├── EOidcUpParty.razor │ │ │ ├── ESamlDownParty.cs │ │ │ ├── ESamlDownParty.razor │ │ │ ├── ESamlUpParty.cs │ │ │ ├── ESamlUpParty.razor │ │ │ ├── ETrackLinkDownParty.cs │ │ │ ├── ETrackLinkDownParty.razor │ │ │ ├── ETrackLinkUpParty.cs │ │ │ ├── ETrackLinkUpParty.razor │ │ │ ├── EUsageLogItem.razor │ │ │ └── UpPartyBase.cs │ │ ├── DownParties.cs │ │ ├── DownParties.razor │ │ ├── DownPartiesLink.razor │ │ ├── DownPartyTest.cs │ │ ├── DownPartyTest.razor │ │ ├── Error.razor │ │ ├── Index.razor │ │ ├── Logging │ │ │ ├── LogSettings.cs │ │ │ ├── LogSettings.razor │ │ │ ├── LogUsage.cs │ │ │ ├── LogUsage.razor │ │ │ ├── Logs.cs │ │ │ └── Logs.razor │ │ ├── MasterTenant.cs │ │ ├── MasterTenant.razor │ │ ├── MasterTenantPaymentLink.razor │ │ ├── Settings │ │ │ ├── ClaimMappings.cs │ │ │ ├── ClaimMappings.razor │ │ │ ├── MailSettings.cs │ │ │ ├── MailSettings.razor │ │ │ ├── Plans.cs │ │ │ ├── Plans.razor │ │ │ ├── RiskPasswords.cs │ │ │ ├── RiskPasswords.razor │ │ │ ├── SmsPrices.cs │ │ │ ├── SmsPrices.razor │ │ │ ├── Text.cs │ │ │ ├── Text.razor │ │ │ ├── TrackSettings.cs │ │ │ └── TrackSettings.razor │ │ ├── Tenants.cs │ │ ├── Tenants.razor │ │ ├── UpParties.cs │ │ ├── UpParties.razor │ │ ├── UpPartiesLink.razor │ │ ├── Usage │ │ │ ├── Usage.cs │ │ │ ├── Usage.razor │ │ │ ├── UsageSettings.cs │ │ │ ├── UsageSettings.razor │ │ │ ├── UsageTenants.cs │ │ │ └── UsageTenants.razor │ │ └── Users │ │ │ ├── ExternalUsers.cs │ │ │ ├── ExternalUsers.razor │ │ │ ├── FailingLoginLocks.cs │ │ │ ├── FailingLoginLocks.razor │ │ │ ├── InternalUsers.cs │ │ │ ├── InternalUsers.razor │ │ │ ├── RefreshTokenGrants.cs │ │ │ ├── RefreshTokenGrants.razor │ │ │ └── UsersLink.razor │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── Services │ │ ├── BaseService.cs │ │ ├── ClientService.cs │ │ ├── DownPartyService.cs │ │ ├── ExternalUserService.cs │ │ ├── HelpersNoAccessTokenService.cs │ │ ├── HelpersService.cs │ │ ├── MyTenantService.cs │ │ ├── PlanService.cs │ │ ├── RiskPasswordService.cs │ │ ├── SmsPriceService.cs │ │ ├── TenantService.cs │ │ ├── TrackService.cs │ │ ├── UpPartyService.cs │ │ └── UserService.cs │ ├── Shared │ │ ├── ActivateLogin.razor │ │ ├── Components │ │ │ ├── DocsLink.razor │ │ │ ├── DynamicElements.razor │ │ │ ├── FFieldNumberD.razor │ │ │ ├── FFieldText.razor │ │ │ ├── FFieldTextClipboard.razor │ │ │ ├── FFieldTextList.razor │ │ │ ├── FFieldTextListClipboard.razor │ │ │ ├── FInputBase.cs │ │ │ ├── FInputCheckbox.razor │ │ │ ├── FInputCheckboxSelect.razor │ │ │ ├── FInputNumber.razor │ │ │ ├── FInputNumberD.razor │ │ │ ├── FInputNumberDN.razor │ │ │ ├── FInputNumberL.razor │ │ │ ├── FInputNumberLN.razor │ │ │ ├── FInputNumberN.razor │ │ │ ├── FInputPassword.razor │ │ │ ├── FInputSelect.razor │ │ │ ├── FInputSwitch.razor │ │ │ ├── FInputSwitch.razor.css │ │ │ ├── FInputSwitchAdvancedOptions.razor │ │ │ ├── FInputSwitchAdvancedOptions.razor.css │ │ │ ├── FInputText.razor │ │ │ ├── FInputTextArea.razor │ │ │ ├── FInputTextFilter.razor │ │ │ ├── FInputTextList.razor │ │ │ ├── FInputToggle.razor │ │ │ ├── FInputToggleN.razor │ │ │ ├── FTextClipboard.razor │ │ │ ├── FTextLinkClipboard.razor │ │ │ ├── Label.razor │ │ │ ├── LinkExternalUser.razor │ │ │ ├── Modal.razor │ │ │ ├── OAuthAdditionalParameters.razor │ │ │ ├── OAuthClaimTransforms.razor │ │ │ ├── OAuthResourceScopes.razor │ │ │ ├── OAuthSecrets.razor │ │ │ ├── PageEditForm.cs │ │ │ ├── PageEditForm.razor │ │ │ ├── SamlClaimTransforms.razor │ │ │ ├── SamlMetadataAttributeConsumingServices.razor │ │ │ ├── SamlMetadataContactPersons.razor │ │ │ ├── SamlMetadataOrganization.razor │ │ │ ├── SelectUpParties.cs │ │ │ ├── SelectUpParties.razor │ │ │ ├── SelectUpParty.razor │ │ │ ├── TenantLiNavLink.razor │ │ │ ├── UpPartyHrd.razor │ │ │ └── UpPartySessionLifetime.razor │ │ ├── EmptyLayout.razor │ │ ├── HeaderLayout.razor │ │ ├── LoginDisplay.razor │ │ ├── MainLayout.cs │ │ ├── MainLayout.razor │ │ ├── PageBase.cs │ │ └── TenantOidcRedirectToLogin.razor │ ├── Util │ │ └── SecretGenerator.cs │ ├── _Imports.razor │ └── wwwroot │ │ ├── appsettings.json │ │ ├── css │ │ ├── app.css │ │ └── open-iconic │ │ │ ├── FONT-LICENSE │ │ │ ├── ICON-LICENSE │ │ │ ├── README.md │ │ │ └── font │ │ │ ├── css │ │ │ └── open-iconic-bootstrap.min.css │ │ │ └── fonts │ │ │ ├── open-iconic.eot │ │ │ ├── open-iconic.otf │ │ │ ├── open-iconic.svg │ │ │ ├── open-iconic.ttf │ │ │ └── open-iconic.woff │ │ ├── favicon.ico │ │ ├── images │ │ └── foxids_logo.svg │ │ ├── index.html │ │ ├── js │ │ ├── functions.js │ │ └── site.js │ │ └── lib │ │ ├── bootstrap-toggle │ │ ├── bootstrap-toggle.css │ │ ├── bootstrap-toggle.js │ │ ├── bootstrap-toggle.min.css │ │ ├── bootstrap-toggle.min.js │ │ └── bootstrap-toggle.min.js.map │ │ ├── bootstrap │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ └── bootstrap.min.css │ │ ├── jquery │ │ ├── jquery.min.js │ │ └── jquery.min.map │ │ └── popper │ │ ├── popper.min.js │ │ └── popper.min.js.map ├── FoxIDs.ControlShared │ ├── Extensions │ │ └── PaymentStatusExtension.cs │ ├── FoxIDs.ControlShared.csproj │ └── Models │ │ ├── Api │ │ ├── Base │ │ │ ├── IClaimTransform.cs │ │ │ ├── IDownParty.cs │ │ │ ├── IEmailValue.cs │ │ │ ├── INameValue.cs │ │ │ ├── INewNameValue.cs │ │ │ ├── IProfile.cs │ │ │ └── PaginationResponse.cs │ │ ├── CertificateAndPassword.cs │ │ ├── CertificateInfo.cs │ │ ├── Config │ │ │ ├── ControlClientSettings.cs │ │ │ └── Options │ │ │ │ ├── KeyStorageOptions.cs │ │ │ │ └── LogOptions.cs │ │ ├── Grants │ │ │ └── RefreshTokenGrant.cs │ │ ├── Helpers │ │ │ ├── DownPartyTestResultRequest.cs │ │ │ ├── DownPartyTestResultResponse.cs │ │ │ ├── DownPartyTestStartRequest.cs │ │ │ ├── DownPartyTestStartResponse.cs │ │ │ ├── JwtWithCertificateInfo.cs │ │ │ ├── NewPartyName.cs │ │ │ └── PlanInfo.cs │ │ ├── Master │ │ │ ├── LogLifetimeOptions.cs │ │ │ ├── Plan.cs │ │ │ ├── PlanItem.cs │ │ │ ├── Resource.cs │ │ │ ├── ResourceCultureItem.cs │ │ │ ├── ResourceItem.cs │ │ │ ├── ResourceName.cs │ │ │ ├── RiskPassword.cs │ │ │ ├── RiskPasswordDelete.cs │ │ │ ├── RiskPasswordInfo.cs │ │ │ ├── RiskPasswordRequest.cs │ │ │ ├── SmsPrice.cs │ │ │ ├── UsageCurrencyExchange.cs │ │ │ └── UsageSettings.cs │ │ ├── Parties │ │ │ ├── ClaimTransform.cs │ │ │ ├── ClaimTransformActions.cs │ │ │ ├── ClaimTransformTasks.cs │ │ │ ├── ClaimTransformTypes.cs │ │ │ ├── ClientAuthenticationMethods.cs │ │ │ ├── ClientKey.cs │ │ │ ├── ClientKeyTypes.cs │ │ │ ├── CreateUser.cs │ │ │ ├── DownParty.cs │ │ │ ├── DynamicElement.cs │ │ │ ├── DynamicElementTypes.cs │ │ │ ├── ExternalConnectTypes.cs │ │ │ ├── ExternalLoginSecretRequest.cs │ │ │ ├── ExternalLoginSecretResponse.cs │ │ │ ├── ExternalLoginUpParty.cs │ │ │ ├── ExternalLoginUpPartyProfile.cs │ │ │ ├── ExternalLoginUsernameTypes.cs │ │ │ ├── LinkExternalUser.cs │ │ │ ├── LoginUpParty.cs │ │ │ ├── LoginUpPartyLogoutConsents.cs │ │ │ ├── OAuthAdditionalParameter.cs │ │ │ ├── OAuthClaimTransform.cs │ │ │ ├── OAuthClientKeyRequest.cs │ │ │ ├── OAuthClientKeyResponse.cs │ │ │ ├── OAuthClientSecretRequest.cs │ │ │ ├── OAuthClientSecretResponse.cs │ │ │ ├── OAuthClientSecretSingleRequest.cs │ │ │ ├── OAuthClientSecretSingleResponse.cs │ │ │ ├── OAuthDownClaim.cs │ │ │ ├── OAuthDownClient.cs │ │ │ ├── OAuthDownParty.cs │ │ │ ├── OAuthDownResource.cs │ │ │ ├── OAuthDownResourceScope.cs │ │ │ ├── OAuthDownScope.cs │ │ │ ├── OAuthUpClient.cs │ │ │ ├── OAuthUpParty.cs │ │ │ ├── OidcDownClaim.cs │ │ │ ├── OidcDownClient.cs │ │ │ ├── OidcDownParty.cs │ │ │ ├── OidcDownScope.cs │ │ │ ├── OidcUpClient.cs │ │ │ ├── OidcUpClientProfile.cs │ │ │ ├── OidcUpParty.cs │ │ │ ├── OidcUpPartyProfile.cs │ │ │ ├── PartyBindingPatterns.cs │ │ │ ├── PartyTypes.cs │ │ │ ├── PartyUpdateStates.cs │ │ │ ├── SamlAuthnContextComparisonTypes.cs │ │ │ ├── SamlBindingTypes.cs │ │ │ ├── SamlClaimTransform.cs │ │ │ ├── SamlDownParty.cs │ │ │ ├── SamlMetadataAttributeConsumingService.cs │ │ │ ├── SamlMetadataContactPerson.cs │ │ │ ├── SamlMetadataContactPersonTypes.cs │ │ │ ├── SamlMetadataOrganization.cs │ │ │ ├── SamlMetadataRequestedAttribute.cs │ │ │ ├── SamlMetadataServiceName.cs │ │ │ ├── SamlReadMetadataRequest.cs │ │ │ ├── SamlReadMetadataType.cs │ │ │ ├── SamlUpParty.cs │ │ │ ├── SamlUpPartyProfile.cs │ │ │ ├── TrackLinkDownParty.cs │ │ │ ├── TrackLinkUpParty.cs │ │ │ ├── TrackLinkUpPartyProfile.cs │ │ │ ├── UpParty.cs │ │ │ ├── UpPartyLink.cs │ │ │ └── UpPartyProfile.cs │ │ ├── Tenants │ │ │ ├── Address.cs │ │ │ ├── CreateTenantRequest.cs │ │ │ ├── Customer.cs │ │ │ ├── MollieFirstPaymentRequest.cs │ │ │ ├── MollieFirstPaymentResponse.cs │ │ │ ├── MyTenantRequest.cs │ │ │ ├── Payment.cs │ │ │ ├── Tenant.cs │ │ │ ├── TenantBase.cs │ │ │ ├── TenantRequest.cs │ │ │ └── TenantResponse.cs │ │ ├── Tracks │ │ │ ├── ClaimAndValues.cs │ │ │ ├── ClaimMap.cs │ │ │ ├── CreateUserRequest.cs │ │ │ ├── ExternalUser.cs │ │ │ ├── ExternalUserId.cs │ │ │ ├── ExternalUserRequest.cs │ │ │ ├── ExternalUserUpdateRequest.cs │ │ │ ├── FailingLoginLock.cs │ │ │ ├── FailingLoginTypes.cs │ │ │ ├── Logs │ │ │ │ ├── LogItem.cs │ │ │ │ ├── LogItemDetail.cs │ │ │ │ ├── LogItemTypes.cs │ │ │ │ ├── LogRequest.cs │ │ │ │ ├── LogResponse.cs │ │ │ │ ├── LogSettings.cs │ │ │ │ ├── LogStreamApplicationInsightsSettings.cs │ │ │ │ ├── LogStreamSettings.cs │ │ │ │ ├── LogStreamTypes.cs │ │ │ │ ├── LogStreams.cs │ │ │ │ ├── MyTenantLogRequest.cs │ │ │ │ ├── ResourceSettings.cs │ │ │ │ ├── TenantLogRequest.cs │ │ │ │ ├── UsageLogItem.cs │ │ │ │ ├── UsageLogRequest.cs │ │ │ │ ├── UsageLogResponse.cs │ │ │ │ ├── UsageLogSummarizeLevels.cs │ │ │ │ ├── UsageLogTimeScopes.cs │ │ │ │ ├── UsageLogTypes.cs │ │ │ │ ├── UsageMyTenantLogRequest.cs │ │ │ │ └── UsageTenantLogRequest.cs │ │ │ ├── MyUser.cs │ │ │ ├── SendEmail.cs │ │ │ ├── SendSms.cs │ │ │ ├── SendSmsTypes.cs │ │ │ ├── Track.cs │ │ │ ├── TrackKey.cs │ │ │ ├── TrackKeyItemContained.cs │ │ │ ├── TrackKeyItemContainedRequest.cs │ │ │ ├── TrackKeyItemContainedSwap.cs │ │ │ ├── TrackKeyItemsContained.cs │ │ │ ├── TrackKeyTypes.cs │ │ │ ├── TrackResourceItem.cs │ │ │ ├── User.cs │ │ │ ├── UserBase.cs │ │ │ ├── UserChangePasswordRequest.cs │ │ │ ├── UserControlProfile.cs │ │ │ ├── UserRequest.cs │ │ │ ├── UsersDelete.cs │ │ │ └── UsersRequest.cs │ │ └── Usage │ │ │ ├── Invoice.cs │ │ │ ├── InvoiceLine.cs │ │ │ ├── UpdateUsageRequest.cs │ │ │ ├── UsageInvoiceSendStatus.cs │ │ │ ├── UsageInvoicingAction.cs │ │ │ ├── UsagePaymentStatus.cs │ │ │ ├── UsageRequest.cs │ │ │ ├── Used.cs │ │ │ ├── UsedBase.cs │ │ │ ├── UsedItem.cs │ │ │ └── UsedItemTypes.cs │ │ └── ErrorInfo.cs ├── FoxIDs.Shared │ ├── Extensions │ │ ├── ActionResultExtensions.cs │ │ ├── ClaimExtensions.cs │ │ ├── DataAnnotationExtensions.cs │ │ ├── DataDocumentExtensions.cs │ │ ├── DateOnlySerializableExtensions.cs │ │ ├── ExceptionExtensions.cs │ │ ├── ExpressionExtensions.cs │ │ ├── HttpContextExtensions.cs │ │ ├── HttpResponseExtensions.cs │ │ ├── LogLifetimeOptionsExtensions.cs │ │ ├── ObjectExtensions.cs │ │ ├── PartyTypeExtensions.cs │ │ ├── RouteBindingExtensions.cs │ │ ├── ServiceCollectionExtensions.cs │ │ ├── StringExtensions.cs │ │ └── X509Certificate2Extensions.cs │ ├── FoxIDs.Shared.csproj │ ├── Infrastructure │ │ ├── Filters │ │ │ └── HttpSecurityHeadersAttribute.cs │ │ ├── Hosting │ │ │ ├── ApplicationBuilderExtensions.cs │ │ │ ├── DataProtectionBuilderExtension.cs │ │ │ ├── DataProtectionGeneralRepository.cs │ │ │ ├── LoggingMiddleware.cs │ │ │ ├── OidcDiscoveryBackgroundService.cs │ │ │ ├── ProxyHeadersMiddleware.cs │ │ │ ├── RouteBindingMiddleware.cs │ │ │ ├── RouteException.cs │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ └── SiteRouteTransformer.cs │ │ └── Logging │ │ │ ├── ApplicationInsightsTelemetryLogger.cs │ │ │ ├── OpenSearchTelemetryLogger.cs │ │ │ ├── StdoutTelemetryLogger.cs │ │ │ ├── TelemetryLogger.cs │ │ │ ├── TelemetryScopedLogger.cs │ │ │ ├── TelemetryScopedProperties.cs │ │ │ └── TelemetryScopedStreamLogger.cs │ ├── Logic │ │ ├── Base │ │ │ └── LogicBase.cs │ │ ├── Caches │ │ │ ├── DownPartyCacheLogic.cs │ │ │ ├── PlanCacheLogic.cs │ │ │ ├── Providers │ │ │ │ ├── FileCacheProvider.cs │ │ │ │ ├── ICacheProvider.cs │ │ │ │ ├── IDataCacheProvider.cs │ │ │ │ ├── InactiveCacheProvider.cs │ │ │ │ ├── MemoryCacheProvider.cs │ │ │ │ ├── MongoDbCacheProvider.cs │ │ │ │ ├── PostgreSqlCacheProvider.cs │ │ │ │ └── RedisCacheProvider.cs │ │ │ ├── TenantCacheLogic.cs │ │ │ ├── TrackCacheLogic.cs │ │ │ └── UpPartyCacheLogic.cs │ │ ├── Exceptions │ │ │ ├── Account │ │ │ │ ├── AccountActionException.cs │ │ │ │ ├── AccountException.cs │ │ │ │ ├── ChangePasswordException.cs │ │ │ │ ├── InvalidEmailException.cs │ │ │ │ ├── InvalidPasswordException.cs │ │ │ │ ├── InvalidUsernameOrPasswordException.cs │ │ │ │ ├── NewPasswordEqualsCurrentException.cs │ │ │ │ ├── PasswordComplexityException.cs │ │ │ │ ├── PasswordEmailTextComplexityException.cs │ │ │ │ ├── PasswordLengthException.cs │ │ │ │ ├── PasswordPhoneTextComplexityException.cs │ │ │ │ ├── PasswordRiskException.cs │ │ │ │ ├── PasswordUrlTextComplexityException.cs │ │ │ │ ├── PasswordUsernameTextComplexityException.cs │ │ │ │ ├── UserExistsException.cs │ │ │ │ ├── UserNotExistsException.cs │ │ │ │ └── UserObservationPeriodException.cs │ │ │ ├── EmailConfigurationException.cs │ │ │ ├── KeyException.cs │ │ │ ├── PlanException.cs │ │ │ └── X509Certificate2Extensions.cs │ │ ├── Keys │ │ │ ├── ContainedKeyLogic.cs │ │ │ ├── ExternalKeyLogic.cs │ │ │ └── ExternalSecretLogic.cs │ │ ├── Master │ │ │ └── EmbeddedResourceLogic.cs │ │ ├── MasterTenantLogic.cs │ │ ├── OAuth │ │ │ └── OAuthRefreshTokenGrantDownBaseLogic.cs │ │ ├── Parties │ │ │ ├── OidcDiscoveryReadLogic.cs │ │ │ ├── OidcDiscoveryReadModelLogic.cs │ │ │ └── SamlMetadataReadLogic.cs │ │ ├── PlanUsageLogic.cs │ │ ├── SendEmailLogic.cs │ │ ├── SendSmsLogic.cs │ │ └── Tracks │ │ │ ├── BaseAccountLogic.cs │ │ │ ├── ClaimTransformValidationLogic.cs │ │ │ ├── SecretHashLogic.cs │ │ │ └── TrackLogic.cs │ ├── Models │ │ ├── Base │ │ │ ├── DataDocument.cs │ │ │ ├── DataElement.cs │ │ │ ├── DataTtlDocument.cs │ │ │ ├── DateOnlySerializable.cs │ │ │ ├── DefaultElement.cs │ │ │ ├── IDataDocument.cs │ │ │ ├── IDataElement.cs │ │ │ ├── IDataTtlDocument.cs │ │ │ ├── IOAuthClaimTransforms.cs │ │ │ ├── IParty.cs │ │ │ ├── IPartyDataElement.cs │ │ │ ├── ISamlClaimTransforms.cs │ │ │ ├── ISecretHash.cs │ │ │ ├── IUiLoginUpParty.cs │ │ │ ├── IUpParty.cs │ │ │ ├── MasterDocument.cs │ │ │ └── UiLoginUpPartyData.cs │ │ ├── Cache │ │ │ ├── CacheData.cs │ │ │ └── CacheTtlData.cs │ │ ├── Config │ │ │ ├── AddressSettings.cs │ │ │ ├── ApplicationInsights.cs │ │ │ ├── CacheSettings.cs │ │ │ ├── ClientCredentialSettings.cs │ │ │ ├── CosmosDbSettings.cs │ │ │ ├── FileDataSettings.cs │ │ │ ├── InvalidConfigException.cs │ │ │ ├── KeyVaultSettings.cs │ │ │ ├── MongoDbSettings.cs │ │ │ ├── OpenSearchBaseSettings.cs │ │ │ ├── OpenSearchQuerySettings.cs │ │ │ ├── OpenSearchSettings.cs │ │ │ ├── Options │ │ │ │ ├── CacheOptions.cs │ │ │ │ ├── DataCacheOptions.cs │ │ │ │ ├── DataStorageOptions.cs │ │ │ │ ├── KeyStorageOptions.cs │ │ │ │ └── LogOptions.cs │ │ │ ├── OptionsSettings.cs │ │ │ ├── PostgreSqlSettings.cs │ │ │ ├── RedisCacheSettings.cs │ │ │ ├── SendgridSettings.cs │ │ │ ├── Settings.cs │ │ │ ├── SmsSettings.cs │ │ │ └── SmtpSettings.cs │ │ ├── Exceptions │ │ │ └── DataNullException.cs │ │ ├── External │ │ │ └── Sms │ │ │ │ ├── GatewayApiRecipient.cs │ │ │ │ ├── GatewayApiRequest.cs │ │ │ │ ├── GatewayApiResponse.cs │ │ │ │ ├── SmstoolsApiRequest.cs │ │ │ │ └── SmstoolsApiResponse.cs │ │ ├── Grants │ │ │ ├── AuthCodeTtlGrant.cs │ │ │ ├── RefreshTokenGrant.cs │ │ │ ├── RefreshTokenTtlGrant.cs │ │ │ └── SamlUpPartyIdPInitiatedTtlGrant.cs │ │ ├── Logic │ │ │ ├── CreateUserObj.cs │ │ │ ├── EmailContent.cs │ │ │ ├── SmsContent.cs │ │ │ └── UserIdentifier.cs │ │ ├── Master │ │ │ ├── DataProtection.cs │ │ │ ├── Plans │ │ │ │ ├── LogLifetimeOptions.cs │ │ │ │ ├── Plan.cs │ │ │ │ └── PlanItem.cs │ │ │ ├── Resources │ │ │ │ ├── EmbeddedResource.cs │ │ │ │ ├── EmbeddedResource.json │ │ │ │ ├── ResourceCultureItem.cs │ │ │ │ ├── ResourceEditLevels.cs │ │ │ │ ├── ResourceEnvelope.cs │ │ │ │ ├── ResourceItem.cs │ │ │ │ └── ResourceName.cs │ │ │ ├── RiskPassword.cs │ │ │ ├── SmsPrice.cs │ │ │ ├── SmsPrices.cs │ │ │ ├── UsageCurrencyExchange.cs │ │ │ └── UsageSettings.cs │ │ ├── Parties │ │ │ ├── ClaimTransform.cs │ │ │ ├── ClaimTransformActions.cs │ │ │ ├── ClaimTransformTasks.cs │ │ │ ├── ClaimTransformTypes.cs │ │ │ ├── ClientAuthenticationMethods.cs │ │ │ ├── ClientKey.cs │ │ │ ├── ClientKeyTypes.cs │ │ │ ├── CreateUser.cs │ │ │ ├── DownParty.cs │ │ │ ├── DownPartyLink.cs │ │ │ ├── DynamicElement.cs │ │ │ ├── DynamicElementTypes.cs │ │ │ ├── ExternalConnectTypes.cs │ │ │ ├── ExternalLoginUpParty.cs │ │ │ ├── ExternalLoginUpPartyProfile.cs │ │ │ ├── ExternalLoginUsernameTypes.cs │ │ │ ├── LinkExternalUser.cs │ │ │ ├── LoginUpParty.cs │ │ │ ├── LoginUpPartyLogoutConsents.cs │ │ │ ├── OAuthAdditionalParameter.cs │ │ │ ├── OAuthClaimTransform.cs │ │ │ ├── OAuthClientSecret.cs │ │ │ ├── OAuthDownClaim.cs │ │ │ ├── OAuthDownClient.cs │ │ │ ├── OAuthDownParty.cs │ │ │ ├── OAuthDownResource.cs │ │ │ ├── OAuthDownResourceScope.cs │ │ │ ├── OAuthDownScope.cs │ │ │ ├── OAuthUpClient.cs │ │ │ ├── OAuthUpClientProfile.cs │ │ │ ├── OAuthUpParty.cs │ │ │ ├── OAuthUpPartyProfile.cs │ │ │ ├── OidcDownClaim.cs │ │ │ ├── OidcDownClient.cs │ │ │ ├── OidcDownParty.cs │ │ │ ├── OidcDownScope.cs │ │ │ ├── OidcUpClient.cs │ │ │ ├── OidcUpParty.cs │ │ │ ├── Party.cs │ │ │ ├── PartyBindingPatterns.cs │ │ │ ├── PartyDataElement.cs │ │ │ ├── PartyTypes.cs │ │ │ ├── PartyUpdateStates.cs │ │ │ ├── SamlAuthnContextComparisonTypes.cs │ │ │ ├── SamlBinding.cs │ │ │ ├── SamlBindingTypes.cs │ │ │ ├── SamlClaimTransform.cs │ │ │ ├── SamlDownParty.cs │ │ │ ├── SamlMetadataAttributeConsumingService.cs │ │ │ ├── SamlMetadataContactPerson.cs │ │ │ ├── SamlMetadataContactPersonTypes.cs │ │ │ ├── SamlMetadataOrganization.cs │ │ │ ├── SamlMetadataRequestedAttribute.cs │ │ │ ├── SamlMetadataServiceName.cs │ │ │ ├── SamlUpParty.cs │ │ │ ├── SamlUpPartyProfile.cs │ │ │ ├── TrackLinkDownParty.cs │ │ │ ├── TrackLinkUpParty.cs │ │ │ ├── TrackLinkUpPartyProfile.cs │ │ │ ├── UpParty.cs │ │ │ ├── UpPartyLink.cs │ │ │ ├── UpPartyProfile.cs │ │ │ ├── UpPartyWithExternalUser.cs │ │ │ └── UpPartyWithProfile.cs │ │ ├── Routes │ │ │ ├── IRouteBinding.cs │ │ │ ├── RouteBinding.cs │ │ │ ├── RouteTrackKey.cs │ │ │ └── RouteTrackKeyItem.cs │ │ ├── Tenants │ │ │ ├── Address.cs │ │ │ ├── Customer.cs │ │ │ ├── Payment.cs │ │ │ └── Tenant.cs │ │ ├── Tracks │ │ │ ├── CertificateItem.cs │ │ │ ├── ClaimAndValues.cs │ │ │ ├── ClaimMap.cs │ │ │ ├── ExternalUser.cs │ │ │ ├── FailingLoginLock.cs │ │ │ ├── FailingLoginTypes.cs │ │ │ ├── Logs │ │ │ │ ├── Logging.cs │ │ │ │ ├── Logging │ │ │ │ │ ├── ErrorMessageIItem.cs │ │ │ │ │ ├── LogTypes.cs │ │ │ │ │ ├── MetricMessage.cs │ │ │ │ │ ├── OpenSearchErrorLogItem.cs │ │ │ │ │ ├── OpenSearchEventLogItem.cs │ │ │ │ │ ├── OpenSearchLogItem.cs │ │ │ │ │ ├── OpenSearchLogItemBase.cs │ │ │ │ │ ├── OpenSearchMetricLogItem.cs │ │ │ │ │ ├── OpenSearchTraceLogItem.cs │ │ │ │ │ ├── TraceMessageItem.cs │ │ │ │ │ └── TraceTypes.cs │ │ │ │ ├── ScopedLogger.cs │ │ │ │ ├── ScopedStreamApplicationInsightsSettings.cs │ │ │ │ ├── ScopedStreamLogger.cs │ │ │ │ ├── ScopedStreamLoggerTypes.cs │ │ │ │ ├── UsageLogSendTypes.cs │ │ │ │ ├── UsageLogTokenTypes.cs │ │ │ │ └── UsageLogTypes.cs │ │ │ ├── SendEmail.cs │ │ │ ├── SendSms.cs │ │ │ ├── SendSmsTypes.cs │ │ │ ├── Track.cs │ │ │ ├── TrackKey.cs │ │ │ ├── TrackKeyExternal.cs │ │ │ ├── TrackKeyExternalItem.cs │ │ │ ├── TrackKeyItem.cs │ │ │ ├── TrackKeyTypes.cs │ │ │ ├── TwoFactorAppRecoveryCode.cs │ │ │ ├── User.cs │ │ │ └── UserControlProfile.cs │ │ └── Usage │ │ │ ├── Invoice.cs │ │ │ ├── InvoiceLine.cs │ │ │ ├── Seller.cs │ │ │ ├── UsageInvoiceSendStatus.cs │ │ │ ├── UsagePaymentStatus.cs │ │ │ ├── Used.cs │ │ │ ├── UsedItem.cs │ │ │ └── UsedItemTypes.cs │ └── Repository │ │ ├── CosmosDb │ │ ├── CosmosDbDataRepositoryBulkClient.cs │ │ ├── CosmosDbDataRepositoryClient.cs │ │ ├── CosmosDbDataRepositoryClientBase.cs │ │ ├── CosmosDbMasterDataRepository.cs │ │ ├── CosmosDbTenantDataRepository.cs │ │ ├── ICosmosDbDataRepositoryBulkClient.cs │ │ └── ICosmosDbDataRepositoryClient.cs │ │ ├── Exceptions │ │ ├── DataStatusCode.cs │ │ └── FoxIDsDataException.cs │ │ ├── Files │ │ ├── BackgroundFileDataService.cs │ │ ├── FileDataRepository.cs │ │ ├── FileMasterDataRepository.cs │ │ └── FileTenantDataRepository.cs │ │ ├── IMasterDataRepository.cs │ │ ├── ITenantDataRepository.cs │ │ ├── MasterDataRepositoryBase.cs │ │ ├── MongoDb │ │ ├── MongoDbJsonPropertyConvention.cs │ │ ├── MongoDbMasterDataRepository.cs │ │ ├── MongoDbRepositoryClient.cs │ │ └── MongoDbTenantDataRepository.cs │ │ ├── PostgreSql │ │ ├── BackgroundPgDataService.cs │ │ ├── PgMasterDataRepository.cs │ │ └── PgTenantDataRepository.cs │ │ └── TenantDataRepositoryBase.cs ├── FoxIDs.SharedBase │ ├── Constants.cs │ ├── Extensions │ │ ├── HashExtensions.cs │ │ ├── HttpClientExtensions.cs │ │ ├── HttpResponseMessageExtensions.cs │ │ ├── JsonFoxIDsApiSerializerExtensions.cs │ │ ├── JsonSerializerExtensions.cs │ │ └── ListExtensions.cs │ ├── FoxIDs.SharedBase.csproj │ ├── Infrastructure │ │ ├── DataAnnotations │ │ │ ├── EmailAddressEmptyStringAttribute.cs │ │ │ ├── Exceptions │ │ │ │ └── ValidationResultException.cs │ │ │ ├── ListLengthAttribute.cs │ │ │ ├── MaxAttribute.cs │ │ │ └── MinAttribute.cs │ │ └── FoxIDsApiException.cs │ └── Util │ │ └── RandomName.cs └── FoxIDs │ ├── Connected Services │ └── Application Insights │ │ └── ConnectedService.json │ ├── Controllers │ ├── ActionController.cs │ ├── EndpointController.cs │ ├── ExtController.cs │ ├── ExtLoginController.cs │ ├── LoginController.cs │ ├── MfaController.cs │ ├── OAuthController.cs │ ├── OAuthUpJumpController.cs │ ├── OpenIDConfigController.cs │ ├── SamlController.cs │ ├── SamlUpJumpController.cs │ ├── Site │ │ ├── ErrorController.cs │ │ ├── HealthController.cs │ │ └── WController.cs │ └── TrackLinkController.cs │ ├── Dockerfile │ ├── Extensions │ ├── DynamicElementExtension.cs │ ├── HtmlActionExtensions.cs │ ├── HtmlHelperExtensions.cs │ ├── HttpContextExtensions.cs │ ├── JsonWebKeyExtensions.cs │ ├── RouteBindingExtensions.cs │ ├── Saml2BindingExtensions.cs │ └── SequenceExtensions.cs │ ├── FoxIDs.csproj │ ├── Infrastructure │ ├── DataAnnotations │ │ ├── MaxLengthMessageAttribute.cs │ │ └── RequiredMessageAttribute.cs │ ├── Filters │ │ ├── FoxIDsHttpSecurityHeadersAttribute.cs │ │ ├── OAuthBearerTokenUsageExceptionAttribute.cs │ │ └── SequenceAttribute.cs │ ├── Hosting │ │ ├── ApplicationBuilderExtensions.cs │ │ ├── CorsPolicyProvider.cs │ │ ├── FoxIDsProxyHeadersMiddleware.cs │ │ ├── FoxIDsRouteBindingMiddleware.cs │ │ ├── FoxIDsRouteTransformer.cs │ │ └── ServiceCollectionExtensions.cs │ ├── Localization │ │ ├── FoxIDsStringLocalizer.cs │ │ ├── FoxIDsStringLocalizerFactory.cs │ │ └── LocalizedValidationAttributeAdapterProvider.cs │ └── Saml2 │ │ ├── FoxIdsSaml2AuthnResponse.cs │ │ ├── FoxIdsSaml2TokenExchangeBinding.cs │ │ └── FoxIdsSaml2TokenExchangeRequest.cs │ ├── Logic │ ├── Base │ │ └── LogicSequenceBase.cs │ ├── Exceptions │ │ ├── CodeNotExistsException.cs │ │ ├── EndpointException.cs │ │ ├── ExternalKeyIsNotReadyException.cs │ │ ├── InvalidAppCodeException.cs │ │ ├── InvalidCodeException.cs │ │ ├── InvalidRecoveryCodeException.cs │ │ ├── OAuthRefreshTokenGrantNotFoundException.cs │ │ ├── OAuthRequestException.cs │ │ ├── SamlRequestException.cs │ │ ├── SamlResponseException.cs │ │ ├── SequenceBrowserBackException.cs │ │ ├── SequenceException.cs │ │ ├── SequenceTimeoutException.cs │ │ └── StopSequenceException.cs │ ├── ExternalLogin │ │ ├── ExternalLoginConnectLogic.cs │ │ ├── ExternalLoginPageLogic.cs │ │ ├── ExternalLoginUpLogic.cs │ │ └── ExternalLogoutUpLogic.cs │ ├── Link │ │ ├── TrackLinkAuthDownLogic.cs │ │ ├── TrackLinkAuthUpLogic.cs │ │ ├── TrackLinkFrontChannelLogoutDownLogic.cs │ │ ├── TrackLinkFrontChannelLogoutUpLogic.cs │ │ ├── TrackLinkRpInitiatedLogoutDownLogic.cs │ │ └── TrackLinkRpInitiatedLogoutUpLogic.cs │ ├── LocalizationLogic.cs │ ├── Login │ │ ├── AccountActionLogic.cs │ │ ├── AccountLogic.cs │ │ ├── AccountTwoFactorAppLogic.cs │ │ ├── CountryCodesLogic.cs │ │ ├── FailingLoginLogic.cs │ │ ├── LoginPageLogic.cs │ │ ├── LoginUpLogic.cs │ │ ├── LogoutUpLogic.cs │ │ └── SingleLogoutLogic.cs │ ├── OAuth │ │ ├── OAuthAuthCodeGrantDownLogic.cs │ │ ├── OAuthAuthUpLogic.cs │ │ ├── OAuthJwtDownLogic.cs │ │ ├── OAuthJwtUpLogic.cs │ │ ├── OAuthRefreshTokenGrantDownLogic.cs │ │ ├── OAuthResourceScopeDownLogic.cs │ │ ├── OAuthTokenDownLogic.cs │ │ └── OAuthTokenExchangeDownLogic.cs │ ├── Oidc │ │ ├── ClientKeySecretLogic.cs │ │ ├── OidcAuthDownLogic.cs │ │ ├── OidcAuthUpLogic.cs │ │ ├── OidcDiscoveryExposeDownLogic.cs │ │ ├── OidcDiscoveryReadUpLogic.cs │ │ ├── OidcFrontChannelLogoutDownLogic.cs │ │ ├── OidcFrontChannelLogoutUpLogic.cs │ │ ├── OidcJwtDownLogic.cs │ │ ├── OidcJwtUpLogic.cs │ │ ├── OidcRpInitiatedLogoutDownLogic.cs │ │ ├── OidcRpInitiatedLogoutUpLogic.cs │ │ ├── OidcTokenDownLogic.cs │ │ └── OidcUserInfoDownLogic.cs │ ├── Saml │ │ ├── SamlAuthnDownLogic.cs │ │ ├── SamlAuthnUpIdPInitiatedGrantLogic.cs │ │ ├── SamlAuthnUpLogic.cs │ │ ├── SamlClaimsDownLogic.cs │ │ ├── SamlConfigurationLogic.cs │ │ ├── SamlConvertLogic.cs │ │ ├── SamlLogoutDownLogic.cs │ │ ├── SamlLogoutUpLogic.cs │ │ ├── SamlMetadataExposeLogic.cs │ │ └── SamlMetadataReadUpLogic.cs │ ├── SecurityHeaderLogic.cs │ ├── SequenceLogic.cs │ └── Tracks │ │ ├── ClaimTransformLogic.cs │ │ ├── ClaimValidationLogic.cs │ │ ├── ClaimsDownLogic.cs │ │ ├── ClaimsOAuthDownLogic.cs │ │ ├── DynamicElementLogic.cs │ │ ├── ExternalClaimsConnectLogic.cs │ │ ├── ExternalUserLogic.cs │ │ ├── HrdLogic.cs │ │ ├── SessionBaseLogic.cs │ │ ├── SessionLoginUpPartyLogic.cs │ │ ├── SessionUpPartyLogic.cs │ │ ├── StateUpPartyLogic.cs │ │ ├── TrackIssuerLogic.cs │ │ └── TrackKeyLogic.cs │ ├── Models │ ├── Config │ │ └── FoxIDsSettings.cs │ ├── External │ │ ├── ClaimValue.cs │ │ ├── Claims │ │ │ ├── ClaimsRequest.cs │ │ │ └── ClaimsResponse.cs │ │ ├── ErrorResponse.cs │ │ ├── InvalidAppIdOrSecretException.cs │ │ └── Login │ │ │ ├── AuthenticationRequest.cs │ │ │ └── AuthenticationResponse.cs │ ├── FoxIDsSaml2Configuration.cs │ ├── Logic │ │ ├── ConfirmationCode.cs │ │ ├── CountryCode.cs │ │ ├── CountryCodes.cs │ │ ├── CountryCodes.json │ │ ├── DkPrivilegeGroup.cs │ │ ├── ILoginRequest.cs │ │ ├── IdPInitiatedDownPartyLink.cs │ │ ├── LoginAction.cs │ │ ├── LoginRequest.cs │ │ ├── LoginResponseSequenceSteps.cs │ │ ├── LoginSequenceError.cs │ │ ├── LoginUserIdentifier.cs │ │ └── LogoutRequest.cs │ ├── Sequences │ │ ├── Base │ │ │ ├── IDownSequenceData.cs │ │ │ ├── ILoginUpSequenceDataBase.cs │ │ │ ├── ISequenceData.cs │ │ │ ├── ISequenceKey.cs │ │ │ └── IUpSequenceData.cs │ │ ├── DownSequenceData.cs │ │ ├── ExternalLoginUpSequenceData.cs │ │ ├── ExternalUserUpSequenceData.cs │ │ ├── HrdUpPartySequenceData.cs │ │ ├── LoginUpSequenceData.cs │ │ ├── OidcDownSequenceData.cs │ │ ├── OidcUpSequenceData.cs │ │ ├── SamlDownSequenceData.cs │ │ ├── SamlUpSequenceData.cs │ │ ├── Sequence.cs │ │ ├── SequenceAction.cs │ │ ├── SequenceStep.cs │ │ ├── SingleLogoutSequenceData.cs │ │ ├── StateUpPartyCookie.cs │ │ ├── TrackLinkDownSequenceData.cs │ │ ├── TrackLinkUpSequenceData.cs │ │ ├── TwoFactorAppSequenceStates.cs │ │ └── UpSequenceData.cs │ ├── Session │ │ ├── CookieEnvelope.cs │ │ ├── CookieMessage.cs │ │ ├── DownPartySessionLink.cs │ │ ├── HrdTrackCookie.cs │ │ ├── HrdUpPartyCookieData.cs │ │ ├── SessionBaseCookie.cs │ │ ├── SessionLoginUpPartyCookie.cs │ │ ├── SessionTrackCookie.cs │ │ ├── SessionTrackCookieGroup.cs │ │ ├── SessionUpPartyCookie.cs │ │ └── UpPartySessionLink.cs │ ├── TwoFactorSetupInfo.cs │ └── ViewModels │ │ ├── Abstracts │ │ └── ViewModel.cs │ │ ├── Action │ │ ├── ConfirmationCodeSendStatus.cs │ │ ├── EmailConfirmationViewModel.cs │ │ ├── EmailSetPasswordViewModel.cs │ │ ├── PhoneConfirmationViewModel.cs │ │ ├── PhoneSetPasswordViewModel.cs │ │ └── SetPasswordBaseViewModel.cs │ │ ├── DynamicElements │ │ ├── DynamicElementBase.cs │ │ ├── EmailDElement.cs │ │ ├── EmailRequiredDElement.cs │ │ ├── FamilyNameDElement.cs │ │ ├── FamilyNameRequiredDElement.cs │ │ ├── GivenNameDElement.cs │ │ ├── GivenNameRequiredDElement.cs │ │ ├── NameDElement.cs │ │ ├── NameRequiredDElement.cs │ │ ├── PasswordDElement.cs │ │ ├── PhoneDElement.cs │ │ ├── PhoneRequiredDElement.cs │ │ ├── UsernameDElement.cs │ │ └── UsernameRequiredDElement.cs │ │ ├── ErrorViewModel.cs │ │ ├── Ext │ │ └── CreateExternalUserViewModel.cs │ │ ├── ExtLogin │ │ ├── ExternalLoginEmailViewModel.cs │ │ ├── ExternalLoginResponseViewModel.cs │ │ └── ExternalLoginTextViewModel.cs │ │ ├── Login │ │ ├── ChangePasswordViewModel.cs │ │ ├── CreateUserViewModel.cs │ │ ├── IdentifierUpPartyViewModel.cs │ │ ├── IdentifierViewModel.cs │ │ ├── Identifiers │ │ │ ├── EmailIdentifierViewModel.cs │ │ │ ├── EmailPasswordViewModel.cs │ │ │ ├── PhoneEmailIdentifierViewModel.cs │ │ │ ├── PhoneEmailPasswordViewModel.cs │ │ │ ├── PhoneIdentifierViewModel.cs │ │ │ ├── PhonePasswordViewModel.cs │ │ │ ├── UsernameEmailIdentifierViewModel.cs │ │ │ ├── UsernameEmailPasswordViewModel.cs │ │ │ ├── UsernameIdentifierViewModel.cs │ │ │ ├── UsernamePasswordViewModel.cs │ │ │ ├── UsernamePhoneEmailIdentifierViewModel.cs │ │ │ ├── UsernamePhoneEmailPasswordViewModel.cs │ │ │ ├── UsernamePhoneIdentifierViewModel.cs │ │ │ └── UsernamePhonePasswordViewModel.cs │ │ ├── LoggedInViewModel.cs │ │ ├── LoggedOutViewModel.cs │ │ ├── LoginBaseViewModel.cs │ │ ├── LoginViewModel.cs │ │ ├── LogoutChoice.cs │ │ ├── LogoutViewModel.cs │ │ ├── PasswordViewModel.cs │ │ ├── PasswordlessEmailViewModel.cs │ │ └── PasswordlessSmsViewModel.cs │ │ └── Mfa │ │ ├── RecoveryCodeTwoFactorAppViewModel.cs │ │ ├── RegisterTwoFactorAppViewModel.cs │ │ ├── TwoFactorAppViewModel.cs │ │ ├── TwoFactorEmailViewModel.cs │ │ ├── TwoFactorSendBaseViewModel.cs │ │ └── TwoFactorSmsViewModel.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Repository │ ├── CookieRepositoryBase.cs │ ├── TrackCookieRepository.cs │ └── UpPartyCookieRepository.cs │ ├── Startup.cs │ ├── Views │ ├── Action │ │ ├── EmailConfirmation.cshtml │ │ ├── EmailSetPassword.cshtml │ │ ├── PhoneConfirmation.cshtml │ │ └── PhoneSetPassword.cshtml │ ├── Error │ │ └── Index.cshtml │ ├── Ext │ │ └── CreateUser.cshtml │ ├── ExtLogin │ │ ├── LoggedOut.cshtml │ │ ├── LoginEmail.cshtml │ │ ├── LoginText.cshtml │ │ └── Logout.cshtml │ ├── Login │ │ ├── ChangePassword.cshtml │ │ ├── CreateUser.cshtml │ │ ├── Identifier.cshtml │ │ ├── LoggedIn.cshtml │ │ ├── LoggedOut.cshtml │ │ ├── Logout.cshtml │ │ ├── Password.cshtml │ │ ├── PasswordlessEmail.cshtml │ │ └── PasswordlessSms.cshtml │ ├── Mfa │ │ ├── AppTwoFactor.cshtml │ │ ├── AppTwoFactorRecCode.cshtml │ │ ├── AppTwoFactorReg.cshtml │ │ ├── EmailTwoFactor.cshtml │ │ └── SmsTwoFactor.cshtml │ ├── Shared │ │ ├── _Layout.cshtml │ │ ├── _UserIdentifiers.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── W │ │ └── Index.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml │ ├── appsettings.json │ ├── bundleconfig.json │ ├── web.Release.config │ ├── web.config │ └── wwwroot │ ├── css │ ├── site.css │ └── site1.min.css │ ├── favicon.ico │ ├── images │ └── foxids_logo.svg │ ├── js │ ├── site.js │ └── site1.min.js │ ├── lib │ ├── bootstrap │ │ └── dist │ │ │ ├── css │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ └── bootstrap.min.css │ │ │ └── js │ │ │ ├── bootstrap.bundle.js │ │ │ ├── bootstrap.bundle.js.map │ │ │ └── bootstrap.bundle.min.js │ ├── jquery-validation-unobtrusive │ │ └── dist │ │ │ ├── jquery.validate.unobtrusive.js │ │ │ └── jquery.validate.unobtrusive.min.js │ ├── jquery-validation │ │ └── dist │ │ │ ├── jquery.validate.js │ │ │ └── jquery.validate.min.js │ └── jquery │ │ └── dist │ │ ├── jquery.js │ │ └── jquery.min.js │ └── robots.txt ├── test ├── FoxIDs.IntegrationTests │ ├── AccountLogicTests.cs │ ├── DatabaseCollection.cs │ ├── FoxIDs.IntegrationTests.csproj │ ├── Helpers │ │ ├── DatabaseFixture.cs │ │ └── RepositoriesHelper.cs │ └── TenantRepositoryTests.cs └── FoxIDs.UnitTests │ ├── AccountLogicTests.cs │ ├── ClaimTransformLogicTests.cs │ ├── Fakes │ ├── FakeMasterRepository.cs │ └── FakeTenantRepository.cs │ ├── FoxIDs.UnitTests.csproj │ ├── Helpers │ └── TelemetryLoggerHelper.cs │ └── MockHelpers │ └── HttpContextAccessorHelper.cs └── tools ├── FoxIDs.ConvertCertificateTool ├── FoxIDs.ConvertCertificateTool.csproj ├── Program.cs ├── README.md └── oces3_-test-_systemcertifikat.p12 ├── FoxIDs.MasterSeedTool ├── Extensions │ ├── HttpClientExtensions.cs │ └── HttpResponseMessageExtensions.cs ├── FoxIDs.MasterSeedTool.csproj ├── Infrastructure │ └── StartupConfigure.cs ├── Logic │ └── AccessLogic.cs ├── Models │ ├── ApiModels │ │ ├── RiskPasswordApiModel.cs │ │ ├── RiskPasswordDeleteApiModel.cs │ │ └── RiskPasswordRequestApiModel.cs │ └── SeedSettings.cs ├── Program.cs ├── SeedLogic │ └── RiskPasswordSeedLogic.cs └── appsettings.json ├── FoxIDs.PGMigrator ├── FoxIDs.PGMigrator.csproj ├── Migrator.cs ├── Program.cs └── appsettings.json ├── FoxIDs.ResourceTranslateTool ├── FoxIDs.ResourceTranslateTool.csproj ├── Infrastructure │ └── StartupConfigure.cs ├── Logic │ ├── DeepLTranslateLogic.cs │ ├── GoogleTranslateLogic.cs │ └── ResourceLogic.cs ├── Models │ └── TranslateSettings.cs ├── Program.cs ├── README.md └── appsettings.json └── FoxIDs.SeedTool ├── Extensions ├── HttpClientExtensions.cs └── HttpResponseMessageExtensions.cs ├── FoxIDs.SeedTool.csproj ├── Infrastructure └── StartupConfigure.cs ├── Logic └── AccessLogic.cs ├── Models ├── ApiModels │ ├── ClaimAndValuesApiModel.cs │ ├── CreateUserApiModel.cs │ ├── PaginationResponseApiModel.cs │ ├── UserApiModel.cs │ ├── UserBaseApiModel.cs │ ├── UsersDeleteApiModel.cs │ └── UsersRequestApiModel.cs └── SeedSettings.cs ├── Program.cs ├── SeedLogic └── UserSeedLogic.cs └── appsettings.json /.dockerignore: -------------------------------------------------------------------------------- 1 | **/.classpath 2 | **/.dockerignore 3 | **/.env 4 | **/.git 5 | **/.gitignore 6 | **/.project 7 | **/.settings 8 | **/.toolstarget 9 | **/.vs 10 | **/.vscode 11 | **/*.*proj.user 12 | **/*.dbmdl 13 | **/*.jfm 14 | **/azds.yaml 15 | **/bin 16 | **/charts 17 | **/docker-compose* 18 | **/Dockerfile* 19 | **/node_modules 20 | **/npm-debug.log 21 | **/obj 22 | **/secrets.dev.yaml 23 | **/values.dev.yaml 24 | .github 25 | azuredeploy.json 26 | LICENSE 27 | README.md -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: ITfoxtec 4 | -------------------------------------------------------------------------------- /Kubernetes/k8s-mongo-configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: mongo-configmap 5 | data: 6 | database_url: mongo-service -------------------------------------------------------------------------------- /Kubernetes/k8s-mongo-pv-dockerdesktop.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolume 3 | metadata: 4 | name: mongo-data-pv 5 | spec: 6 | capacity: 7 | storage: 2Gi 8 | volumeMode: Filesystem 9 | accessModes: 10 | - ReadWriteOnce 11 | persistentVolumeReclaimPolicy: Retain 12 | storageClassName: standard 13 | hostPath: 14 | # local directory c:\data\foxids-data\mongo on Docker Desktop host machine 15 | path: "/run/desktop/mnt/host/c/data/foxids-data/mongo" 16 | type: "" -------------------------------------------------------------------------------- /Kubernetes/k8s-mongo-pvc-dockerdesktop.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: mongo-data-pvc 5 | spec: 6 | storageClassName: standard 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 2Gi -------------------------------------------------------------------------------- /Kubernetes/k8s-mongo-pvc-dynamic.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: mongo-data-pvc 5 | spec: 6 | accessModes: 7 | - ReadWriteOnce 8 | resources: 9 | requests: 10 | storage: 2Gi 11 | #storageClassName: standard -------------------------------------------------------------------------------- /Kubernetes/k8s-mongo-secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: mongo-secret 5 | type: Opaque 6 | data: 7 | mongo-username: dXNlcm5hbWU= 8 | mongo-password: cGFzc3dvcmQ= -------------------------------------------------------------------------------- /Kubernetes/k8s-postgres-configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: postgres-configmap 5 | data: 6 | database_url: postgres-db -------------------------------------------------------------------------------- /Kubernetes/k8s-postgres-secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: postgres-secret 5 | type: Opaque 6 | data: 7 | postgres-username: dXNlcm5hbWU= 8 | postgres-password: cGFzc3dvcmQ= -------------------------------------------------------------------------------- /Kubernetes/k8s-redis-configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: redis-configmap 5 | data: 6 | database_url: redis-service -------------------------------------------------------------------------------- /Kubernetes/k8s-redis-pv-dockerdesktop.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolume 3 | metadata: 4 | name: redis-data-pv 5 | spec: 6 | capacity: 7 | storage: 1Gi 8 | volumeMode: Filesystem 9 | accessModes: 10 | - ReadWriteOnce 11 | persistentVolumeReclaimPolicy: Retain 12 | storageClassName: standard 13 | hostPath: 14 | # local directory c:\data\foxids-data\redis on Docker Desktop host machine 15 | path: "/run/desktop/mnt/host/c/data/foxids-data/redis" 16 | type: "" -------------------------------------------------------------------------------- /Kubernetes/k8s-redis-pvc-dockerdesktop.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: redis-data-pvc 5 | spec: 6 | storageClassName: standard 7 | accessModes: 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 1Gi -------------------------------------------------------------------------------- /Kubernetes/k8s-redis-pvc-dynamic.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: redis-data-pvc 5 | spec: 6 | accessModes: 7 | - ReadWriteOnce 8 | resources: 9 | requests: 10 | storage: 1Gi 11 | #storageClassName: standard -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # FoxIDs documentation 2 | This folder contains the FoxIDs documentation, the documentation is rendered [here](https://www.foxids.com/docs). 3 | -------------------------------------------------------------------------------- /docs/images/bridge.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/bridge.vsdx -------------------------------------------------------------------------------- /docs/images/claims.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/claims.vsdx -------------------------------------------------------------------------------- /docs/images/configure-authorization-code-flow-pkce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-authorization-code-flow-pkce.png -------------------------------------------------------------------------------- /docs/images/configure-authorization-code-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-authorization-code-flow.png -------------------------------------------------------------------------------- /docs/images/configure-certificate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-certificate.png -------------------------------------------------------------------------------- /docs/images/configure-claim-task-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-claim-task-auth-method.png -------------------------------------------------------------------------------- /docs/images/configure-claim-transform-app-reg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-claim-transform-app-reg.png -------------------------------------------------------------------------------- /docs/images/configure-claim-transform-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-claim-transform-auth-method.png -------------------------------------------------------------------------------- /docs/images/configure-client-api-client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-client-api-client.png -------------------------------------------------------------------------------- /docs/images/configure-client-api-resource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-client-api-resource.png -------------------------------------------------------------------------------- /docs/images/configure-client-credentials-grant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-client-credentials-grant.png -------------------------------------------------------------------------------- /docs/images/configure-connections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-connections.png -------------------------------------------------------------------------------- /docs/images/configure-default-scope-claims.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-default-scope-claims.png -------------------------------------------------------------------------------- /docs/images/configure-email-provider-environment-sendgrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-email-provider-environment-sendgrid.png -------------------------------------------------------------------------------- /docs/images/configure-email-provider-environment-smtp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-email-provider-environment-smtp.png -------------------------------------------------------------------------------- /docs/images/configure-env-name-address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-env-name-address.png -------------------------------------------------------------------------------- /docs/images/configure-environment-setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-environment-setting.png -------------------------------------------------------------------------------- /docs/images/configure-environment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-environment.png -------------------------------------------------------------------------------- /docs/images/configure-external-claims-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-external-claims-config.png -------------------------------------------------------------------------------- /docs/images/configure-external-login-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-external-login-config.png -------------------------------------------------------------------------------- /docs/images/configure-external-login-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-external-login-ui.png -------------------------------------------------------------------------------- /docs/images/configure-foxids_control_api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-foxids_control_api.png -------------------------------------------------------------------------------- /docs/images/configure-implicit-code-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-implicit-code-flow.png -------------------------------------------------------------------------------- /docs/images/configure-jwt-saml-mappings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-jwt-saml-mappings.png -------------------------------------------------------------------------------- /docs/images/configure-log-stream-appinsight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-log-stream-appinsight.png -------------------------------------------------------------------------------- /docs/images/configure-log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-log.png -------------------------------------------------------------------------------- /docs/images/configure-login-2fa-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-login-2fa-example.png -------------------------------------------------------------------------------- /docs/images/configure-login-2fa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-login-2fa.png -------------------------------------------------------------------------------- /docs/images/configure-login-advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-login-advanced.png -------------------------------------------------------------------------------- /docs/images/configure-login-css-backbround-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-login-css-backbround-image.png -------------------------------------------------------------------------------- /docs/images/configure-login-css-backbround-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-login-css-backbround-logo.png -------------------------------------------------------------------------------- /docs/images/configure-login-css-sample-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-login-css-sample-test.png -------------------------------------------------------------------------------- /docs/images/configure-login-customisation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-login-customisation.png -------------------------------------------------------------------------------- /docs/images/configure-login-hrd-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-login-hrd-example.png -------------------------------------------------------------------------------- /docs/images/configure-login-hrd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-login-hrd.png -------------------------------------------------------------------------------- /docs/images/configure-login-session.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-login-session.png -------------------------------------------------------------------------------- /docs/images/configure-login-title-icon-css.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-login-title-icon-css.png -------------------------------------------------------------------------------- /docs/images/configure-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-login.png -------------------------------------------------------------------------------- /docs/images/configure-oauth-resource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-oauth-resource.png -------------------------------------------------------------------------------- /docs/images/configure-oidc-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-oidc-auth-method.png -------------------------------------------------------------------------------- /docs/images/configure-oidc-lifetime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-oidc-lifetime.png -------------------------------------------------------------------------------- /docs/images/configure-plan-tenant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-plan-tenant.png -------------------------------------------------------------------------------- /docs/images/configure-plan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-plan.png -------------------------------------------------------------------------------- /docs/images/configure-resource-scopes-client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-resource-scopes-client.png -------------------------------------------------------------------------------- /docs/images/configure-resource-scopes-resource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-resource-scopes-resource.png -------------------------------------------------------------------------------- /docs/images/configure-reverse-proxy-secret-firewall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-reverse-proxy-secret-firewall.png -------------------------------------------------------------------------------- /docs/images/configure-reverse-proxy-secret-permissions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-reverse-proxy-secret-permissions.png -------------------------------------------------------------------------------- /docs/images/configure-reverse-proxy-secret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-reverse-proxy-secret.png -------------------------------------------------------------------------------- /docs/images/configure-saml-adfs-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-saml-adfs-auth-method.png -------------------------------------------------------------------------------- /docs/images/configure-saml-app-reg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-saml-app-reg.png -------------------------------------------------------------------------------- /docs/images/configure-saml-auth-method-idp-initiated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-saml-auth-method-idp-initiated.png -------------------------------------------------------------------------------- /docs/images/configure-saml-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-saml-auth-method.png -------------------------------------------------------------------------------- /docs/images/configure-saml-googleworkspace-add-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-saml-googleworkspace-add-app.png -------------------------------------------------------------------------------- /docs/images/configure-saml-googleworkspace-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-saml-googleworkspace-app.png -------------------------------------------------------------------------------- /docs/images/configure-saml-googleworkspace-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-saml-googleworkspace-auth-method.png -------------------------------------------------------------------------------- /docs/images/configure-saml-googleworkspace-start-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-saml-googleworkspace-start-auth-method.png -------------------------------------------------------------------------------- /docs/images/configure-saml-manual-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-saml-manual-auth-method.png -------------------------------------------------------------------------------- /docs/images/configure-tenant-adminuser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-tenant-adminuser.png -------------------------------------------------------------------------------- /docs/images/configure-tenant-custom-domain-environment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-tenant-custom-domain-environment.png -------------------------------------------------------------------------------- /docs/images/configure-tenant-custom-domain-my-environment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-tenant-custom-domain-my-environment.png -------------------------------------------------------------------------------- /docs/images/configure-tenant-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-tenant-text.png -------------------------------------------------------------------------------- /docs/images/configure-tenant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-tenant.png -------------------------------------------------------------------------------- /docs/images/configure-user-mfa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-user-mfa.png -------------------------------------------------------------------------------- /docs/images/configure-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/configure-user.png -------------------------------------------------------------------------------- /docs/images/connections.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/connections.vsdx -------------------------------------------------------------------------------- /docs/images/deployment-window-iis-add-website.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/deployment-window-iis-add-website.png -------------------------------------------------------------------------------- /docs/images/deployment-window-iis-my-cert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/deployment-window-iis-my-cert.png -------------------------------------------------------------------------------- /docs/images/environments.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/environments.vsdx -------------------------------------------------------------------------------- /docs/images/example-claim-transform-name-to-given_name-family_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/example-claim-transform-name-to-given_name-family_name.png -------------------------------------------------------------------------------- /docs/images/example-claim-transform-remove-post-auth-method-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/example-claim-transform-remove-post-auth-method-name.png -------------------------------------------------------------------------------- /docs/images/faq-pass-through-all-claims-app-reg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/faq-pass-through-all-claims-app-reg.png -------------------------------------------------------------------------------- /docs/images/faq-pass-through-all-claims-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/faq-pass-through-all-claims-auth-method.png -------------------------------------------------------------------------------- /docs/images/fqa-matching-issuer-authority.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/fqa-matching-issuer-authority.png -------------------------------------------------------------------------------- /docs/images/get-started-first-access.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/get-started-first-access.png -------------------------------------------------------------------------------- /docs/images/get-started-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/get-started-login.png -------------------------------------------------------------------------------- /docs/images/get-started-new-app-reg-conf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/get-started-new-app-reg-conf.png -------------------------------------------------------------------------------- /docs/images/get-started-new-app-reg-done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/get-started-new-app-reg-done.png -------------------------------------------------------------------------------- /docs/images/get-started-new-app-reg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/get-started-new-app-reg.png -------------------------------------------------------------------------------- /docs/images/get-started-test-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/get-started-test-user.png -------------------------------------------------------------------------------- /docs/images/how-to-context-handler-foxids-idp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/how-to-context-handler-foxids-idp.png -------------------------------------------------------------------------------- /docs/images/how-to.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/how-to.vsdx -------------------------------------------------------------------------------- /docs/images/howto-environmentlink-foxids-auth-method-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-environmentlink-foxids-auth-method-select.png -------------------------------------------------------------------------------- /docs/images/howto-environmentlink-foxids-auth-method-y-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-environmentlink-foxids-auth-method-y-select.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-amazon-cognito-app-client-client-id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-amazon-cognito-app-client-client-id.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-amazon-cognito-app-client-logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-amazon-cognito-app-client-logout.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-amazon-cognito-app-client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-amazon-cognito-app-client.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-amazon-cognito-authority.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-amazon-cognito-authority.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-amazon-cognito-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-amazon-cognito-config.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-amazon-cognito-urls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-amazon-cognito-urls.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-amazon-cognito-user-pool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-amazon-cognito-user-pool.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-amazon-iam-ic-acs-issuer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-amazon-iam-ic-acs-issuer.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-amazon-iam-ic-binding-format.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-amazon-iam-ic-binding-format.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-amazon-iam-ic-certificate-change.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-amazon-iam-ic-certificate-change.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-amazon-iam-ic-certificate-type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-amazon-iam-ic-certificate-type.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-amazon-iam-ic-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-amazon-iam-ic-create.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-azuread-readredirect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-azuread-readredirect.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-facebook-app-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-facebook-app-details.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-facebook-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-facebook-config.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-facebook-email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-facebook-email.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-facebook-readredirect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-facebook-readredirect.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-facebook-redirect-url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-facebook-redirect-url.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-facebook-select-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-facebook-select-login.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-foxids-auth-method-readredirect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-foxids-auth-method-readredirect.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-foxids-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-foxids-auth-method.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-foxids-parallel-app-reg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-foxids-parallel-app-reg.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-google-appclient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-google-appclient.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-google-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-google-config.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-google-readredirect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-google-readredirect.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-google-scopes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-google-scopes.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-google-usertype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-google-usertype.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-identityserver-readredirect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-identityserver-readredirect.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-nets-eid-broker-claim-transform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-nets-eid-broker-claim-transform.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-nets-eid-broker-external-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-nets-eid-broker-external-user.png -------------------------------------------------------------------------------- /docs/images/howto-oidc-nets-eid-broker-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-oidc-nets-eid-broker-profile.png -------------------------------------------------------------------------------- /docs/images/howto-saml-claim-mappings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-claim-mappings.png -------------------------------------------------------------------------------- /docs/images/howto-saml-context-handler-app-base-config-reg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-context-handler-app-base-config-reg.png -------------------------------------------------------------------------------- /docs/images/howto-saml-context-handler-app-base-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-context-handler-app-base-config.png -------------------------------------------------------------------------------- /docs/images/howto-saml-context-handler-app-ct1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-context-handler-app-ct1.png -------------------------------------------------------------------------------- /docs/images/howto-saml-context-handler-app-ct2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-context-handler-app-ct2.png -------------------------------------------------------------------------------- /docs/images/howto-saml-context-handler-auth-attributes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-context-handler-auth-attributes.png -------------------------------------------------------------------------------- /docs/images/howto-saml-context-handler-auth-nameidformat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-context-handler-auth-nameidformat.png -------------------------------------------------------------------------------- /docs/images/howto-saml-context-handler-auth-read-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-context-handler-auth-read-metadata.png -------------------------------------------------------------------------------- /docs/images/howto-saml-context-handler-certificate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-context-handler-certificate.png -------------------------------------------------------------------------------- /docs/images/howto-saml-context-handler-new-environment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-context-handler-new-environment.png -------------------------------------------------------------------------------- /docs/images/howto-saml-context-handler-test-user1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-context-handler-test-user1.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-auth-attributes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-auth-attributes.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-auth-claims.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-auth-claims.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-auth-contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-auth-contact.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-auth-nameidformat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-auth-nameidformat.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-auth-read-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-auth-read-metadata.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-auth-req-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-auth-req-ext.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-auth-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-auth-top.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-certificate-container-type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-certificate-container-type.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-certificate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-certificate.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-claim-mappings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-claim-mappings.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-id-type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-id-type.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-log.png -------------------------------------------------------------------------------- /docs/images/howto-saml-nemlogin3-nsis-level.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-nemlogin3-nsis-level.png -------------------------------------------------------------------------------- /docs/images/howto-saml-privilege-claim-tf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/howto-saml-privilege-claim-tf.png -------------------------------------------------------------------------------- /docs/images/language-danish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/language-danish.png -------------------------------------------------------------------------------- /docs/images/language-french.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/language-french.png -------------------------------------------------------------------------------- /docs/images/language-german.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/language-german.png -------------------------------------------------------------------------------- /docs/images/language-spanish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/language-spanish.png -------------------------------------------------------------------------------- /docs/images/main-tenant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/main-tenant.png -------------------------------------------------------------------------------- /docs/images/master-seed-tool-client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/master-seed-tool-client.png -------------------------------------------------------------------------------- /docs/images/master-tenant-admin-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/master-tenant-admin-user.png -------------------------------------------------------------------------------- /docs/images/master-tenant2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/master-tenant2.png -------------------------------------------------------------------------------- /docs/images/sample_seed-client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/sample_seed-client.png -------------------------------------------------------------------------------- /docs/images/search-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/search-logs.png -------------------------------------------------------------------------------- /docs/images/search-usage-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/search-usage-logs.png -------------------------------------------------------------------------------- /docs/images/seed-tool-client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/seed-tool-client.png -------------------------------------------------------------------------------- /docs/images/structure.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/structure.vsdx -------------------------------------------------------------------------------- /docs/images/token-exchange-config-app-reg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/token-exchange-config-app-reg.png -------------------------------------------------------------------------------- /docs/images/token-exchange-config-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/token-exchange-config-auth-method.png -------------------------------------------------------------------------------- /docs/images/token-exchange-oauth-by-trust-app-reg-client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/token-exchange-oauth-by-trust-app-reg-client.png -------------------------------------------------------------------------------- /docs/images/token-exchange-oauth-by-trust-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/token-exchange-oauth-by-trust-auth-method.png -------------------------------------------------------------------------------- /docs/images/token-exchange-oauth-same-environment-app-reg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/token-exchange-oauth-same-environment-app-reg.png -------------------------------------------------------------------------------- /docs/images/token-exchange-oidc-same-environment-app-reg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/token-exchange-oidc-same-environment-app-reg.png -------------------------------------------------------------------------------- /docs/images/token-exchange-saml-by-trust-app-reg-client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/token-exchange-saml-by-trust-app-reg-client.png -------------------------------------------------------------------------------- /docs/images/token-exchange-saml-by-trust-auth-method.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/token-exchange-saml-by-trust-auth-method.png -------------------------------------------------------------------------------- /docs/images/token-exchange.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/token-exchange.vsdx -------------------------------------------------------------------------------- /docs/images/user-create-new-account-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/user-create-new-account-config.png -------------------------------------------------------------------------------- /docs/images/user-create-new-account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/user-create-new-account.png -------------------------------------------------------------------------------- /docs/images/user-email-phone-username-user-identifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/user-email-phone-username-user-identifier.png -------------------------------------------------------------------------------- /docs/images/user-external-auth-method-redemption.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/user-external-auth-method-redemption.png -------------------------------------------------------------------------------- /docs/images/user-external-create-new-account-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/user-external-create-new-account-config.png -------------------------------------------------------------------------------- /docs/images/user-external-create-new-account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/user-external-create-new-account.png -------------------------------------------------------------------------------- /docs/images/user-external-redemption.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/user-external-redemption.png -------------------------------------------------------------------------------- /docs/images/user-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/user-login.png -------------------------------------------------------------------------------- /docs/images/user-phone-user-identifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ITfoxtec/FoxIDs/1ed51d53de1e01b61480ace2137185c9c33c4e78/docs/images/user-phone-user-identifier.png -------------------------------------------------------------------------------- /src/FoxIDs.Control/Controllers/Base/HealthController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace FoxIDs.Controllers 4 | { 5 | [Route(Constants.Routes.HealthController)] 6 | public class HealthController : Controller 7 | { 8 | [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] 9 | [HttpGet] 10 | public IActionResult Index() 11 | { 12 | return Ok(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Infrastructure/Hosting/OpenSearchClientQueryLog.cs: -------------------------------------------------------------------------------- 1 | using OpenSearch.Client; 2 | 3 | namespace FoxIDs.Infrastructure.Hosting 4 | { 5 | public class OpenSearchClientQueryLog : OpenSearchClient 6 | { 7 | public OpenSearchClientQueryLog(IConnectionSettingsValues connectionSettings) : base(connectionSettings) 8 | { } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Infrastructure/Security/JwtBearerMultipleTenantsOptions.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Authentication; 2 | 3 | namespace FoxIDs.Infrastructure.Security 4 | { 5 | public class JwtBearerMultipleTenantsOptions : AuthenticationSchemeOptions 6 | { 7 | public string FoxIDsEndpoint { get; set; } 8 | public string DownParty { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Models/ApplicationInsightsQuery.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Models 2 | { 3 | public class ApplicationInsightsQuery 4 | { 5 | public string Query { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Models/Config/PaymentSettings.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Models.Config 2 | { 3 | public class PaymentSettings 4 | { 5 | public bool TestMode { get; set; } = false; 6 | public bool EnablePayment => !string.IsNullOrWhiteSpace(MollieApiKey) && !string.IsNullOrWhiteSpace(MollieProfileId); 7 | 8 | public string MollieApiKey { get; set; } 9 | public string MollieProfileId { get; set; } 10 | public string MollieApiUrl { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Models/ExternalInvoices/InvoiceResponse.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace FoxIDs.Models.ExternalInvoices 4 | { 5 | public class InvoiceResponse 6 | { 7 | [Required] 8 | public string InvoiceNumber { get; set; } 9 | 10 | /// 11 | /// Base64 encoded PDF invoice. 12 | /// 13 | public string PdfInvoice { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Models/ExternalInvoices/UsedItemTypes.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Models.ExternalInvoices 2 | { 3 | public enum UsedItemTypes 4 | { 5 | /// 6 | /// One item with a text. 7 | /// 8 | Text = 10, 9 | /// 10 | /// A number of hours. 11 | /// 12 | Hours = 100 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Models/LogErrorMessageItem.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System.Collections.Generic; 3 | 4 | namespace FoxIDs.Models 5 | { 6 | public class LogErrorMessageItem 7 | { 8 | [JsonProperty(PropertyName = "m")] 9 | public string Message { get; set; } 10 | 11 | [JsonProperty(PropertyName = "s")] 12 | public IEnumerable StackTrace { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Models/LogExceptionDetail.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System.Collections.Generic; 3 | 4 | namespace FoxIDs.Models 5 | { 6 | public class LogExceptionDetail 7 | { 8 | [JsonProperty(PropertyName = "message")] 9 | public string Message { get; set; } 10 | 11 | [JsonProperty(PropertyName = "parsedStack")] 12 | public List ParsedStack { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Models/LogTraceMessageItem.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace FoxIDs.Models 4 | { 5 | public class LogTraceMessageItem 6 | { 7 | [JsonProperty(PropertyName = "m")] 8 | public string Message { get; set; } 9 | 10 | [JsonProperty(PropertyName = "message")] 11 | public string MessageOld { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Models/Payments/MolliePaymentDetailsResponse.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace FoxIDs.Models.Payments 4 | { 5 | public class MolliePaymentDetailsResponse 6 | { 7 | [JsonProperty(PropertyName = "failureReason")] 8 | public string FailureReason { get; set; } 9 | 10 | [JsonProperty(PropertyName = "failureMessage")] 11 | public string FailureMessage { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Models/Payments/MolliePaymentLinkResponse.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace FoxIDs.Models.Payments 4 | { 5 | public class MolliePaymentLinkResponse 6 | { 7 | [JsonProperty(PropertyName = "ref")] 8 | public string Href { get; set; } 9 | 10 | [JsonProperty(PropertyName = "type")] 11 | public string Type { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Models/Payments/MolliePaymentLinksResponse.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace FoxIDs.Models.Payments 4 | { 5 | public class MolliePaymentLinksResponse 6 | { 7 | [JsonProperty(PropertyName = "self")] 8 | public string Self { get; set; } 9 | 10 | [JsonProperty(PropertyName = "checkout")] 11 | public string Checkout { get; set; } 12 | 13 | [JsonProperty(PropertyName = "documentation")] 14 | public string Documentation { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Models/Queues/UpPartyHrdQueueMessageActions.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Models.Queues 2 | { 3 | public enum UpPartyHrdQueueMessageActions 4 | { 5 | None = 0, 6 | Update = 10, 7 | UpdateProfile = 11, 8 | Remove = 20, 9 | RemoveProfile = 21, 10 | ChangeName = 30, 11 | ChangeProfileName = 31, 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/Models/ViewModels/ClientViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Models.ViewModels 2 | { 3 | public class ClientViewModel 4 | { 5 | public string TenantName { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/web.Release.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/FoxIDs.Control/wwwroot/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / 3 | Allow: /api/swagger/ -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Extensions/DictionaryExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace FoxIDs.Client 4 | { 5 | public static class DictionaryExtensions 6 | { 7 | public static string GetValue(this Dictionary dictionary, string key) 8 | { 9 | if(dictionary != null && dictionary.ContainsKey(key)) 10 | { 11 | return dictionary[key]; 12 | } 13 | return null; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Extensions/MapperExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace FoxIDs.Client 4 | { 5 | public static class MapperExtensions 6 | { 7 | public static T Map(this object inObj, Action afterMap = null) 8 | { 9 | var json = inObj.JsonSerialize(); 10 | var outObj = json.JsonDeserialize(); 11 | afterMap?.Invoke(outObj); 12 | return outObj; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Extensions/TimeExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace FoxIDs.Client 4 | { 5 | public static class TimeExtensions 6 | { 7 | public static string TimeToString(this long time) 8 | { 9 | var dateTimeOffset = DateTimeOffset.FromUnixTimeSeconds(time); 10 | return dateTimeOffset.ToLocalTime().ToString(); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ExternalLoginTabTypes.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models 2 | { 3 | public enum ExternalLoginTabTypes 4 | { 5 | ExternalLogin, 6 | ClaimsTransform, 7 | LinkExternalUser, 8 | Hrd, 9 | Profile, 10 | Session 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/LoginTabTypes.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models 2 | { 3 | public enum LoginTabTypes 4 | { 5 | Login, 6 | ClaimsTransform, 7 | CreateUser, 8 | Session, 9 | Hrd 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/OAuthTabTypes.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models 2 | { 3 | public enum OAuthTabTypes 4 | { 5 | Client, 6 | Resource, 7 | ClaimsTransform, 8 | LinkExternalUser, 9 | Hrd, 10 | Profile, 11 | Session 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/SamlTabTypes.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models 2 | { 3 | public enum SamlTabTypes 4 | { 5 | Saml, 6 | ClaimsTransform, 7 | LinkExternalUser, 8 | Hrd, 9 | Profile, 10 | Session 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/TrackLinkTabTypes.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models 2 | { 3 | public enum TrackLinkTabTypes 4 | { 5 | TrackLink, 6 | ClaimsTransform, 7 | LinkExternalUser, 8 | Hrd, 9 | Profile, 10 | Session 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/FilterResourceViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class FilterResourceViewModel 6 | { 7 | /// 8 | /// Search by text or ID. 9 | /// 10 | [MaxLength(Constants.Models.Resource.NameLength)] 11 | [Display(Name = "Search for text or ID")] 12 | public string FilterName { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Master/FilterPlanViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class FilterPlanViewModel 6 | { 7 | /// 8 | /// Search by plan name. 9 | /// 10 | [MaxLength(Constants.Models.Plan.NameLength)] 11 | [Display(Name = "Search plan")] 12 | public string FilterName { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Master/FilterSmsPriceViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class FilterSmsPriceViewModel 6 | { 7 | /// 8 | /// Search by country name and ISO2. 9 | /// 10 | [MaxLength(Constants.Models.SmsPrices.CountryNameLength)] 11 | [Display(Name = "Search SMS price")] 12 | public string FilterName { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Master/LogLifetimeOptionsVievModel.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Models.Api 2 | { 3 | public enum LogLifetimeOptionsVievModel 4 | { 5 | Null = 1, 6 | Max30Days = 30, 7 | Max180Days = 180, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/DownPartyOAuthClientTypes.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | public enum DownPartyOAuthClientTypes 4 | { 5 | Confidential, 6 | Public, 7 | PublicNative 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/DownPartyOAuthTypes.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | public enum DownPartyOAuthTypes 4 | { 5 | Client, 6 | Resource, 7 | ClientAndResource 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/DynamicElementViewModel.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Models.Api; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class DynamicElementViewModel : DynamicElement 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/FilterDownPartyViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class FilterDownPartyViewModel 6 | { 7 | /// 8 | /// Search by application name. 9 | /// 10 | [MaxLength(Constants.Models.Party.NameLength)] 11 | [Display(Name = "Filter applications")] 12 | public string FilterName { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/FilterUpPartyViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class FilterUpPartyViewModel 6 | { 7 | /// 8 | /// Search by authentication method name. 9 | /// 10 | [MaxLength(Constants.Models.Party.NameLength)] 11 | [Display(Name = "Filter authentication methods")] 12 | public string FilterName { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/IAllowUpPartyNames.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Models.Api; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | 5 | namespace FoxIDs.Client.Models.ViewModels 6 | { 7 | public interface IAllowUpPartyNames 8 | { 9 | [Display(Name = "Allowed authentication methods")] 10 | List AllowUpParties { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/IClientAdditionalParameters.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Models.Api; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | 5 | namespace FoxIDs.Client.Models.ViewModels 6 | { 7 | public interface IClientAdditionalParameters 8 | { 9 | [Display(Name = "Additional parameters")] 10 | public List AdditionalParameters { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/IClientSecret.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace FoxIDs.Client.Models.ViewModels 5 | { 6 | public interface IClientSecret 7 | { 8 | [Display(Name = "Secrets")] 9 | List Secrets { get; set; } 10 | 11 | List ExistingSecrets { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/IDownPartyName.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | public interface IDownPartyName 4 | { 5 | string Name { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/IDynamicElementsViewModel.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Infrastructure.DataAnnotations; 2 | using System.Collections.Generic; 3 | 4 | namespace FoxIDs.Client.Models.ViewModels 5 | { 6 | public interface IDynamicElementsViewModel 7 | { 8 | [ListLength(Constants.Models.DynamicElements.ElementsMin, Constants.Models.DynamicElements.ElementsMax)] 9 | public List Elements { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/IGeneralOAuthDownPartyTabViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | public interface IGeneralOAuthDownPartyTabViewModel 4 | { 5 | bool ShowClientTab { get; set; } 6 | bool ShowResourceTab { get; set; } 7 | bool ShowClaimTransformTab { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/IGeneralOAuthUpPartyTabViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | public interface IGeneralOAuthUpPartyTabViewModel 4 | { 5 | bool ShowClientTab { get; set; } 6 | bool ShowClaimTransformTab { get; set; } 7 | public bool ShowLinkExternalUserTab { get; set; } 8 | public bool ShowHrdTab { get; set; } 9 | public bool ShowProfileTab { get; set; } 10 | public bool ShowSessionTab { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/ISamlMetadataOrganizationVievModel.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Models.Api; 2 | using System.ComponentModel.DataAnnotations; 3 | 4 | namespace FoxIDs.Client.Models.ViewModels 5 | { 6 | public interface ISamlMetadataOrganizationVievModel 7 | { 8 | [ValidateComplexType] 9 | [Display(Name = "Optional organization in metadata")] 10 | public SamlMetadataOrganization MetadataOrganization { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/OAuthClientSecretViewModel.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Models.Api; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class OAuthClientSecretViewModel : OAuthClientSecretResponse 6 | { 7 | public bool Removed { get; set; } = false; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/OAuthDownScopeViewModel.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Models.Api; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class OAuthDownScopeViewModel : OAuthDownScope 6 | { 7 | public bool ShowVoluntaryClaims { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/OidcDownScopeViewModel.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Models.Api; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class OidcDownScopeViewModel : OidcDownScope 6 | { 7 | public bool ShowVoluntaryClaims { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/OidcUpPartyProfileViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class OidcUpPartyProfileViewModel : UpPartyProfileViewModel 6 | { 7 | [Required] 8 | public OidcUpClientProfileViewModel Client { get; set; } = new OidcUpClientProfileViewModel(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/SamlAuthnContextComparisonTypesVievModel.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | public enum SamlAuthnContextComparisonTypesVievModel 4 | { 5 | Null = 1, 6 | Exact = 10, 7 | Minimum = 20, 8 | Maximum = 30, 9 | Better = 40, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Parties/X509RevocationMode.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | /// 4 | /// Added because System.Security.Cryptography.X509Certificates is not supported in the browser. 5 | /// 6 | public enum X509RevocationMode 7 | { 8 | NoCheck, 9 | Online, 10 | Offline 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tenants/FilterTenantViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class FilterTenantViewModel 6 | { 7 | /// 8 | /// Search by tenant name and custom domain. 9 | /// 10 | [MaxLength(Constants.Models.Tenant.CustomDomainLength)] 11 | [Display(Name = "Search tenant")] 12 | public string FilterValue { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tenants/GeneralUsageSettingsViewModel.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Client.Shared.Components; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class GeneralUsageSettingsViewModel 6 | { 7 | public GeneralUsageSettingsViewModel() 8 | { } 9 | 10 | public string Error { get; set; } 11 | 12 | public PageEditForm Form { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tenants/MolliePaymentErrorResult.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | public class MolliePaymentErrorResult 4 | { 5 | public object Message { get; set; } 6 | 7 | public string Detail { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tenants/MolliePaymentResult.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | public class MolliePaymentResult 4 | { 5 | public string Token { get; set; } 6 | 7 | public MolliePaymentErrorResult Error { get; set; } 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tenants/TestRiskPasswordViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class TestRiskPasswordViewModel 6 | { 7 | [Required] 8 | [MaxLength(Constants.Models.Track.PasswordLengthMax)] 9 | [DataType(DataType.Password)] 10 | public string Password { get; set; } 11 | 12 | public bool? IsValid { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tenants/UsageSettingsViewModel.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Models.Api; 2 | using System.Collections.Generic; 3 | 4 | namespace FoxIDs.Client.Models.ViewModels 5 | { 6 | public class UsageSettingsViewModel : UsageSettings 7 | { 8 | public UsageSettingsViewModel() 9 | { 10 | CurrencyExchanges = new List(); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tenants/UsedViewModel.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Models.Api; 2 | using System.Collections.Generic; 3 | 4 | namespace FoxIDs.Client.Models.ViewModels 5 | { 6 | public class UsedViewModel : Used 7 | { 8 | public UsedViewModel() 9 | { 10 | Items = new List(); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tracks/ClaimMappingViewModel.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Models.Api; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | 5 | namespace FoxIDs.Client.Models.ViewModels 6 | { 7 | public class ClaimMappingViewModel 8 | { 9 | [Display(Name = "Mappings between JWT and SAML claim types")] 10 | public List ClaimMappings { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tracks/FilterTrackViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class FilterTrackViewModel 6 | { 7 | /// 8 | /// Search by environment name. 9 | /// 10 | [MaxLength(Constants.Models.Track.NameLength)] 11 | [Display(Name = "Filter environments")] 12 | public string FilterName { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tracks/FilterUserViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class FilterUserViewModel 6 | { 7 | /// 8 | /// Search by user email. 9 | /// 10 | [MaxLength(Constants.Models.User.UsernameLength)] 11 | [Display(Name = "Search user")] 12 | public string FilterValue { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tracks/GeneralLogSettingsViewModel.cs: -------------------------------------------------------------------------------- 1 | using FoxIDs.Client.Shared.Components; 2 | using FoxIDs.Models.Api; 3 | 4 | namespace FoxIDs.Client.Models.ViewModels 5 | { 6 | public class GeneralLogSettingsViewModel 7 | { 8 | public GeneralLogSettingsViewModel() 9 | { } 10 | 11 | public string Error { get; set; } 12 | 13 | public PageEditForm Form { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tracks/LogItemDetailViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class LogItemDetailViewModel 6 | { 7 | public string Name { get; set; } 8 | 9 | public List Details { get; set; } 10 | 11 | public bool ShowDetails { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tracks/LogQueryTypes.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | public static class LogQueryTypes 4 | { 5 | public const string Errors = "Errors"; 6 | public const string Warnings = "Warnings"; 7 | public const string Traces = "traces"; 8 | public const string Events = "events"; 9 | public const string Metrics = "metrics"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tracks/LogResponseViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace FoxIDs.Client.Models.ViewModels 4 | { 5 | public class LogResponseViewModel 6 | { 7 | public List Items { get; set; } 8 | 9 | public bool ResponseTruncated { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tracks/LogTimeIntervals.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | public enum LogTimeIntervals 4 | { 5 | ThirtySeconds = 30, 6 | OneMinute = 60, 7 | FiveMinutes = 300, 8 | FifteenMinutes = 900, 9 | ThirtyMinutes = 1800, 10 | OneHour = 3600, 11 | SixHours = 21600, 12 | TwelveHours = 43200, 13 | TwentyfourHours = 86400, 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tracks/MailProviders.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | public enum MailProviders 4 | { 5 | SendGrid, 6 | Smtp 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Models/ViewModels/Tracks/TrackCertificateInfoViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace FoxIDs.Client.Models.ViewModels 2 | { 3 | public class TrackCertificateInfoViewModel : KeyInfoViewModel 4 | { 5 | public bool IsPrimary { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Pages/DownPartiesLink.razor: -------------------------------------------------------------------------------- 1 | @page "/{tenantName}/downparties" 2 | @inherits PageBase 3 | @inject RouteBindingLogic routeBinding 4 | @inject NavigationManager NavigationManager 5 | 6 | @code { 7 | [Parameter] 8 | public string TenantName { get; set; } 9 | 10 | protected override void OnInitialized() 11 | { 12 | NavigationManager.NavigateTo($"{TenantName}/applications"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Pages/MasterTenantPaymentLink.razor: -------------------------------------------------------------------------------- 1 | @page "/{tenantName}/tenantpaymentresponse" 2 | @inherits PageBase 3 | @inject RouteBindingLogic routeBinding 4 | @inject NavigationManager NavigationManager 5 | 6 | @code { 7 | [Parameter] 8 | public string TenantName { get; set; } 9 | 10 | protected override void OnInitialized() 11 | { 12 | NavigationManager.NavigateTo($"{TenantName}/tenant", true); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Pages/UpPartiesLink.razor: -------------------------------------------------------------------------------- 1 | @page "/{tenantName}/upparties" 2 | @inherits PageBase 3 | @inject RouteBindingLogic routeBinding 4 | @inject NavigationManager NavigationManager 5 | 6 | @code { 7 | [Parameter] 8 | public string TenantName { get; set; } 9 | 10 | protected override void OnInitialized() 11 | { 12 | NavigationManager.NavigateTo($"{TenantName}/authentication"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Pages/Users/UsersLink.razor: -------------------------------------------------------------------------------- 1 | @page "/{tenantName}/users" 2 | @inherits PageBase 3 | @inject RouteBindingLogic routeBinding 4 | @inject NavigationManager NavigationManager 5 | 6 | @code { 7 | [Parameter] 8 | public string TenantName { get; set; } 9 | 10 | protected override void OnInitialized() 11 | { 12 | NavigationManager.NavigateTo($"{TenantName}/internalusers"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Shared/Components/FFieldNumberD.razor: -------------------------------------------------------------------------------- 1 | @inherits FInputBase 2 | 3 |
4 |
5 |
6 | @CurrentValue 7 |
8 |
9 |
11 | 12 | @code { 13 | [Parameter] 14 | public string Class { get; set; } 15 | } 16 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Shared/Components/FFieldText.razor: -------------------------------------------------------------------------------- 1 | @inherits FInputBase 2 | 3 |
4 |
5 |
6 | @CurrentValue 7 |
8 |
9 |
11 | 12 | @code { 13 | [Parameter] 14 | public string Class { get; set; } 15 | } 16 | -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Shared/Components/FInputNumber.razor: -------------------------------------------------------------------------------- 1 | @inherits FInputBase 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Shared/Components/FInputNumberD.razor: -------------------------------------------------------------------------------- 1 | @inherits FInputBase 2 | 3 |
4 | 5 |
8 | 9 | @code { 10 | [Parameter] 11 | public string LabelText { get; set; } 12 | } -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Shared/Components/FInputNumberDN.razor: -------------------------------------------------------------------------------- 1 | @inherits FInputBase 2 | 3 |
4 | 5 |
8 | 9 | @code { 10 | [Parameter] 11 | public string LabelText { get; set; } 12 | } -------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Shared/Components/FInputNumberL.razor: -------------------------------------------------------------------------------- 1 | @inherits FInputBase 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Shared/Components/FInputNumberLN.razor: -------------------------------------------------------------------------------- 1 | @inherits FInputBase 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Shared/Components/FInputNumberN.razor: -------------------------------------------------------------------------------- 1 | @inherits FInputBase 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /src/FoxIDs.ControlClient/Shared/Components/FInputTextArea.razor: -------------------------------------------------------------------------------- 1 | @inherits FInputBase 2 | 3 |
4 |