SSO Portal Okta
Gunakan Okta sebagai Identity Provider untuk log masuk ke portal Halo menggunakan SSO.
Prasyarat
- Pelayan kebenaran Okta dikonfigurasi untuk Halo (lihat Okta Authorization Server)
Daftarkan aplikasi anda dalam Okta
Cipta integrasi aplikasi
- Log masuk ke Okta Admin Console → Navigasi ke
Applications->Applications. - Klik Create App Integration → Pilih OIDC - OpenID Connect.
- Klik Single-Page Application.

Konfigurasikan integrasi aplikasi
- Configure the following settings:
- Nama integrasi aplikasi: contohnya
Glasswall Halo Portal - Grant type: Choose below 3 options
- Authorization Code
- Refresh Token
- Implicit (hybrid)
- URI ubah hala log masuk: contohnya
https://<your-halo-domain>/authentication/login-callback - URI ubah hala log keluar: contohnya
https://<your-halo-domain>/authentication/logout-callback - Akses terkawal: Pilih
Allow everyone in your organization to access. Atau pilih hanya kumpulan tertentu jika anda mahu mengehadkan akses kepada beberapa orang. - Nyahpilih
Enable immediate access with Federation Broker Mode.
- Nama integrasi aplikasi: contohnya

Simpan aplikasi dan catat client ID
-
Simpan Application dan catat
Client ID.export PORTAL_CLIENT_ID=""

Berikan skop API
- Navigate to
Okta API Scopestab in the application and grant below scopes.okta.myAccount.email.readokta.myAccount.profile.readokta.users.readokta.users.read.self

Catat issuer URI dan audience
-
Daripada authorization server yang dikonfigurasikan dalam langkah prasyarat, catat
Issuer Metadata URIdanVALID_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"
Tambah access policy untuk portal
- Navigasi ke tab
Access Policiespelayan kebenaran (Security->API-> pilih pelayan kebenaran anda ->Access Policies). - Add a new access policy:
- Nama: cth.
Portal SSO Access - Penerangan: cth.
Access policy for Halo Portal SSO users - Assign to: klien Portal SPA yang dicipta di atas (cari mengikut nama
Glasswall Halo Portal)
- Nama: cth.
- Add a rule:
- Nama: cth.
Allow Portal Users - Grant type:
Authorization Code - Pengguna ialah ahli:
Everyone(atau hadkan kepada kumpulan tertentu, cth.,Halo-Admin, jika anda mahu mengehadkan akses Portal) - Biarkan tetapan lain sebagai lalai atau laraskan mengikut keperluan.
- Nama: cth.

Kemas kini perkhidmatan 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
Kemas kini perkhidmatan 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
Berikan akses kepada pengguna
Terdapat 2 peranan dalam Halo - User dan Admin. Peranan dikonfigurasikan melalui keahlian kumpulan pada pelayan kebenaran Okta (lihat Takrifkan Peranan).
- Untuk memberikan peranan pengguna, tambahkan pengguna ke kumpulan
Halo_User. - Untuk memberikan peranan pentadbir, tambahkan pengguna ke kumpulan
Halo_Admin.