Lumaktaw sa pangunahing nilalaman

Okta Portal SSO

Gamitin ang Okta bilang Identity Provider para mag-login sa Halo portal gamit ang SSO.

Mga Kinakailangan

Irehistro ang iyong app sa Okta

Gumawa ng app integration

  1. Mag-login sa Okta Admin Console → Pumunta sa Applications -> Applications.
  2. I-click ang Create App Integration → Piliin ang OIDC - OpenID Connect.
  3. I-click ang Single-Page Application.

image.png

I-configure ang app integration

  1. Configure the following settings:
    • Pangalan ng app integration: hal. Glasswall Halo Portal
    • Grant type: Choose below 3 options
      • Authorization Code
      • Refresh Token
      • Implicit (hybrid)
    • Mga Sign-in redirect URI: hal. https://<your-halo-domain>/authentication/login-callback
    • Mga Sign-out redirect URI: hal. https://<your-halo-domain>/authentication/logout-callback
    • Controlled access: Piliin ang Allow everyone in your organization to access. O piliin lamang ang mga partikular na grupo kung gusto mong limitahan ang access sa iilang tao.
    • Alisin ang pagkakapili sa Enable immediate access with Federation Broker Mode.

Screenshot: Halo Portal Client Screenshot: Halo Portal Client

I-save ang application at itala ang client ID

  1. I-save ang Application at itala ang Client ID.

    export PORTAL_CLIENT_ID=""

Screenshot: Portal client id

Magbigay ng mga API scope

  1. Navigate to Okta API Scopes tab in the application and grant below scopes.
    • okta.myAccount.email.read
    • okta.myAccount.profile.read
    • okta.users.read
    • okta.users.read.self

Screenshots: Portal Okta API Scopes

Itala ang issuer URI at audience

  1. Mula sa authorization server na na-configure sa kinakailangang hakbang, tandaan ang Issuer Metadata URI at 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"

Magdagdag ng access policy para sa portal

  1. Pumunta sa tab na Access Policies ng authorization server (Security -> API -> piliin ang iyong authorization server -> Access Policies).
  2. Add a new access policy:
    • Pangalan: hal. Portal SSO Access
    • Paglalarawan: hal. Access policy for Halo Portal SSO users
    • I-assign sa: ang Portal SPA client na ginawa sa itaas (hanapin ayon sa pangalang Glasswall Halo Portal)
  3. Add a rule:
    • Pangalan: hal. Allow Portal Users
    • Uri ng grant: Authorization Code
    • Ang user ay miyembro ng: Everyone (o limitahan sa isang partikular na grupo, hal., Halo-Admin, kung gusto mong limitahan ang access sa Portal)
    • Iwan ang ibang mga setting sa mga default o ayusin kung kinakailangan.

Screenshot: Access policy for Portal SSO Screenshot: Add rule

I-update ang serbisyo ng 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

I-update ang serbisyo ng 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

Magbigay ng access sa mga user

May 2 role sa Halo - User at Admin. Kino-configure ang mga role sa pamamagitan ng membership sa grupo sa Okta authorization server (tingnan ang Tukuyin ang Mga Role).

  • Para ibigay ang user role, idagdag ang user sa grupong Halo_User.
  • Para ibigay ang admin role, idagdag ang user sa grupong Halo_Admin.