OktaをIDプロバイダーとしてCitrix Cloudに接続する
Citrix Cloudでは、ワークスペースにサインインする利用者を認証するためのIDプロバイダーとして使用して、Oktaを使用できます。 Okta組織をCitrix Cloudに接続することにより、Citrix Workspaceのリソースにアクセスする利用者に共通のサインイン操作を提供できます。
ワークスペース構成でOkta認証を有効にした後、利用者のサインイン操作は変化します。 Okta認証を選択すると、シングルサインオンではなく、フェデレーションIDによるサインイン環境となります。 利用者は、Oktaサインインページからワークスペースにサインインしますが、Citrix DaaS(旧称Citrix Virtual Apps and Desktopsサービス)からアプリまたはデスクトップを起動するときにもう一度認証する必要があります。 シングルサインオンを有効にし、2つ目のログオンプロンプトが表示されないようにするには、Citrix CloudでCitrixフェデレーション認証サービスを使用する必要があります。 詳しくは、「Citrix CloudにCitrixフェデレーション認証サービスを接続する」を参照してください。
前提条件
Cloud ConnectorまたはConnector Appliance
Cloud ConnectorまたはConnector Applianceのいずれかが、Citrix Cloudとリソースの場所との間でやり取りするために必要です。 Citrix Cloudとの高可用性接続を実現するためには、少なくとも2つのCloud ConnectorまたはConnector Applianceが必要です。 また、使用しているActive Directoryドメインに参加しているコネクタが少なくとも2つ必要です。 これらは、Cloud ConnectorまたはConnector Applianceのいずれかを使用できます。
コネクタは、次の要件を満たしている必要があります:
- 各製品のドキュメントに記載されている要件を満たしている
- Active Directory(AD)ドメインに参加している。 ワークスペースユーザーが複数のドメインに存在する場合、Connector Applianceのマルチドメイン機能を使用して複数のドメインに参加できます。
- ユーザーがCitrix Workspaceを介してアクセスするリソースにアクセスできるネットワークに接続済み。
- インターネットに接続済み。 詳しくは、「システムおよび接続要件」を参照してください。
Cloud Connectorのインストール手順について詳しくは、「Cloud Connectorのインストール」を参照してください。 Connector Applianceのインストール手順について詳しくは、「Connector Applianceのインストール」を参照してください。
Oktaドメイン
OktaをCitrix Cloudに接続する場合、組織のOktaドメインを指定する必要があります。 Citrixは、次のOktaドメインをサポートしています:
- okta.com
- okta-eu.com
- oktapreview.com
Citrix CloudでOktaカスタムドメインを使用することもできます。 Okta Webサイトの「Okta URLドメインのカスタマイズ」で、カスタムドメインの使用に関する重要な考慮事項をレビューします。
組織のカスタムドメインを見つける方法について詳しくは、Okta Webサイトで「自身のOktaドメインの検索」を参照してください。
Okta OIDC Webアプリケーション
OktaをIDプロバイダーとして使用するには、まずCitrix Cloudで使用できるクライアント資格情報を使用してOkta OIDC Webアプリケーションを作成する必要があります。 アプリケーションを作成して構成したら、クライアントIDとクライアントシークレットをメモします。 Okta組織の接続時に、これらの値をCitrix Cloudに入力します。
このアプリケーションを作成および構成するには、この記事の次のセクションを参照してください:
ワークスペースURL
Oktaアプリケーションの作成時には、Citrix CloudからのワークスペースURLを入力する必要があります。 ワークスペースURLを見つけるには、Citrix Cloudメニューから [ワークスペース構成] を選択します。 ワークスペースURLは、[アクセス] タブに表示されます。
-priority
後でワークスペースURLを変更する場合、Oktaアプリケーションの構成を新しいURLによって更新する必要があります。 そうしないと、ワークスペースからのログオフ時に問題が発生する可能性があります。
Okta APIトークン
Citrix CloudでOktaをIDプロバイダーとして使用するには、Okta組織のAPIトークンが必要です。 Okta組織で読み取り専用の管理者アカウントを使用し、このトークンを作成します。 このトークンは、Okta組織内のユーザーとグループを読み取れる必要があります。
APIトークンを作成するには、この記事の「Okta APIトークンの作成」を参照してください。 APIトークンについて詳しくは、Oktaウェブサイトで「APIトークンの作成」を参照してください。
-priority
APIトークンを作成する際には、トークンの値をメモしてください(たとえば、値を一時的にプレーンテキストドキュメントにコピーしてください)。 Oktaではこの値が一度だけ表示され、「Citrix CloudをOkta組織に接続する」の手順を実行する直前にトークンを作成する場合があります。
Okta ADエージェントを使用してActive DirectoryアカウントをOktaに同期する
OktaをIDプロバイダーとして使用するには、まず、オンプレミスActive DirectoryとOktaを統合する必要があります。 そのためには、ドメイン内にOkta ADエージェントをインストールし、Okta OrganizationにActive Directoryを追加します。 Okta Active Directoryエージェントを展開するためのガイダンスについては、Okta Webサイトで「Get started with Active Directory integration(Active Directoryの統合を開始する) 」を参照してください。
その後、Active DirectoryユーザーおよびグループをOktaにインポートします。 インポート時には、Active Directoryアカウントに関連付けられている以下の値を含めます:
- メール
- SID
- UPN
- OID
メモ:
ワークスペースでCitrix Gatewayサービスを使用している場合、Active DirectoryアカウントをOkta組織と同期する必要はありません。
Active DirectoryユーザーおよびグループをOkta Organizationと同期するには:
- Okta Active Directoryエージェントをインストールして構成します。 詳しい手順については、Okta Webサイトの次の記事を参照してください:
- 手動インポートまたは自動インポートを実行して、Active DirectoryユーザーおよびグループをOktaに追加します。 Oktaのインポート方法と手順について詳しくは、Okta Webサイトで「Manage Active Directory users and groups(Active Directoryユーザーとグループの管理)」を参照してください。
Okta OIDC Webアプリケーション統合の作成
- Okta管理コンソールの [Applications] から [Applications] を選択します。
- [Create App Integration] を選択します。
- [Sign in method] で [OIDC - OpenID Connect] を選択します。
- [Application type] で [Web Application] を選択します。 [次へ] を選択します。
- [App Integration Name] にアプリ統合のフレンドリ名を入力します。
- [Grant type] で [Authorization Code] を選択します(デフォルトで選択済み)。
-
サインインリダイレクトURIに、
https://accounts.cloud.com/core/login-oktaと入力します。- Citrix Cloudをご使用のお客様のリージョンが欧州連合、米国、またはアジア太平洋南部の各リージョンの場合は、「
https://accounts.cloud.com/core/login-okta」と入力します。 - Citrix Cloudをご使用のお客様のリージョンが日本リージョンの場合は、「
https://accounts.citrixcloud.jp/core/login-okta」と入力します。 - Citrix Cloudをご使用のお客様のリージョンがCitrix Cloud Governmentリージョンの場合は、「
https://accounts.cloud.us/core/login-okta」と入力します。
- Citrix Cloudをご使用のお客様のリージョンが欧州連合、米国、またはアジア太平洋南部の各リージョンの場合は、「
- [Sign-out redirect URIs] に、Citrix CloudからのWorkspace URLを入力します。
- Workspaceカスタムドメインも使用している場合は、そちらも入力する必要があります。 例
https://workspaceurl1.cloud.comhttps://workspaceurl2.cloud.comhttps://workspaceurl1.mycustomdomain.com
- [Assignments] の [Controlled access] で、アプリ統合を割り当てるのが組織の全員または指定したグループのみか、または後からアクセスを割り当てるのかを選択します。
- [Save] を選択します。 アプリ統合を保存すると、コンソールにアプリケーション構成ページが表示されます。
- [Client Credentials] セクションで、[Client ID] と [Client Secret] の値をコピーします。 Citrix CloudをOkta組織に接続するときに、これらの値を使用します。
Okta OIDC Webアプリケーションの構成
この手順では、Citrix Cloudに必要な設定によってOkta OIDC Webアプリケーションを構成します。 Citrix Cloudでは、ワークスペースへのサインイン時にOktaを介して利用者を認証するため、これらの設定が必要です。
- (オプション)暗黙的な許可タイプのクライアント権限を更新します。 この付与タイプに最小限の権限を許可する場合に、この手順の実行を選択できます。
- Oktaアプリケーション構成ページの [General] タブで [General Settings] セクションまでスクロールし、[Edit] をクリックします。
-
[Application] セクションの [Grant type] の [Client acting on behalf of user] で [Allow Access Token with implicit grant type] をオフにします。

