SSO Cổng thông tin Okta
Sử dụng Okta làm Identity Provider để đăng nhập vào cổng Halo bằng SSO.
Điều kiện tiên quyết
- Máy chủ ủy quyền Okta được cấu hình cho Halo (xem Okta Authorization Server)
Đăng ký ứng dụng của bạn trong Okta
Tạo tích hợp ứng dụng
- Đăng nhập vào Okta Admin Console → Điều hướng đến
Applications->Applications. - Nhấp vào Create App Integration → Chọn OIDC - OpenID Connect.
- Nhấp vào Single-Page Application.

Cấu hình tích hợp ứng dụng
- Configure the following settings:
- Tên tích hợp ứng dụng: ví dụ
Glasswall Halo Portal - Grant type: Choose below 3 options
- Authorization Code
- Refresh Token
- Implicit (hybrid)
- URI chuyển hướng đăng nhập: ví dụ
https://<your-halo-domain>/authentication/login-callback - URI chuyển hướng đăng xuất: ví dụ
https://<your-halo-domain>/authentication/logout-callback - Quyền truy cập được kiểm soát: Chọn
Allow everyone in your organization to access. Hoặc chỉ chọn các nhóm cụ thể nếu bạn muốn giới hạn quyền truy cập cho một vài người. - Bỏ chọn
Enable immediate access with Federation Broker Mode.
- Tên tích hợp ứng dụng: ví dụ

Lưu ứng dụng và ghi lại client ID
-
Lưu Application và ghi lại
Client ID.export PORTAL_CLIENT_ID=""

Cấp quyền các API scope
- Navigate to
Okta API Scopestab in the application and grant below scopes.okta.myAccount.email.readokta.myAccount.profile.readokta.users.readokta.users.read.self

Ghi lại issuer URI và audience
-
Từ authorization server được cấu hình trong bước điều kiện tiên quyết, hãy ghi lại
Issuer Metadata URIvàVALID_AUDIENCE:export OKTA_ISSUER_URI="https://<your-okta-domain>/oauth2/<authorization-server-id>"
export OKTA_ORIGIN="https://<your-okta-domain>"
export VALID_AUDIENCE="api://halo"
Thêm policy truy cập cho portal
- Đi tới tab
Access Policiescủa authorization server (Security->API-> chọn authorization server của bạn ->Access Policies). - Add a new access policy:
- Tên: ví dụ:
Portal SSO Access - Mô tả: ví dụ:
Access policy for Halo Portal SSO users - Gán cho: client Portal SPA đã tạo ở trên (tìm theo tên
Glasswall Halo Portal)
- Tên: ví dụ:
- Add a rule:
- Tên: ví dụ:
Allow Portal Users - Loại cấp quyền:
Authorization Code - Người dùng là thành viên của:
Everyone(hoặc giới hạn vào một nhóm cụ thể, ví dụ:Halo-Admin, nếu bạn muốn giới hạn quyền truy cập Portal) - Giữ các cài đặt khác ở mặc định hoặc điều chỉnh khi cần.
- Tên: ví dụ:

Cập nhật dịch vụ Portal
export HALO_DOMAIN=<your-halo-domain>
helm upgrade --install cdrplatform-portal cdrplatform-portal -n cdrplatform --reuse-values \
--set configuration.AutoAdmin=false \
--set configuration.BackendScope="email openid profile" \
--set configuration.BackendUrl="https://${HALO_DOMAIN:?}" \
--set configuration.EnabledPages="SystemSettings\,PolicySettings\,IcapSettings\,IcapRequests\,IcapReporting" \
--set configuration.OIDC.ProviderOptions.Authority="${OKTA_ISSUER_URI:?}" \
--set configuration.OIDC.ProviderOptions.ClientId="${PORTAL_CLIENT_ID:?}" \
--set configuration.OIDC.ProviderOptions.PostLogoutRedirectUri="https://${HALO_DOMAIN:?}/authentication/logout-callback" \
--set configuration.OIDC.ProviderOptions.RedirectUri="https://${HALO_DOMAIN:?}/authentication/login-callback" \
--set appenvironment.HTTP_CSP_CONNECT_SRC="'self' ${OKTA_ORIGIN:?}" \
--set appenvironment.HTTP_CSP_FRAME_SRC="'self' ${OKTA_ORIGIN:?}" \
--set appenvironment.HTTP_CSP_FRAME_ANCESTORS="'self' ${OKTA_ORIGIN:?}" \
--set ingress.enabled=true \
--set ingress.tls.domain="${HALO_DOMAIN:?}" \
--set ingress.tls.enabled=true \
--atomic
Cập nhật dịch vụ Portal-Access
helm upgrade --install cdrplatform-portal-access -n cdrplatform cdrplatform-portal-access --reuse-values \
--set configuration.Authentication__Schemes__Bearer__Authority="${OKTA_ISSUER_URI:?}" \
--set configuration.Authentication__Schemes__Bearer__ValidAudiences__0="${VALID_AUDIENCE:?}" \
--set configuration.Authentication__Schemes__Bearer__ValidIssuer="${OKTA_ISSUER_URI:?}" \
--set configuration.AuthenticationScheme="Bearer" \
--set configuration.CORSDOMAIN="'*'" \
--set ingress.enabled=true \
--set ingress.tls.domain="${HALO_DOMAIN:?}" \
--set ingress.tls.enabled=true \
--atomic
Cấp quyền truy cập cho người dùng
Có 2 vai trò trong Halo - User và Admin. Các vai trò được cấu hình thông qua tư cách thành viên nhóm trên máy chủ ủy quyền Okta (xem Định nghĩa vai trò).
- Để cấp vai trò người dùng, hãy thêm người dùng vào nhóm
Halo_User. - Để cấp vai trò quản trị viên, hãy thêm người dùng vào nhóm
Halo_Admin.