Microsoft EntraシングルサインオンのAzure構成

最終公開日 : Oct 24, 2026
Microsoft Entraシングルサインオンを活用するには、まずMicrosoft Entra IDテナントでWindows向けMicrosoft Entra認証を許可する必要があります。これにより、Microsoft Entra参加済みおよびMicrosoft Entraハイブリッド参加済みセッションホストにユーザーがサインインできるように、必要な認証トークンの発行が可能になります。これを実現するには、以下を行う必要があります。
  1. Microsoft Entra IDテナントでCitrixアプリケーション(リソースアプリとクライアントアプリ)を登録します。
  2. Citrixリソースアプリケーションに対してリモートデスクトップセキュリティ構成を有効にします。
  3. CitrixクライアントアプリケーションをCitrixリソースアプリケーションの承認済みクライアントとして追加します。
  4. \[オプション\] ユーザー同意プロンプトダイアログを非表示にします。
  5. Kerberosサーバーオブジェクトを作成します。
  6. Microsoft Entra条件付きアクセス ポリシーを確認します。
Azure構成を行う担当者は、最低限、以下のMicrosoft Entra組み込みロールのいずれか、または同等のロールを割り当てられている必要があります。
PowerShell経由でAzure構成を完了したい場合は、Microsoft Graph PowerShell SDKを使用する必要があります。Graph Explorerのようなツールを使用して、Microsoft Graph APIを活用することもできます。
PowerShellとGraph Explorerの両方で構成を完了する方法についての手順が提供されています。

PowerShell構成

Microsoft Graph PowerShell SDKを使用することを選択した場合、以下にご注意ください。

リモートデスクトップセキュリティ構成を有効にする

Citrixアプリケーションを登録した後、Citrixリソースアプリケーションでリモートデスクトップセキュリティ構成を有効にする必要があります。
  1. 認証およびアプリケーションのMicrosoft Graphモジュールをインポートし、Application.Read.AllおよびApplication-RemoteDesktopConfig.ReadWrite.AllスコープでMicrosoft Graphに接続します。
    Import-Module Microsoft.Graph.Authentication
    Import-Module Microsoft.Graph.Applications
    Import-Module Microsoft.Graph.Beta.Applications
    Connect-MgGraph -Scopes "Application.Read.All","Application-RemoteDesktopConfig.ReadWrite.All"
  2. アプリ登録に関連付けられているサービスプリンシパルのオブジェクトIDを取得します。
    シトリックス クラウド US、EU、APS
    $CtxResourceSpId = (Get-MgServicePrincipal -Filter "AppId eq '3a510bb1-e334-4298-831e-3eac97f8b26c'").Id
    $CtxClientSpId = (Get-MgServicePrincipal -Filter "AppId eq '85651ebe-9a8e-49e4-aaf2-9274d9b6499f'").Id
    シトリックス クラウド ジャパン
    $CtxResourceSpId = (Get-MgServicePrincipal -Filter "AppId eq '0027603f-364b-40f2-98be-8ca4bb79bf8b'").Id
    $CtxClientSpId = (Get-MgServicePrincipal -Filter "AppId eq '0fa97bc0-059c-4c10-8c54-845a1fd5a916'").Id
  3. プロパティisRemoteDesktopProtocolEnabledをtrueに設定します。
    If ((Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $CtxResourceSpId) -ne $true) {
        Update-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $CtxResourceSpId -IsRemoteDesktopProtocolEnabled
    }
  4. プロパティisRemoteDesktopProtocolEnabledがtrueに設定されていることを確認します。
    Get-MgServicePrincipalRemoteDesktopSecurityConfiguration -ServicePrincipalId $CtxResourceSpId

クライアントアプリケーションを承認する

Citrixリソースアプリケーションで、Citrixクライアントアプリケーションを承認済みクライアントとして明示的に追加する必要があります。
  1. approvedClientAppオブジェクトを作成します。
    $acp = New-Object -TypeName Microsoft.Graph.Beta.PowerShell.Models.MicrosoftGraphApprovedClientApp
    $acp.Id = $CtxClientSpId
  2. クライアントアプリをapprovedClientAppオブジェクトに追加します。
    New-MgBetaServicePrincipalRemoteDesktopSecurityConfigurationApprovedClientApp -ServicePrincipalId $CtxResourceSpId -BodyParameter $acp
    出力は次のようになります。
    Id                                    DisplayName
    --                                    -----------
    87654321-wxyz-1a2b-3c4d-1029384756af  Citrix-Workspace