- [Save] を選択します。
- アプリケーション属性を追加します。 これらの属性では大文字と小文字が区別されます。
- Oktaコンソールメニューから、[Directory]>[Profile Editor]の順に選択します。
-
Okta [User](デフォルト) プロファイルを選択します。 Oktaが [User] プロファイルページを表示します。

-
[Attributes] で、[Add attribute] を選択します。

- 次の情報を入力します:
- Display Name:cip_email
- Variable Name:cip_email
- Description:ADユーザーメール
- 属性の長さ:[次より大きい] を選択し、「1」と入力します。
-
Attribute Required:Yes

- [Save and Add Another] を選択します。
- 次の情報を入力します:
- Display Name:cip_sid
- Variable Name:cip_sid
- Description:Active Directoryユーザーセキュリティ識別子
- 属性の長さ:[次より大きい] を選択し、「1」と入力します。
- Attribute Required:Yes
- [Save and Add Another] を選択します。
- 次の情報を入力します:
- Display Name:cip_upn
- Variable Name:cip_upn
- Description:ADユーザープリンシパル名
- 属性の長さ:[次より大きい] を選択し、「1」と入力します。
- Attribute Required:Yes
- [Save and Add Another] を選択します。
- 次の情報を入力します:
- Display Name:cip_oid
- Variable Name:cip_oid
- Description:ADユーザーGUID
- 属性の長さ:[次より大きい] を選択し、「1」と入力します。
- Attribute Required:Yes
- [Save] を選択します。
- アプリケーションの属性マッピングの編集:
- Oktaコンソールから、[Directory]>[Profile Editor]>[Directories]の順に選択します。
-
Active Directoryのactive_directoryプロファイルを見つけます。 このプロファイルは、
myDomain Userという形式で表示される場合があります。myDomainは統合されたActive Directoryドメインの名前です。
-
[Mappings] を選択します。 Active Directoryドメインのユーザープロファイルマッピングページが表示され、Active DirectoryをOktaユーザーにマップするためのタブが選択されています。

