Chuyển đến nội dung chính

Bước 4 - Xác thực

Lưu ý: trang này dành cho việc tích hợp đăng nhập SSO của Halo Portal với Azure Entra ID.

Điều kiện tiên quyết

  • Để sử dụng SSO, hãy chọn một miền cho Portal.
  • Xác định tenant_id cho tenant AWS mong muốn.
  • Đảm bảo Azure CLI đã được cài đặt trên một máy và đăng nhập bằng az login.
  • Run the attached shell script to create 3 app registrations and enterprise applications. Make a note of the outputs from the script which will be used in the next steps:
    • cdrplatform-api-access
    • cdrplatform-portal-access
    • cdrplatform-portal-client
bash create-azure-app-registrations.sh cleanroom.glasswall.com

Cài đặt xác thực Portal

Để thiết lập SSO với AWS trong portal của Glasswall Halo:

  1. SSH vào VM để chạy các lệnh bên dưới.
  • Lưu ý: Các helm chart cdrplatform-portal và cdrplatform-portal-access có trong thư mục /home/glasswall.
  1. Tìm image tag của portal trong cluster và đặt nó làm biến image_tag.
k get deploy portal  -o json | jq -r '.spec.template.spec.containers[0].image' | cut -d":" -f2
  1. Triển khai portal với các thiết lập AWS IAM, bảo đảm gán đúng giá trị cho các biến bên dưới.
tenant_id=""
portal_domain=""
portal_client_id=""
portal_access_uri=""
image_tag=""
helm upgrade --install cdrplatform-portal cdrplatform-portal \
--set image.repository=glasswallacr.azurecr.io/cdrplatform-portal \
--set image.tag="${image_tag:?}" \
--set image.pullPolicy=IfNotPresent \
--set ingress.tls.enabled=true \
--set ingress.tls.domain=${portal_domain:?} \
--set ingress.tls.secretName=tls-secret \
--set cloud_provider=local \
--set resources.requests.cpu=500m \
--set resources.requests.memory=500Mi \
--set resources.limits.cpu=500m \
--set resources.limits.memory=500Mi \
--set securityContext.seccompProfile.type=RuntimeDefault \
--set configuration.BackendScope="${portal_access_uri}/PortalUserScope" \
--set configuration.BackendUrl="https://${portal_domain}" \
--set configuration.EnabledPages="SystemSettings\,PolicySettings" \
--set configuration.OIDC.ProviderOptions.Authority="https://login.microsoftonline.com/${tenant_id:?}/v2.0" \
--set configuration.OIDC.ProviderOptions.RedirectUri="https://${portal_domain}/authentication/login-callback" \
--set configuration.OIDC.ProviderOptions.ClientId="${portal_client_id}" \
--set configuration.OIDC.ProviderOptions.PostLogoutRedirectUri="https://${portal_domain}/authentication/logout-callback" \
--atomic
  1. Tìm image tag của portal-access trong cluster và đặt nó làm biến image_tag.
k get deploy portal-access  -o json | jq -r '.spec.template.spec.containers[0].image' | cut -d":" -f2
  1. Triển khai portal access với cấu hình Azure AD:
tenant_id=""
portal_domain=""
portal_access_uri=""
image_tag=""
helm upgrade --install cdrplatform-portal-access cdrplatform-portal-access \
--set image.repository=glasswallacr.azurecr.io/cdrplatform-portal-access \
--set image.tag="${image_tag:?}" \
--set image.pullPolicy=IfNotPresent \
--set ingress.tls.enabled=true \
--set ingress.tls.domain=${portal_domain:?} \
--set ingress.tls.secretName=tls-secret \
--set cloud_provider=local \
--set resources.requests.cpu=1 \
--set resources.requests.memory=2Gi \
--set resources.limits.cpu=1 \
--set resources.limits.memory=2Gi \
--set securityContext.seccompProfile.type=RuntimeDefault \
--set configuration.AuthenticationScheme=Bearer \
--set configuration.Authentication__Schemes__Bearer__ValidAudiences__0="${portal_access_uri}" \
--set configuration.Authentication__Schemes__Bearer__ValidIssuer=https://sts.windows.net/${tenant_id:?}/ \
--set configuration.Authentication__Schemes__Bearer__Authority=https://login.microsoftonline.com/${tenant_id}/v2.0/ \
--atomic
  1. Mở miền portal trong trình duyệt và nhấp vào Login with SSO ở góc dưới bên trái.

  2. Đăng nhập qua Azure AD và cấp quyền cho ứng dụng trong tổ chức.