ユーザー同意プロンプトダイアログを非表示にする

既定では、Microsoft Entraシングルサインオンが有効なMicrosoft Entra参加済みまたはMicrosoft Entraハイブリッド参加済みのセッションホストに接続する際、ユーザーはリモートデスクトップ接続を許可するように求められ、その際、シングルサインオンを許可するために「はい」を選択する必要があります。Microsoft Entraは、再度プロンプトを表示するまで、最大15個の一意のセッションホストを30日間記憶します。
ターゲットデバイスのリストを構成することで、このダイアログを非表示にできます。デバイスのリストを構成するには、Microsoft Entra参加済みおよび/またはMicrosoft Entraハイブリッド参加済みのセッションホストを含む1つ以上のグループをMicrosoft Entra IDで作成し、その後、リソースアプリケーションでそれらのグループを承認する必要があります(最大10グループまで)。
注
グループのメンバーシップ管理を簡素化するために、動的グループを作成することを強くお勧めします。動的グループは通常5~10分以内に更新されますが、大規模なテナントでは最大24時間かかる場合があります。
動的グループには、Microsoft Entra ID P1ライセンスまたはIntune for Educationライセンスが必要です。詳細については、グループの動的メンバーシップ規則を参照してください。
グループが作成されたら、次の手順に従います。
  1. リモートデスクトップ接続プロンプトを非表示にしたいセッションホストを含むグループのオブジェクトID(OID)を取得します。
  2. targetDeviceGroupオブジェクトを作成します。
    $tdg = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphTargetDeviceGroup
    $tdg.Id = "<groupOID>"
  3. クライアントアプリをapprovedClientAppオブジェクトに追加します。
    New-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $CtxResourceSpId -BodyParameter $tdg
    出力は次のようになります。
    Id                                    DisplayName
    --                                    -----------
    87654321-wxyz-1a2b-3c4d-1029384756af  Entra-SSO-Desktops
  4. 後でtargetDeviceGroupオブジェクトからデバイスグループを削除する必要がある場合は、次のコマンドを実行します。
    Remove-MgServicePrincipalRemoteDesktopSecurityConfigurationTargetDeviceGroup -ServicePrincipalId $CtxResourceSpId -TargetDeviceGroupId "<groupOID>"
注
必要に応じて、これらの手順を繰り返してグループを追加できます(最大10グループまで)。

Microsoft Graph APIの構成

Remote Desktop Security Configuration を有効にする

Citrix アプリケーションを登録した後、Citrix Resource アプリケーションで Remote Desktop Security Configuration を有効にする必要があります。
  1. Azure ポータルから、アプリ登録に関連付けられているサービスプリンシパルのオブジェクト ID (OID) を取得します。
    1. Microsoft Entra ID > エンタープライズ アプリケーション に移動します。
    2. すべてのアプリケーションが一覧表示されるように、Application type フィルターが設定されている場合は削除します。
    3. Citrix-Workspace-Resource / Citrix-Workspace-Resource-JP を検索し、Resource アプリケーションに関連付けられているオブジェクト ID をメモします。
    4. Citrix-Workspace / Citrix-Workspace-JP を検索し、クライアント アプリケーションに関連付けられているオブジェクト ID をメモします。
  2. Graph Explorer で、必要な権限を持つターゲット Azure テナントのアカウントでサインインします。
  3. 次のクエリを設定します。
    • HTTP リクエスト メソッド: PATCH
    • Microsoft Graph API バージョン: v1.0
    • クエリ:
      https://graph.microsoft.com/v1.0/servicePrincipals/<resourceAppOID>/remoteDesktopSecurityConfiguration
    • リクエスト本文:
      {
          "@odata.type": "#microsoft.graph.remoteDesktopSecurityConfiguration",
          "isRemoteDesktopProtocolEnabled": true
      }
  4. Modify Permissions タブを選択し、Application.ReadWrite.All 権限に同意していることを確認します。
  5. クエリを実行します。
