main.auth_config.tf (166 lines of code) (raw):

resource "azapi_resource" "auth_config" { for_each = var.auth_configs type = "Microsoft.App/containerApps/authConfigs@2024-03-01" body = { properties = { platform = each.value.platform == null ? null : { enabled = try(each.value.platform.enabled, null) runtimeVersion = try(each.value.platform.runtime_version, null) } encryptionSettings = each.value.encryption_settings == null ? {} : { containerAppAuthEncryptionSecretName = try(each.value.encryption_settings.container_app_auth_encryption_secret_name, null) containerAppAuthSigningSecretName = try(each.value.encryption_settings.container_app_auth_signing_secret_name, null) } globalValidation = each.value.global_validation == null ? null : { unauthenticatedClientAction = try(each.value.global_validation.unauthenticated_client_action, null) excludedPaths = try(each.value.global_validation.exclude_paths, null) redirectToProvider = try(each.value.global_validation.redirect_to_provider, null) } identityProviders = each.value.identity_providers == null ? null : { azureActiveDirectory = each.value.identity_providers.azure_active_directory == null ? null : { enabled = try(each.value.identity_providers.azure_active_directory.enabled, null) registration = each.value.identity_providers.azure_active_directory.registration == null ? null : { openIdIssuer = try(each.value.identity_providers.azure_active_directory.registration.open_id_issuer, null) clientId = try(each.value.identity_providers.azure_active_directory.registration.client_id, null) clientSecretSettingName = try(each.value.identity_providers.azure_active_directory.registration.client_secret_setting_name, null) clientSecretCertificateThumbprint = try(each.value.identity_providers.azure_active_directory.registration.client_secret_certificate_thumbprint, null) clientSecretCertificateSubjectAlternativeName = try(each.value.identity_providers.azure_active_directory.registration.client_secret_certificate_subject_alternative_name, null) clientSecretCertificateIssuer = try(each.value.identity_providers.azure_active_directory.registration.client_secret_certificate_issuer, null) } login = each.value.identity_providers.azure_active_directory.login == null ? null : { loginParameters = try(each.value.identity_providers.azure_active_directory.login.login_parameters, null) disableWWWAuthenticate = try(each.value.identity_providers.azure_active_directory.login.disable_www_authenticate, null) } validation = each.value.identity_providers.azure_active_directory.validation == null ? null : { jwtClaimChecks = each.value.identity_providers.azure_active_directory.validation.jwt_claim_checks == null ? null : { allowedGroups = try(each.value.identity_providers.azure_active_directory.validation.jwt_claim_checks.allowed_groups, null) allowedClientApplications = try(each.value.identity_providers.azure_active_directory.validation.jwt_claim_checks.allowed_client_applications, null) } allowedAudiences = try(each.value.identity_providers.azure_active_directory.validation.allowed_audiences, null) defaultAuthorizationPolicy = each.value.identity_providers.azure_active_directory.validation.default_authorization_policy == null ? null : { allowedPrincipals = each.value.identity_providers.azure_active_directory.validation.default_authorization_policy.allowed_principals == null ? null : { groups = try(each.value.identity_providers.azure_active_directory.validation.default_authorization_policy.allowed_principals.groups, null) identities = try(each.value.identity_providers.azure_active_directory.validation.default_authorization_policy.allowed_principals.identities, null) } allowedApplications = try(each.value.identity_providers.azure_active_directory.validation.default_authorization_policy.allowed_applications, null) } } isAutoProvisioned = try(each.value.identity_providers.azure_active_directory.is_auto_provisioned, null) } facebook = each.value.identity_providers.facebook == null ? null : { enabled = try(each.value.identity_providers.facebook.enabled, null) registration = each.value.identity_providers.facebook.registration == null ? null : { appId = try(each.value.identity_providers.facebook.registration.app_id, null) appSecretSettingName = try(each.value.identity_providers.facebook.registration.app_secret_setting_name, null) } graphApiVersion = try(each.value.identity_providers.facebook.graph_api_version, null) login = each.value.identity_providers.facebook.login == null ? null : { scopes = try(each.value.identity_providers.facebook.login.scopes, null) } } gitHub = each.value.identity_providers.github == null ? null : { enabled = try(each.value.identity_providers.github.enabled, null) registration = each.value.identity_providers.github.registration == null ? null : { clientId = try(each.value.identity_providers.github.registration.client_id, null) clientSecretSettingName = try(each.value.identity_providers.github.registration.client_secret_setting_name, null) } login = each.value.identity_providers.github.login == null ? null : { scopes = try(each.value.identity_providers.github.login.scopes, null) } } google = each.value.identity_providers.google == null ? null : { enabled = try(each.value.identity_providers.google.enabled, null) registration = each.value.identity_providers.google.registration == null ? null : { clientId = try(each.value.identity_providers.google.registration.client_id, null) clientSecretSettingName = try(each.value.identity_providers.google.registration.client_secret_setting_name, null) } login = each.value.identity_providers.google.login == null ? null : { scopes = try(each.value.identity_providers.google.login.scopes, null) } validation = each.value.identity_providers.google.validation == null ? null : { allowedAudiences = try(each.value.identity_providers.google.validation.allowed_audiences, null) } } twitter = each.value.identity_providers.twitter == null ? null : { enabled = try(each.value.identity_providers.twitter.enabled, null) registration = each.value.identity_providers.twitter.registration == null ? null : { consumerKey = try(each.value.identity_providers.twitter.registration.consumer_key, null) consumerSecretSettingName = try(each.value.identity_providers.twitter.registration.consumer_secret_setting_name, null) } } apple = each.value.identity_providers.apple == null ? null : { enabled = try(each.value.identity_providers.apple.enabled, null) registration = each.value.identity_providers.apple.registration == null ? null : { clientId = try(each.value.identity_providers.apple.registration.client_id, null) clientSecretSettingName = try(each.value.identity_providers.apple.registration.client_secret_setting_name, null) } login = each.value.identity_providers.apple.login == null ? null : { scopes = try(each.value.identity_providers.apple.login.scopes, null) } } azureStaticWebApps = each.value.identity_providers.azure_static_web_apps == null ? null : { enabled = try(each.value.identity_providers.azure_static_web_apps.enabled, null) registration = each.value.identity_providers.azure_static_web_apps.registration == null ? null : { clientId = try(each.value.identity_providers.azure_static_web_apps.registration.client_id, null) } } customOpenIdConnectProviders = each.value.identity_providers.custom_open_id_connect_providers == null ? null : { for k, v in each.value.identity_providers.custom_open_id_connect_providers : k => { enabled = try(v.enabled, null) registration = v.registration == null ? null : { clientId = try(v.registration.client_id, null) clientCredential = v.registration.client_credential == null ? null : { method = try(v.registration.client_credential.method, null) clientSecretSettingName = try(v.registration.client_credential.client_secret_setting_name, null) } openIdConnectConfiguration = v.registration.open_id_connect_configuration == null ? null : { authorizationEndpoint = try(v.registration. open_id_connect_configuration.authorization_endpoint, null) tokenEndpoint = try(v.registration.open_id_connect_configuration.token_endpoint, null) issuer = try(v.registration.open_id_connect_configuration.issuer, null) certificationUri = try(v.registration.open_id_connect_configuration.certification_uri, null) wellKnownOpenIdConfiguration = try(v.registration.open_id_connect_configuration.well_known_open_id_configuration, null) } } login = v.login == null ? null : { nameClaimType = try(v.login.name_claim_type, null) scopes = try(v.login.scopes, null) } } } } login = each.value.login == null ? null : { routes = each.value.login.routes == null ? null : { logoutEndpoint = try(each.value.login.routes.logout_endpoint, null) } tokenStore = each.value.login.token_store == null ? null : { enabled = try(each.value.login.token_store.enabled, null) tokenRefreshExtensionHours = try(each.value.login.token_store.token_refresh_extension_hours, null) azureBlobStorage = each.value.login.token_store.azure_blob_storage == null ? null : { sasUrlSettingName = try(each.value.login.token_store.azure_blob_storage.sas_url_setting_name, null) } } preserveUrlFragmentsForLogins = try(each.value.login.preserve_url_fragments_for_logins, null) allowedExternalRedirectUrls = try(each.value.login.allowed_external_redirect_urls, null) cookieExpiration = try(each.value.login.cookie_expiration, null) nonce = each.value.login.nonce == null ? null : { validateNonce = try(each.value.login.nonce.validate_nonce, null) nonceExpirationInterval = try(each.value.login.nonce.nonce_expiration_interval, null) } } httpSettings = each.value.http_settings == null ? null : { requireHttps = try(each.value.http_settings.require_https, null) routes = each.value.http_settings.routes == null ? null : { apiPrefix = try(each.value.http_settings.routes.api_prefix, null) } forwardProxy = each.value.http_settings.forward_proxy == null ? null : { convention = try(each.value.http_settings.forward_proxy.convention, null) customHostHeaderName = try(each.value.http_settings.forward_proxy.custom_host_header_name, null) customProtoHeaderName = try(each.value.http_settings.forward_proxy.custom_proto_header_name, null) } } } } name = each.value.name parent_id = azurerm_container_app.this.id }