🖥️

Azure Virtual DesktopのURIスキームを触ってみる

2023/03/29に公開

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 は、リモート デスクトップ クライアントを起動し、サブスクリプション プロセスを開始します。

使ってみる

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を確認

  • これらの情報をもとに最小に紹介した形式の接続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で編集を提案
Microsoft (有志)

Discussion