🖥️
Azure Virtual DesktopのURIスキームを触ってみる
URIスキームとは?
概要
- Uniform Resource Identifier
- 特定のアプリケーショングループへのアクセスをURI経由で直接行えてしまうという機能
- 従来であればRDPクライアントやWebクライアントにアクセスし、一覧から利用したいアプリケーショングループを選択して、利用するという流れだった
- これが、URIで直接特定のアプリケーショングループを指定できる形になるため、お気に入り登録しておけば即座にアクセス可能となる
使用可能なURIスキーム
ms-avd
-
ms-avd:connect?xxxxx...
という形で利用する -
ms-avd:connect は、指定された Azure Virtual Desktop リソースを検索し、RDP セッションを開始し、指定されたユーザーをそのリソースに直接接続します。
- 以下のパラメータが必要
- workspaceID:AVDのワークスペースのオブジェクトID
- resourceid:アプリケーショングループorセッションホストのオブジェクトID
- username:AVDを利用するためのユーザプリンシパルネーム(UPN)。
- 例 :
example@test.com
- 例 :
- version:利用するURIスキームのバージョン。現段階では0を指定
URIのイメージとしては下記
ms-avd:connect?workspaceId=1638e073-63b2-46d8-bd84-ea02ea905467&resourceid=c2f5facc-196f-46af-991e-a90f3252c185&username=user@contoso.com&version=0
ms-rd
-
ms-rd:subscribe
という形で利用する -
ms-rd:subscribe は、リモート デスクトップ クライアントを起動し、サブスクリプション プロセスを開始します。
使ってみる
- Remote Desktopクライアントがない場合は下記からインストール
RDPクライアントのアップデート
RDPクライアントにて接続先ワークスペースの登録
- URLで登録
-
https://rdweb.wvd.microsoft.com
を入力 - Azure AD認証が生じるため対応
-
必要なパラメータの取得
-
ドキュメントではAzure CLI/Azure Powershellのスクリプトで取得するような案内がされているが、ここではAzure Portalを使った方法を紹介しようと思ったが、デスクトップアプリケーションのオブジェクトIDの取得はコマンドラインからしかできない
(Get-AzWvdDesktop -Name SessionDesktop -ApplicationGroupName multisession-hp-DAG -ResourceGroupName 20230323-avd).ObjectId
-
Workspace IDの取得はAzure Portalから可能
- JSONビューを開いてObjectIDを確認
- JSONビューを開いてObjectIDを確認
-
これらの情報をもとに最小に紹介した形式の接続URIを構成
例(再掲)
ms-avd:connect?workspaceId=1638e073-63b2-46d8-bd84-ea02ea905467&resourceid=c2f5facc-196f-46af-991e-a90f3252c185&username=user@contoso.com&version=0
接続
-
このようなポップアップが出現するため「開く」を選択
-
すると、RDPクライアントからアクセスした場合と同じ画面が開く
-
Azure AD認証がされていない場合は認証のフローが入る
まとめ
- URIスキーマでブラウザに登録しておくことで1ボタンで特定のデスクトップアプリケーションにアクセスできるようになる
- あくまでも、インストールされているRDPクライアントを呼び出しているだけ
GitHubで編集を提案
Discussion