मुख्य सामग्री पर जाएँ

Okta Portal SSO

SSO का उपयोग करके Halo portal में लॉगिन करने के लिए Okta को Identity Provider के रूप में उपयोग करें।

पूर्वापेक्षाएँ

  • Halo के लिए कॉन्फ़िगर किया गया Okta authorization server (देखें Okta Authorization Server)

Okta में अपना app रजिस्टर करें

App integration बनाएँ

  1. Okta Admin Console में लॉग इन करें → Applications -> Applications पर जाएँ।
  2. Create App Integration पर क्लिक करें → OIDC - OpenID Connect चुनें।
  3. Single-Page Application पर क्लिक करें।

image.png

ऐप इंटीग्रेशन कॉन्फ़िगर करें

  1. Configure the following settings:
    • ऐप इंटीग्रेशन नाम: उदाहरण के लिए Glasswall Halo Portal
    • Grant type: Choose below 3 options
      • Authorization Code
      • Refresh Token
      • Implicit (hybrid)
    • Sign-in redirect URIs: उदाहरण के लिए https://<your-halo-domain>/authentication/login-callback
    • Sign-out redirect URIs: उदाहरण के लिए https://<your-halo-domain>/authentication/logout-callback
    • Controlled access: Allow everyone in your organization to access चुनें। या यदि आप एक्सेस को कुछ लोगों तक सीमित करना चाहते हैं, तो केवल विशिष्ट समूह चुनें।
    • Enable immediate access with Federation Broker Mode का चयन हटाएँ।

Screenshot: Halo Portal Client Screenshot: Halo Portal Client

एप्लिकेशन सहेजें और client ID नोट करें

  1. Application सहेजें और Client ID नोट करें।

    export PORTAL_CLIENT_ID=""

Screenshot: Portal client id

API scopes प्रदान करें

  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

issuer URI और audience नोट करें

  1. पूर्वापेक्षा चरण में कॉन्फ़िगर किए गए authorization server से, Issuer Metadata URI और 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"

पोर्टल के लिए access policy जोड़ें

  1. authorization server के Access Policies टैब पर जाएँ (Security -> API -> अपना authorization server चुनें -> Access Policies)।
  2. Add a new access policy:
    • नाम: उदाहरण के लिए Portal SSO Access
    • विवरण: उदाहरण के लिए Access policy for Halo Portal SSO users
    • Assign to: ऊपर बनाया गया Portal SPA client (नाम Glasswall Halo Portal से खोजें)
  3. Add a rule:
    • नाम: उदाहरण के लिए Allow Portal Users
    • Grant type: Authorization Code
    • उपयोगकर्ता इसका सदस्य है: Everyone (या किसी विशिष्ट group तक सीमित करें, उदाहरण के लिए Halo-Admin, यदि आप Portal access सीमित करना चाहते हैं)
    • अन्य settings को डिफ़ॉल्ट रूप में रहने दें या आवश्यकता अनुसार समायोजित करें।

Screenshot: Access policy for Portal SSO Screenshot: Add rule

Portal service अपडेट करें

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

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

उपयोगकर्ताओं को एक्सेस प्रदान करें

Halo में 2 भूमिकाएँ हैं - User और Admin। भूमिकाएँ Okta authorization server पर group membership के माध्यम से कॉन्फ़िगर की जाती हैं (देखें भूमिकाएँ परिभाषित करें)।

  • उपयोगकर्ता भूमिका प्रदान करने के लिए, उपयोगकर्ता को Halo_User group में जोड़ें।
  • एडमिन भूमिका प्रदान करने के लिए, उपयोगकर्ता को Halo_Admin group में जोड़ें।