Xác thực API

Xác thực API có thể được cấu hình theo 2 cách:

Cài đặt xác thực cơ bản

  1. SSH vào VM để chạy các lệnh bên dưới.

Lưu ý: Helm chart cdrplatform-api-access có trong thư mục /home/glasswall.

  1. Đặt UsernamePassword trong lệnh bên dưới. Dùng dấu phẩy để phân tách nhiều mật khẩu.
bash add_secrets.sh organisation0-id <username>
bash add_secrets.sh organisation0-tokens <password>
  1. Triển khai API-access với xác thực cơ bản.
image_tag=$(k get deploy api-access  -o json | jq -r '.spec.template.spec.containers[0].image' | cut -d":" -f2)
enable_tls="true" OR "false"
api_domain="" # ignore if enable_tls is false
helm upgrade --install cdrplatform-api-access cdrplatform-api-access \
--set image.tag="${image_tag:?}" \
--set image.pullPolicy=IfNotPresent \
--set image.repository="glasswallacr.azurecr.io/cdrplatform-api-access" \
--set ingress.tls.enabled="${enable_tls:?}" \
--set ingress.tls.domain="${api_domain}" \
--set configuration.CLIENTS__Policy__BaseAddress="http://policy-api:8080" \
--set configuration.CLIENTS__License__BaseAddress="http://license-management.license-management.svc.cluster.local:8080" \
--set configuration.CLIENTS__AsyncApi__BaseAddress="http://async-api:8080" \
--set configuration.AuthenticationScheme="Basic" \
--set cloud_provider=local \
--set resources.requests.cpu=1 \
--set resources.requests.memory=3Gi \
--set resources.limits.cpu=1 \
--set resources.limits.memory=3Gi \
--set securityContext.seccompProfile.type=RuntimeDefault \
--atomic

Cài đặt xác thực Bearer

  1. Xác định tenant_id cho Azure tenant mong muốn.

  2. SSH vào VM để chạy các lệnh bên dưới.

Lưu ý: Helm chart cdrplatform-API-access phải có trong thư mục /home/glasswall.

  1. Triển khai API-access với cấu hình Azure AD.
tenant_id=""
api_valid_audience="api://cdrplatform-api-access"
image_tag=$(k get deploy api-access -o json | jq -r '.spec.template.spec.containers[0].image' | cut -d":" -f2)
enable_tls="true" OR "false"
api_domain="" # ignore if enable_tls is false
helm upgrade --install cdrplatform-api-access cdrplatform-api-access \
--set image.tag="${image_tag}" \
--set image.pullPolicy=IfNotPresent \
--set image.repository="glasswallacr.azurecr.io/cdrplatform-api-access" \
--set ingress.tls.enabled="${enable_tls}" \
--set ingress.tls.domain="${api_domain}" \
--set configuration.CLIENTS__Policy__BaseAddress="http://policy-api:8080" \
--set configuration.CLIENTS__License__BaseAddress="http://license-management.license-management.svc.cluster.local:8080" \
--set configuration.CLIENTS__AsyncApi__BaseAddress="http://async-api:8080" \
--set configuration.AuthenticationScheme="Bearer" \
--set configuration.Authentication__Schemes__Bearer__ValidAudiences__0="${api_valid_audience}" \
--set configuration.Authentication__Schemes__Bearer__ValidIssuer=https://sts.windows.net/${tenant_id}/ \
--set configuration.Authentication__Schemes__Bearer__Authority=https://login.microsoftonline.com/${tenant_id}/v2.0/ \
--set cloud_provider=local \
--set resources.requests.cpu=1 \
--set resources.requests.memory=3Gi \
--set resources.limits.cpu=1 \
--set resources.limits.memory=3Gi \
--set securityContext.seccompProfile.type=RuntimeDefault \
--atomic

Chúc mừng, bạn đã triển khai thành công Glasswall Halo!