-
[Okta User Profile] 列で、手順2で作成された属性を見つけて以下のようにマップします:


-
cip_emailの場合、ドメインの[User Profile]列からemailを選択します。 選択すると、マッピングはappuser.emailとして表示されます。 -
cip_sidの場合、ドメインの[User Profile]列からobjectSidを選択します。 選択すると、マッピングはappuser.objectSidとして表示されます。 -
cip_sidの場合、ドメインの[User Profile]列からuserNameを選択します。 選択すると、マッピングはappuser.userNameとして表示されます。 -
cip_sidの場合、ドメインの[User Profile]列からexternalIdを選択します。 選択すると、マッピングはappuser.externalIdとして表示されます。
-
- [Save Mappings] を選択します。
- [Apply updates now]を選択します。 Oktaは、マッピングを適用するジョブを開始します。
- OktaをActive Directoryと同期します。
- Oktaコンソールから[Directory]>[Directory Integrations]の順に選択します。
- 統合されたActive Directoryを選択します。
- [Provisioning] タブを選択します。
- [Settings] で [To Okta] を選択します。
- [Okta Attribute Mappings] セクションまでスクロールして、[Force Sync] を選択します。
Okta APIトークンの作成
- 読み取り専用管理者アカウントを使用して、Oktaコンソールにサインインします。
- Oktaコンソールメニューから、[Security]>[API]の順に選択します。
- [Tokens] タブを選択してから、[Create Token] を選択します。
- トークンの名前を入力します。
- [Create Token] を選択します。
- トークン値をコピーします。 Okta組織のCitrix Cloudへの接続時に、この値を入力します。
Citrix CloudをOkta組織に接続
- https://citrix.cloud.comでCitrix Cloudにサインインします。
- Citrix Cloudメニューで、[IDおよびアクセス管理] を選択します。
- 「Okta」を見つけ、省略記号(…)メニューから [接続] を選択します。
- [Okta URL] にOktaドメインを入力します。
- [Okta APIトークン] に、Okta組織のAPIトークンを入力します。
- [クライアントID] と [クライアントシークレット] に、先ほど作成したOIDC Webアプリ統合からクライアントIDとシークレットを入力します。 Oktaコンソールからこれらの値をコピーするには、[アプリケーション] を選択し、Oktaアプリケーションを見つけます。 [クライアント資格情報] で、[クリップボードにコピー] ボタンを各値に対して使用します。
- [テストして終了] をクリックします。 Citrix CloudでOktaの詳細が確認され、接続がテストされます。
接続が正常に検証されたら、ワークスペース利用者に対してOkta認証を有効にできます。
ワークスペースのOkta認証を有効にする
- Citrix Cloudメニューから[ワークスペース構成]>[認証]の順に選択します。
- [Okta] を選択します。
- プロンプトが表示されたら、[利用者のエクスペリエンスに与える影響を了承しています] を選択します。
- [Save] を選択します。
Okta認証に切り替えた後、Citrix Cloudはワークスペースを数分間一時的に無効にします。 ワークスペースが再度有効になると、利用者はOktaを使用してサインインできます。
追加情報
- Citrix Tech Zone:
トラブルシューティング
問題1
WorkspaceへのOkta OIDC認証は成功しますが、Workspace内のエンドユーザーにはDaaSリソースが表示されません。 これは、「ctx_user.sid」などのクレームがDaaSに送信されていないために発生する可能性があります。
デバッグ手順1
- ブラウザーを使用してHARファイルをキャプチャし、Okta OIDC認証を使用してWorkspaceにログインしてから、Workspaceからログアウトします。
-
ユーザーがWorkspaceから明示的にログアウト操作を実行したときに、ブラウザーの開発者ツール内で次の呼び出しを見つけます
GET
https://accounts.cloud.com/core/connect/endsession?id_token_hint=<base64string> -
JWTが含まれる
?id_token_hint=の後のbase64文字列をコピーします。 Firefox開発ツールから取得した例。
このbase64文字列をhttps://jwt.io内でJSON WEB TOKEN(JWT)のEncoded Valueフィールドに貼り付けて、Citrix CloudがOkta OIDCアプリケーションから受け取ったクレームを調べます。 必要なすべてのクレームが"ctx_user": {}内に存在し、各クレームにWorkspaceにログインしたユーザーの正しいユーザーデータが含まれていることを確認します。 "ctx_user": {}内に、"oid"、"email"、"sid"、"upn"という4つのクレームがあることを確認します。 デコードされたJWTの例。

