本サイトはサイト運営費捻出のため、アフィリエイト広告を利用しています。*詳細
Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

スポンサーリンク

Debianベースのオープンソースな仮想化プラットフォーム、Proxmox VE(Proxmox Virtual Environment)に最近はまっているしょぼんブログです。

しょぼんブログ的にはただPromox VEを使うだけだと少し味気ないので、Proxmox VEとAzureADを連携してSSOとジャストインタイムプロビジョニングができる環境を組み上げてみました。

AzureAD側の準備

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

AzureADの「アプリの登録」を開き、「新規登録」をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

「名前」に任意の名前(ここではProxmox VE)と入力し、「この組織ディレクトリのみに含まれるアカウント」にチェックを入れて「登録」をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

すると「Proxmox VE」アプリが生成されますので、「アプリケーション(クライアント)ID」の値をメモし、「エンドポイント」をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

OpenID ConnectメタデータドキュメントのURLをメモし、「証明書とシークレット」をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

「証明書とシークレット」画面に移りますので、「新しいクライアントシークレット」をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

「説明」には分かりやすい内容(例ではクライアントシークレットを発行した日付)を入力し、クライアントシークレットの有効期限を設定し、「追加」をクリックします。

有効期限については、組織のポリシーに沿った値を入力してください。(例では最大日数を指定しています)

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

クライアントシークレットが生成されますので、値の内容をメモしてから「認証」をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

「認証」ページが表示されるので、「プラットフォームを追加」をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

プラットフォームの種類を選ぶ画面が表示されるので、「Web」をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

リダイレクトURIにProxmox VEのログインURLを記載(例ではhttps://10.100.0.10:8006を入力)し、「構成」をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

リダイレクトURI欄に先ほど記載したURLが表示されていれば完了です。

もしクラスタ構成を組んでいるなどで、Proxmox VEホストが複数有る場合は「URIの追加」をクリックし、全台分追加します。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

最後にAzureADの「エンタープライズアプリケーション」メニューを開き、先ほど作成してアプリ(例ではProxmox VE)をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

Proxmox VEの詳細設定画面が表示されるので、「ユーザーとグループ」をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

「ユーザーとグループ」画面が表示されるので、「ユーザーまたはグループの追加」をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

Proxmox VEにSSOさせたいユーザもしくは、グループを選択して「割り当て」をクリックします。

これでAzureAD側の準備は完了です。

Proxmox VE側の準備

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

Proxmox VEにローカル管理者アカウントでログインし、「データセンター」→「アクセス権限」→「レルム」→「追加」→「OpenID Connectサーバ」の順にクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

OpenID Connectサーバの設定画面が表示されるので、下記の通り設定しから「追加」をクリックします。

項目
Issuer URLhttps://login.microsoftonline.com/XXXXXXXXXX/v2.0
※OpenID ConnectメタデータドキュメントのURLから/.well-known/openid-configurationを抜いたURL
レルムUPNの所属ドメイン名
クライアントIDアプリケーション(クライアント)ID
クライアントキークライアントシークレットの値
既定
自動作成ユーザ
ユーザー名の要求username
スコープ既定
Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

上図の通り「レルム」がUPNの所属ドメイン名で、「種別」がopenidとなっているものが追加されていればこれで完了です。

もしクラスタ構成を組んでいるなどで、Proxmox VEホストが複数有る場合は、全台同じようにOpenID Connectサーバを追加します。

動作確認と権限設定

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

Proxmox VEのログインURLにアクセスすると、上図の通りレルムがUPNの所属ドメイン名となっており、「ログイン(OpenIDリダイレクト)」というボタンに変わっているので、ボタンをクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

するとMicrosoftのログイン画面が表示されるので、AzureADアカウントでサインインします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

ログインに成功すると、上図の通りProxmox VEの管理画面が表示されます。

しかし、ジャストインタイムプロビジョニングで作成されたユーザアカウントには何も権限が付与されないため、何も操作ができません。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

管理者権限を持ったユーザでログインし、「データセンター」→「アクセス権限」→「追加」→「ユーザのアクセス権限」をクリックします。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

ユーザのアクセス権限を設定する画面が表示されるので、「ユーザ」をクリックしてジャストインタイムプロビジョニングで作成されたユーザアカウントを指定し、適切な権限を付与します。(例はPVEAdmin権限を/に対して付与しています)

権限付与後、Proxmox VE管理画面で操作が可能となります。

応用

AzureAD Premium P1以上のライセンスを保有していれば、条件付きアクセスポリシーを設定することでProxmox VEログインを高度に保護できます。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

例えば全てのユーザを対象として、Proxmox VEにアクセスするユーザを対象外ユーザとし、アクセスをブロックする条件付きアクセスポリシーを適用します。

Proxmox VEとAzureADを連携し、SSO+ジャストインタイムプロビジョニングを実現してみる

さらに全てのユーザを対象とし、条件にデバイスフィルターを適用した上で「device.isCompliant -eq True」ルールに合致するアクセスをポリシー適用対象外として、アクセスを全てブロックするという条件付きアクセスポリシーを適用します。

こうすることで、Intuneにデバイス登録されていてかつ、準拠ポリシーに準拠しているデバイスからのアクセスのみ許可する、といったような構成が組めます。

こんな感じで簡単にAzureAD SSOを実現しつつ、条件付きアクセスポリシーを利用して高度に保護できるようになります。

もしProxmox VEを利用されていて、組織内でAzureADを運用しているのであれば、本記事を参考にしてSSOの有効化を試してみてくださいね。

Source:r/Proxmox