
1. 前回までのおさらい
皆様こんにちは!ストレージ担当の島田です。
前編では、PowerStore と Microsoft Entra ID を連携したときの全体像と、認証は Entra ID、権限付与は PowerStore という役割分担を整理しました。
※本記事は中編です。前編が未読の方は以下のリンクから是非!
今回の中編では、その構成を実際に形にするために、Microsoft Entra ID 側で必要となる準備を進めていきます。検証用テナントやユーザー、アプリ登録、MFA の準備までを順に確認し、後編で PowerStore 側の設定へ進める土台を整えます。
2. アジェンダ
中編では、Microsoft Entra ID 側で必要となる準備を進めながら、後編で PowerStore 側の設定に進むための前提を整えていきます。
3. Entra 側の設定
今回は最短ルートでの検証を前提に、Entra 側では以下の設定を行いました。
実施したこと
- 検証用テナントの作成
- 検証用ユーザーの作成
- PowerStore 用アプリ登録
- クライアントシークレットの作成
upnclaim の追加- MFA の準備
※本記事の手順は検証環境で確認した内容です。実環境へ適用する際は、要件や運用方針に応じて十分に検討したうえで実施してください。
3-1. 検証用テナントの作成
まず、検証用の Microsoft Entra ID テナントを作成しました。今回は既存のオンプレ AD 連携は使わず、Entra ID 単体で検証できる構成にしています。

3-2. 検証用ユーザーの作成
次に、PowerStore へ SSO ログインするための検証用ユーザーを作成しました。
psadmin01@powerstorelab.onmicrosoft.com
このユーザーを、後ほど PowerStore 側で Administrator ロールにマッピングします。

3-3. PowerStore 用アプリ登録
Entra 側では、PowerStore を OIDC クライアントとして扱うため、アプリ登録を作成しました。
- アプリ名:
PowerStore-OIDC-Lab - サポートされているアカウントの種類:
- この組織ディレクトリのみに含まれるアカウント
このアプリ登録により、PowerStore と Entra ID の間で OIDC ベースの認証連携を行えるようにしています。
また、アプリケーション ID とディレクトリ ID は後続の設定で使用するため、この時点で控えておきます。

3-4. クライアントシークレットの作成
続いて、PowerStore が Entra ID と通信するためのクライアントシークレットを作成しました。
ここで取得したクライアントシークレット値は、後ほど PowerStore 側の SSO 設定で使用します。
※クライアントシークレット値は作成時にしか表示されないため、この時点で必ず控えておきます。

3-5. OIDC Metadata URL を控える
Entra 側で発行される OIDC Metadata URL は、後ほど PowerStore 側の設定で使用するため、この時点で控えておきます。

3-6. upn claim の追加
今回の最短ルートでは、PowerStore 側でユーザーを識別しやすくするため、ID トークンに upn を含める設定を行いました。
この理由は、PowerStore 側で以下のように扱うためです。
- Entra 側の
upn - PowerStore 側の
User_Name
つまり、Entra から返された upn を PowerStore 側で User_Name に対応付ける前提で進めました。

3-7. MFA の準備
今回の検証では、Entra 側の MFA として Security Defaults を有効化しました。

その後、検証ユーザーで Microsoft にサインインし、Microsoft Authenticator の登録を行いました。MFA 登録を求められたタイミングで Authenticator を選択し、画面の案内に従ってアカウントを追加します。最後に通知承認テストまで完了させることで、Authenticator を使った MFA が利用できる状態になります。

Entra 側で準備した内容の要点
以上の準備により、PowerStore 側で SSO 設定を進めるための前提が整いました。
4. PowerStore 側の設定(前半)
Entra 側の準備ができた後、PowerStore 側では SSO 連携のための設定を行いました。今回の検証では、以下の流れで設定しています。
また本記事では、PowerStore 側の設定のうち、SSO ID プロバイダー設定の作成、Redirect URI / Logout URL の確認、IdP CA 証明書チェーンの取り込みまでを扱います。
実施したこと
- SSO ID プロバイダー設定の作成
- Redirect URI / Logout URL の確認
- IdP CA 証明書チェーンの取り込み
4-1. SSO ID プロバイダー設定の作成
まず PowerStore Manager にローカル管理者でログインし、SSO ID プロバイダーの設定を開始しました。