参照については、remoteDesktopSecurityConfiguration resource type を参照してください。

クライアントアプリケーションを承認する

Citrix Resource アプリケーションで、Citrix Client アプリケーションを承認済みクライアントとして明示的に追加する必要があります。
次のクエリを設定して実行します。
  • HTTP リクエストメソッド: POST
  • Microsoft Graph API バージョン: v1.0
  • クエリ:
    https://graph.microsoft.com/v1.0/servicePrincipals/<resourceAppOID>/remoteDesktopSecurityConfiguration/approvedClientApps
  • リクエスト本文:
    {
        "@odata.type": "#microsoft.graph.approvedClientApp",
        "id": "<clientAppOID>"
    }

ユーザー同意プロンプトダイアログを非表示にする

デフォルトでは、Microsoft Entra シングルサインオンが有効な Microsoft Entra 参加済みまたは Microsoft Entra ハイブリッド参加済みセッションホストに接続する際、ユーザーはリモートデスクトップ接続を許可するよう求められ、シングルサインオンを許可するために を選択する必要があります。Microsoft Entra は、再度プロンプトを表示するまで、最大 15 の一意のセッションホストを 30 日間記憶します。
ターゲットデバイスのリストを構成することで、このダイアログを非表示にできます。デバイスのリストを構成するには、Microsoft Entra ID で Microsoft Entra 参加済みおよび/または Microsoft Entra ハイブリッド参加済みセッションホストを含むグループを 1 つ以上作成し、その後、リソースアプリケーションでそのグループを承認する必要があります(最大 10 グループまで)。
注
グループのメンバーシップ管理を簡素化するために、動的グループを作成する ことを強くお勧めします。動的グループは通常 5~10 分以内に更新されますが、大規模なテナントでは最大 24 時間かかる場合があります。
動的グループには、Microsoft Entra ID P1 ライセンスまたは Intune for Education ライセンスが必要です。詳細については、グループの動的メンバーシップルール を参照してください。
グループが作成されたら、次の手順に従います。
  1. リモートデスクトップ接続プロンプトを非表示にしたいセッションホストを含むグループのオブジェクトID (OID) を取得します。
  2. 次のクエリを設定して実行します。
    • HTTPリクエストメソッド: POST
    • Microsoft Graph APIバージョン: v1.0
    • クエリ:
      https://graph.microsoft.com/v1.0/servicePrincipals/<resourceAppOID>/remoteDesktopSecurityConfiguration/targetDeviceGroups
    • リクエストボディ:
      {
          "@odata.type": "#microsoft.graph.targetDeviceGroup",
          "id": "<groupOID>"
      }
注
必要に応じて、これらの手順を繰り返してグループを追加できます。最大10グループまで追加可能です。
後でtargetDeviceGroupオブジェクトからデバイスグループを削除する必要がある場合は、次を設定してクエリを実行します。
  • HTTPリクエストメソッド: DELETE
  • Microsoft Graph APIバージョン: v1.0
  • クエリ:
    https://graph.microsoft.com/beta/servicePrincipals/<resourceAppOID>/remoteDesktopSecurityConfiguration/targetDeviceGroups
詳細については、targetDeviceGroupリソースタイプを参照してください。

Kerberosサーバーオブジェクトを作成する

セッションホストがMicrosoft Entraハイブリッド参加している場合、ユーザーアカウントとコンピューターアカウントが存在するActive DirectoryドメインにKerberosサーバーオブジェクトを構成する必要があります。詳細については、Kerberosサーバーオブジェクトを作成するを参照してください。

Microsoft Entra 条件付きアクセス ポリシーの確認

Microsoft Entra 条件付きアクセス ポリシーを使用している、または使用する予定がある場合は、ユーザーが意図したサインインエクスペリエンスを得られるように、Citrix Resource アプリケーションとCitrix Client アプリケーションに適用されている構成を確認してください。
DaaS 用の Microsoft Entra シングルサインオンを使用する際の条件付きアクセスの構成に関する詳細なガイダンスについては、Microsoft ドキュメントを参照してください。必要な条件付きアクセス設定は、Microsoft アプリケーションではなく、Citrix Resource アプリケーションまたはCitrix Client アプリケーションに適用する必要があることに注意してください。