From eddc1ec144f1aceb3f6e97fb77d20cc2f9e6b971 Mon Sep 17 00:00:00 2001 From: James Gunn Date: Tue, 10 Sep 2024 15:11:07 +0100 Subject: [PATCH] Use federated auth for DfE Analytics (#1410) --- TeachingRecordSystem/Directory.Packages.props | 2 +- .../lib/Dfe.Analytics.0.2.2.nupkg | Bin 27201 -> 0 bytes .../lib/Dfe.Analytics.0.2.3.nupkg | Bin 0 -> 27192 bytes .../Program.cs | 1 + terraform/aks/app.tf | 32 ++++++++++-------- 5 files changed, 20 insertions(+), 15 deletions(-) delete mode 100644 TeachingRecordSystem/lib/Dfe.Analytics.0.2.2.nupkg create mode 100644 TeachingRecordSystem/lib/Dfe.Analytics.0.2.3.nupkg diff --git a/TeachingRecordSystem/Directory.Packages.props b/TeachingRecordSystem/Directory.Packages.props index c4a1bcccb..73968ce92 100644 --- a/TeachingRecordSystem/Directory.Packages.props +++ b/TeachingRecordSystem/Directory.Packages.props @@ -13,7 +13,7 @@ - + diff --git a/TeachingRecordSystem/lib/Dfe.Analytics.0.2.2.nupkg b/TeachingRecordSystem/lib/Dfe.Analytics.0.2.2.nupkg deleted file mode 100644 index b2d2c9413b9e384da68c78c1ee1e5c0939320c88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27201 zcmY&!{63tMndBrVx#mhH zI8l@V`-%4B#}B9<2yTm-ST?vwI3PcMy!;c`f4TZjrZ&!u4FBn*_zf#iW~9&?--tMG z&b6Ql42`;K*e-N^qRgzyyyIUK(!L*|Mncpf&rWG?0$({=wgQvsy2QC|&3T@~)F8B5 zxmT;RGO7#UTa}a*U_dchN{@L0DI+?LN3;TeL%1X8sNPA>TFU}mCX!<2s7cs225|%M z6L#2Gg!XKt`$F=OOaP&BfvLl(>SQ6SyZ(4e6t}t0bX2W2h`4kNNfZ+9xHkCOa>N6@ zRd{+=E~M1h#_TLu&XL~6)qOd=n^;>FwW0syU5(S^FSMYrKq*XvbCGqf_`x`K^wZDiUAL~y_lZ^E!UAPYtBLl*Ioz7#GHJ38p(*Ai=pix3t5)DK@H@v zd~a!++7KH)TY$|aMU0Gsxj>=;(dnjneYIpv!X2?Z>CZ5z(+7q!T*vaCE2~|bzvtO= z#GkaUU1jxlqPS*wx+!ekKP4Ke&$#M>p4%W=D~Y{R^{bY-%g76YN)TJb{XzGJi)4

_h^oTT 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

g| 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 rztdF{0eJE75 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 KJAw5-&i)G*5OwDO literal 0 HcmV?d00001 diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Program.cs b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Program.cs index 9671f2167..0c974cd57 100644 --- a/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Program.cs +++ b/TeachingRecordSystem/src/TeachingRecordSystem.AuthorizeAccess/Program.cs @@ -137,6 +137,7 @@ static SecurityKey LoadKey(string configurationValue) }); builder.Services.AddDfeAnalytics() + .UseFederatedAksBigQueryClientProvider() .AddAspNetCoreIntegration(options => { options.UserIdClaimType = ClaimTypes.Subject; diff --git a/terraform/aks/app.tf b/terraform/aks/app.tf index 22903d0a6..26e7cfd5a 100644 --- a/terraform/aks/app.tf +++ b/terraform/aks/app.tf @@ -91,13 +91,14 @@ module "api_application" { kubernetes_config_map_name = module.api_application_configuration.kubernetes_config_map_name kubernetes_secret_name = module.api_application_configuration.kubernetes_secret_name - docker_image = var.docker_image - command = ["/bin/ash", "-c", "cd /Apps/Api/; dotnet TeachingRecordSystem.Api.dll;"] - web_port = 3000 - probe_path = "/health" - replicas = var.api_replicas - max_memory = var.api_max_memory - enable_logit = var.enable_logit + docker_image = var.docker_image + command = ["/bin/ash", "-c", "cd /Apps/Api/; dotnet TeachingRecordSystem.Api.dll;"] + web_port = 3000 + probe_path = "/health" + replicas = var.api_replicas + max_memory = var.api_max_memory + enable_logit = var.enable_logit + enable_gcp_wif = true } module "authz_application_configuration" { @@ -142,13 +143,14 @@ module "authz_application" { kubernetes_config_map_name = module.authz_application_configuration.kubernetes_config_map_name kubernetes_secret_name = module.authz_application_configuration.kubernetes_secret_name - docker_image = var.docker_image - command = ["/bin/ash", "-c", "cd /Apps/AuthorizeAccess/; dotnet TeachingRecordSystem.AuthorizeAccess.dll;"] - web_port = 3000 - probe_path = "/health" - replicas = var.authz_replicas - max_memory = var.authz_max_memory - enable_logit = var.enable_logit + docker_image = var.docker_image + command = ["/bin/ash", "-c", "cd /Apps/AuthorizeAccess/; dotnet TeachingRecordSystem.AuthorizeAccess.dll;"] + web_port = 3000 + probe_path = "/health" + replicas = var.authz_replicas + max_memory = var.authz_max_memory + enable_logit = var.enable_logit + enable_gcp_wif = true } module "ui_application_configuration" { @@ -199,6 +201,7 @@ module "ui_application" { replicas = var.ui_replicas enable_logit = var.enable_logit enable_prometheus_monitoring = var.enable_prometheus_monitoring + enable_gcp_wif = true } module "worker_application_configuration" { @@ -249,4 +252,5 @@ module "worker_application" { max_memory = var.worker_max_memory enable_logit = var.enable_logit enable_prometheus_monitoring = var.enable_prometheus_monitoring + enable_gcp_wif = true }