1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows App Kiosk で作る“完全パスワードレス・シンクライアント” ― AVD / Cloud PC 両対応

Last updated at Posted at 2025-12-26

はじめに

Windows App 自動ログオフ の機能を Windows App アプリ単体で 評価していたところ、これはシンクライアントに向いているんじゃないかと思い、今回のテーマを思いつきました。

検証を進めるうちに、これって Windows 365 (Cloud PC) 専用デバイスである Windows 365 Link に近づけられるんじゃないかと思って、取り組んでみました。

Surface 上に Windows App を キオスク で起動させた場面
image.png

これは Shell Launcher により、Windows App が OS のシェルとして起動した状態です(一般的な Windows UI は完全に非表示になります

お知らせ
このシンクライアントの 起動 → 認証 → リモート接続 → 終了 までの 全画面遷移 や、Windows 365 Link との比較表 を 最終章 で掲載しています。ぜひ、ご覧ください。


序章:Windows App 自動ログオフ の検証

自動ログオフは、Windows App アプリ から、AVD や Windows 365 への接続が成功したあとや、アプリ終了時に 資格情報 を破棄することで、セキュリティを向上させる仕組みです。

AutoLogoffOnSuccessfulConnect
RDP 接続が成功した時点で 即 自動ログオフ → 高セキュリティ、しかし 非常に利便性が悪い
そして、セットアップ直後の状態に戻るため、以下の画面のような、「ようこそ」が毎回出る

SkipFRE
上記の「ようこそ」を 常に Skip させるオプション
AutoLogoffOnSuccessfulConnect とセットで使えば、現実的

AutoLogoffEnable
「ようこそ」が毎回出ない(初回ログオンなのか、それ以降なのかが継続しているっぽい)
Windows App アプリ終了時に自動ログオフ → 即ではないので、バランスが良い

モチベ
自動ログオフ機能 を セキュリティキー を使って動作検証していたら、かなり良い感じだでした。とくに PIN入力が不要な 指紋認証タイプの Yubikey Bio との相性が最高でした。
このままチューニングしていけば、Windows 365 Link に迫れるんじゃないか・・と思った次第です。


前提事項

本章に記載した前提事項を満たしておきましょう。

① AVD を 完全パスワードレス化しておく

Windows App から AVD へ、セキュリティーキーを使った、SSO ができるようにしておきます。

Before(毎回、認証ウィンドウが出るので、パスワードを入れる必要アリ)
image.png

After(認証ウィンドウが出ない)
image.png

AVD セッションホスト で、以下の設定をしておきます。
image.png

最終的に 以下の記事の内容で さまざまな対策を講じて、AVD へ パスワードレスで接続できるようにしておきます。


② シンクラ化する PC は Enterprise Edition にしておく

キオスク化に必須の ShellLauncher は、Enterprise 版 の OS でしか使えません。
以下の記事を参考に、しっかりと Enterprise Edition 化しましょう。

Windows Enterprise サブスクリプションライセンスを ちゃんと適用する
https://qiita.com/carol0226/items/c7e1b8d7fc82ebc666fc

image.png

公開情報:シェル ランチャー:前提条件
https://learn.microsoft.com/ja-jp/windows/configuration/shell-launcher/quickstart-kiosk?wt.mc_id=MVP_407731&tabs=intune#prerequisites

公開情報:シェル ランチャーの構成
https://learn.microsoft.com/ja-jp/windows/configuration/shell-launcher/configure?wt.mc_id=MVP_407731&tabs=powershell1%2Cps


③ シンクラ化する PC へ Windows App アプリを展開しておく

Windows App は、Intune で、Microsoft Store アプリ (新規) 形式で配れます。
キオスクでシンクラ化する場合は、システムコンテキストで配っておくことがポイントになります。

以下の記事では 別のアプリを配っている手順ですが、「Microsoft Store アプリ (新規) 」で同じタイプなので、手順は一緒です。

アプリの選択で、Windows App を選ぶ点だけが違います。
image.png


メインテーマ:キオスク を使った Windows App アプリ の完全シンクライアント化

本構成で、Windows 365 Link もどき が作れます。

Windows App のキオスク動作を支える Shell Launcher にたどり着くまでの苦労

ブラウザ版のしくみは、以下の記事で 約1年前に検証していて簡単だったので、Windows App アプリは、ちょっと試せば良い程度と思っていましたが、そう簡単ではありませんでした。

まず、WindowsApp は、ストアアプリとして配れるのに、実は UWP ではなく、WinUI 3 / Windows App SDK ということらしいのです。この場合に、キオスクモードで 単一アプリを提供するには Shell Launcher を嚙ませないとやりたいことが実現できないことが判りました。

しかも、Shell Launcher は、Windows Enterprise Edition を必要とします。
Professional Edition では、実現できなことが判り、これに気付くまでハマりました。


GitHub : WindowsAppKiosk との出会い

試行錯誤したあげく、GitHub に素晴らしい方法が公開されていたので、結果論としては これを採用しています。
(こういうのを、私自身で作りたかったのに・・・)

構築手順について
画面キャプチャ付きの構築手順は、以下の記事で紹介しています。

Windows App Kiosk によるシングルキオスク構成のシンクライアント構築手順
https://qiita.com/carol0226/items/62b8caae9787b6450f54

WindowsAppKiosk は、Windows App をキオスク稼働させるためのスクリプトや XML ファイルに留まらず、キオスクサインインを行う際のロゴなど、ありとあらゆるカスタマイズ材料が用意されている点が特長です。

GitHub : WindowsAppKiosk
https://github.com/Azure/WindowsAppKiosk
(上記の記事より抜粋)
左 (Scenario 1): OS に サインイン したアカウントで、Windows App に SSO させる
右 (Scenario 2): OS には キオスク でサインインし、Windows App を手動で 認証する
image.png


Windows App は、UWP なのか?
Windows App のプロパティを見ると、UWP って書かれているのに、実際は そうではない!
image.png

以下のようなやり方を、Copilot が紹介してくるし、公開情報を見たら出来そうに見えたのですが、Windows App のアプリ種別が異なっている(UWPではない)せいで、出来ないのです。

以下は、NG パターン です
Windows App が、ストアアプリ (UWP) だと思い込んで試していた方法

ユーザーを作成する
ログオンする
Windows App をインストールする
ログオフする
管理者ログオン
Get-StartApps
Clear-AssignedAccess
$account = "KioskUser"
$appid = "MicrosoftCorporationII.Windows365_8wekyb3d8bbwe!Windows365"
Set-AssignAccess -UserName $account -AppUserModelId $appId

結論
Intune 上では「UWP」と表示されますが、Windows App の実体は WinUI 3 / Windows App SDK ベースであり、Assigned Access ではキオスク化できません。

以下の公開情報は、割り当てられたアクセス (Assigned Access) の方法なので、Windows App では使えません。

公開情報:割り当てられたアクセスを使用してシングル アプリ キオスクを構成する
https://learn.microsoft.com/ja-jp/windows/configuration/assigned-access/configure-single-app-kiosk?wt.mc_id=MVP_407731&tabs=ps

公開情報:クイック スタート: 割り当てられたアクセスを使用してシングル アプリ キオスクを構成する
https://learn.microsoft.com/ja-jp/windows/configuration/assigned-access/quickstart-kiosk?wt.mc_id=MVP_407731&tabs=ps

まとめ
本章までの構成で、冒頭で紹介した シンクライアント が動作するようになります。
引き続き、次の章からは 接続先を パスワードレスで利用するための施策になります。


セッションホストから、ダブルホップで RDP する際の認証

一般的に このようなシーンでは、パスワードを使って認証している場面が多いと思いますが、それについても パスワードレスにすることができます。

AVD にサインインしたときの資格情報で ① SSO をさせたり、任意のユーザーで ② Web 認証 をさせることができます。

① SSO (Remote Credential Guard)

利用者の見た目には 何の認証も発生せずに、SSO で RDP 接続されます。
しかも、資格情報は 利用者が セッションホストから抜けた段階でクリアされます(資格情報を セッションホスト上に 保存しているわけではないのに、パスワードレスで 瞬時につながります)


② RDP WebAuthn

クライアント側は、Web アカウントを使用して、リモートコンピューターにサインインする にチェックを入れることで機能します。

Windows Server 側には、ポリシーを配布しておくことがポイントです。
image.png


画面ロック対策

セッションホストが画面ロックしてしまうと、以下のような感じになり、パスワードを持っていないユーザーが困惑します。

Microsoft Entra Join や 将来の Windows バージョンで改善される可能性がありますが、現時点ではロック解除にパスワードが必要です。

image.png

OK ボタンを押したあとに 自動切断されるため、利用者は 再接続 を行うだけで スムーズに RDP の再接続によって リモートホスト の操作を継続させることが可能になります。
image.png


参考1:パスワードレスな アカウント運用について

ドメインアカウントには パスワードが無いので 1回しか使えない テンポラリアクセスパス (TAP) を使って セキュリティキー をプロビジョニング(アカウント と キーを紐づける作業)をさせるようにします。

TAP(Temporary Access Pass)は、パスワードレスアカウントにセキュリティキーを登録するための一時的な認証手段です。


参考2:Windows 365 Link との比較

公開情報:Windows 365 Link とは
https://learn.microsoft.com/ja-jp/windows-365/link/overview
(上記URLより抜粋)

Windows 365 Link と、Windows App Kiosk を比較してみました。あくまで個人的な見解です。

観点 Windows 365 Link デバイス Windows App
(Shell Launcher キオスク)
デバイス種別 Microsoft 純正 の Cloud PC 専用シンクライアント 任意の Windows 11 Enterprise マシンを流用した自作シンクライアント
役割 Windows 365 Cloud PC に安全かつ直接接続する専用端末 AVD & Windows 365 への接続専用端末として Windows App だけを起動
ローカル OS 利用 最小限のシステム OS
(ユーザーはローカルアプリ・ローカルデータを基本持たない)
通常の Windows 11 Enterprise だが、Shell Launcher でシェルを Windows App に置き換え実質利用不可にする
ローカルデータ保持 原則なし
(ローカルにユーザーデータを保存しない設計)
ポリシー次第では持てるが、設計としては保存させない構成にする
接続先 Windows 365 Cloud PC 専用 Windows 365 Cloud PC と AVD の 両方に対応可能
ハードウェア Microsoft が設計・提供する小型デバイス(いわゆる Cloud PC 専用端末) 既存 PC / シンクライアント機 / Mini PC など 自由に選択
管理 Intune で前提的に管理 Intune で管理+Shell Launcher の構成スクリプトを併用
認証 Entra ID+パスワードレス(Passkey / WHfB)前提で Cloud PC にサインイン Windows App の Web サインイン+AutoLogoff+セキュリティキー/パスキー等で構成
セキュリティモデル 「ローカルに何も持たない」専用端末として設計されたフルマネージドシンクライアント 通常 Windows をカスタムしてシンクラライクにする。設計次第で Link デバイスに近づける
ユースケース 共有利用・オフィス設置・DaaS 専用端末(典型的なシンクライアント) 既存端末をシンクライアント化したい/AVD も含めて柔軟に使いたい環境
導入難易度 デバイスを買って Intune で管理するだけ で比較的低い Shell Launcher・AutoLogoff・キオスク構成など自前設計が必要で中〜高
保証 製品全体(ハード・OS)としての保証あり ハード部分は、メーカーごとの保証
ソフト面は、完全自己責任

参考3:WindowsAppKiosk の全画面キャプチャ

PC を起動して、セッション に接続するまでの 全画面キャプチャです。

  1. 通常は サインイン画面が出る場面は、以下の状態。認証不要で遷移します。
    image.png
     
  2. 次に表示されるのは、もう Windows App の画面です。
    image.png
     
  3. 通常の認証画面です。
    通常の PC アプリの Windows App の場合は、パスキーで認証させた場合は、次回利用時は 初めから パスキー の画面に遷移しますが、キオスク モードだと、毎回 この画面になってしまうようです。
    image.png
     
  4. 上記の画面で 「サインインオプション」を押すと、以下の パスキーの種類の選択画面に遷移します。
    この画面って、省略して「セキュリティキー」選択したことにして、SKIP できないものか・・・
    私が調べた限りでは、出来なさそうです(誰か、知っていたら、教えてください)
    image.png
     
  5. このタイミングで セキュリティキー を挿入します。
    PIN タイプだと、挿入後に PIN 入力 + Enter 後に、この画面になります。
    私の場合は、Yubikey Bio という指紋認証タイプなので、タッチ1発で認証されます。
    image.png
     
  6. 認証中は、この画面になっています。
    image.png
     
  7. 接続可能なリソースが表示されました。
    ここで接続先を選択すれば、リモート接続することができます。
    image.png
     
  8. 各接続先を、お気に入りに入れてみました。
    Windows 365 (Cloud PC)、AVD (Session Host)、AVD (Remote App) が並んでいます。
    image.png
     
  9. マルチウィンドウで表示してみた状態です。
    image.png
     
  10. Windows App の画面は、タイムアウトすると、以下の状態になっており、再度 認証しないと 接続はできません。接続中のセッションには、影響なし。
    image.png
     
  11. 上記の画面を終了させると、一旦 ブラックアウトしますが、再度 以下の 画面から再開されます。
    image.png
     
  12. PC の電源ボタンを押すと、以下の状態になるので、画面上を指示通りにスライドして、シャットダウン できました(Surface の場合)
    image.png

その他のパターン
CTRL + ALT + DEL を押すと、以下の画面になります。
右下のアイコン操作で、Wi-Fi の切替、アクセシビリティ、再起動、電源断 などが行えます。
image.png

Windwos App 起動時に、ネットワークに接続できていないと、以下のようになります。
「ネットワークに接続してサインインしてください」
image.png

このとき「デバイスの正常性を確認する」を押すと、以下のように ネットワークの状態を確認できます。
image.png

さらに、「ネットワーク設定を開く」を押すと、設定パネルを表示できます。
この画面から、色々と操作できてしまうことを良しとするか否かですね。
ロックダウンさせたい場合は、Intune で制御を加える必要がありそうです。
image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?