設定画面では、以下のような情報を入力します。
- IdP 表示名
例: EntraID-Lab
ここでは、PowerStore が連携先として認識しやすい任意の名前を設定しています。

4-2. Redirect URI / Logout URL の確認
次に、PowerStore 側で管理ホストを選択し、Entra 側に登録するための URI を確認しました。ここで PowerStore が自動生成するのが以下の情報です。
- Redirect URI
- Logout URL

これらは Entra 側のアプリ登録で使用する重要な値です。特に Redirect URI は厳密一致が必要なため、PowerStore 画面からコピーした値をそのまま Entra 側へ登録しています。

4-3. IdP CA 証明書チェーンの取り込み
続いて、Entra 側との TLS 信頼関係を構成するために、CA 証明書チェーンを PowerStore に取り込みました。
今回取り込んだのは、Microsoft Entra の OIDC エンドポイント接続先を PowerStore が信頼するための CA 証明書チェーンをまとめた PEM ファイルです。
entra-ca.pem

この工程は、Azure Portal から専用ファイルを取得するものではなく、Entra 側接続先の CA 証明書チェーンを PowerStore が信頼できるように登録するための設定です。
今回は、Entra 接続先の証明書チェーンを取得して PEM 化するために、以下の PowerShell スクリプトを使用しました。
$HostName = "login.microsoftonline.com"
$Port = 443
$OutFile = "$env:USERPROFILE\entra-ca.pem"
# TLS接続してサーバー証明書を取得
$tcp = New-Object System.Net.Sockets.TcpClient($HostName, $Port)
$ssl = New-Object System.Net.Security.SslStream(
$tcp.GetStream(),
$false,
({ $true })
)
$ssl.AuthenticateAsClient($HostName)
$leaf = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($ssl.RemoteCertificate)
# 証明書チェーンを構築
$chain = New-Object System.Security.Cryptography.X509Certificates.X509Chain
$chain.ChainPolicy.RevocationMode = [System.Security.Cryptography.X509Certificates.X509RevocationMode]::NoCheck
$null = $chain.Build($leaf)
# leaf は除外して、中間CA + ルートCA だけを PEM 化
$pemList = New-Object System.Collections.Generic.List[string]
for ($i = 1; $i -lt $chain.ChainElements.Count; $i++) {
$cert = $chain.ChainElements[$i].Certificate
$base64 = [System.Convert]::ToBase64String(
$cert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Cert),
'InsertLineBreaks'
)
$pem = @"
-----BEGIN CERTIFICATE-----
$base64
-----END CERTIFICATE-----
"@
$pemList.Add($pem)
}
# 1ファイルに保存
$pemList -join "`r`n`r`n" | Set-Content -Path $OutFile -Encoding ascii
# 結果表示
Write-Host "作成完了: $OutFile" -ForegroundColor Green
Write-Host "含まれた証明書:" -ForegroundColor Cyan
for ($i = 1; $i -lt $chain.ChainElements.Count; $i++) {
$cert = $chain.ChainElements[$i].Certificate
Write-Host ("[{0}] Subject={1}" -f $i, $cert.Subject)
}
※このスクリプトは、PowerStore に登録する証明書を取り出すための検証用コードです。通信相手の正当性を厳密に確認する作りではないため、安全な通信の見本としてではなく、証明書取得の用途に限って利用してください。
5. まとめ
今回はここまで!
中編では、Microsoft Entra ID 側の準備に加えて、PowerStore 側でも SSO 連携に必要な土台づくりまでを進めました。
次回の後編では、PowerStore 側で OIDC 接続情報や Claim Mapping / Role Mapping を設定し、Test Configuration と実際の SSO ログイン確認までを行っていきます。
最後まで、読んでいただきありがとうございました!
Networld Techのブログ一覧はこちら!
https://www.networld.co.jp/product/dell_technologies/tech-blog