原因1
Okta OIDCアプリケーションが必要なcip_*クレームの4つすべてを送信していないか、Oktaユーザープロファイルに必要な属性が含まれていません。
解決方法1
Okta OIDCアプリケーション構成とOktaのユーザープロファイル属性のマッピングを確認します。 Okta OIDCアプリが正しいクレームを送信していることを確認します。 クレーム名cip_upn、cip_email、cip_sid、およびcip_oidを使用します。 すべてのクレーム名は小文字にする必要があります。
原因2
DaaSデリバリーグループが正しく構成されておらず、リソースがActive DirectoryのIDではなくOktaのIDにマッピングされています。
解決方法2
ADドメインに参加しているデリバリーグループとVDAを、Okta IDではなく、Active Directory IDにマップします。 Okta IDは、ドメインに参加していないリソースの起動にのみ使用します。

デリバリーグループを構成して、ADユーザーとグループに基づいてリソースの使用を制限します。

原因3
Citrix Cloudの要件に従ってADユニバーサル グループを使用していないか、Citrix Cloud Connectorが正しいADドメインレベルに参加していません。 詳細については、この記事「Citrix Cloud Connectorの技術詳細」を参照してください
解決方法3
ユーザーをDaaSリソースに割り当てるときはユニバーサルグループを使用します
または、
Workspaceユーザーをデリバリーグループに直接割り当てます。
