Okta Portal SSO
SSO を使用して Halo portal にログインするための ID プロバイダーとして Okta を使用します。
前提条件
- Halo 用に設定された Okta authorization server(Okta Authorization Server を参照)
Okta でアプリを登録する
アプリ統合を作成する
- Okta Admin Console にログインし、
Applications->Applicationsに移動します。 - Create App Integration をクリックし、OIDC - OpenID Connect を選択します。
- Single-Page Application をクリックします。

アプリ統合を設定する
- Configure the following settings:
- アプリ統合名: 例
Glasswall Halo Portal - Grant type: Choose below 3 options
- Authorization Code
- Refresh Token
- Implicit(ハイブリッド)
- サインイン リダイレクト URI: 例
https://<your-halo-domain>/authentication/login-callback - サインアウト リダイレクト URI: 例
https://<your-halo-domain>/authentication/logout-callback - Controlled access:
Allow everyone in your organization to accessを選択します。アクセスを少人数に制限したい場合は、特定のグループのみを選択することもできます。 Enable immediate access with Federation Broker Modeの選択を解除します。
- アプリ統合名: 例

アプリケーションを保存して client ID を控える
-
Application を保存し、
Client IDを控えます。export PORTAL_CLIENT_ID=""

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

issuer URI と audience をメモする
-
前提条件の手順で設定した 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"
Portal の access policy を追加する
- 認可サーバーの
Access Policiesタブに移動します(Security->API-> 認可サーバーを選択 ->Access Policies)。 - Add a new access policy:
- 名前: 例
Portal SSO Access - 説明: 例
Access policy for Halo Portal SSO users - 割り当て先: 上で作成した Portal SPA client(名前
Glasswall Halo Portalで検索)
- 名前: 例
- Add a rule:
- 名前: 例
Allow Portal Users - Grant type:
Authorization Code - ユーザーが次のメンバーであること:
Everyone(または Portal へのアクセスを制限したい場合は、Halo-Adminなどの特定のグループに制限) - その他の設定はデフォルトのままにするか、必要に応じて調整します。
- 名前: 例

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 認可サーバー上のグループメンバーシップによって設定されます(ロールの定義を参照)。
- ユーザーロールを付与するには、ユーザーを
Halo_Userグループに追加します。 - 管理者ロールを付与するには、ユーザーを
Halo_Adminグループに追加します。