マネージドID
この機能にはバージョンが必要です 2.0 以上。
SCEPman は、ユーザーおよびデバイスの証明書と OCSP 検証を提供するために、あなたの Entra ディレクトリと Intune エンドポイントと連携する必要があります。デプロイ後、SCEPman はまだこれらのサービスにアクセスするために必要な権限を持っていません。本記事で説明する PowerShell モジュールは、SCEPman の App Service のマネージド ID に必要な権限を追加し、インストールを完了します。
さらに、PowerShell モジュールは SCEPman 2.0 で導入された SCEPman Certificate Master コンポーネントに必要なバックグラウンド配線を追加します。SCEPman 1.x から 2.x にアップグレードした場合、PowerShell モジュールは SCEPman Certificate Master コンポーネント用に 2 つの新しい Azure リソースを追加します。
SCEPman インストール用 PowerShell モジュールの入手と実行
新規に SCEPman 2.x をインストールした場合でも、SCEPman 1.x から 2.x にアップグレードした直後でも、また場合によってはデプロイ後のアーキテクチャ変更後でも、インストール手順は同じです。SCEPman PowerShell モジュールをダウンロードして実行すると、やるべきことを検出してインストールを完了します。SCEPman モジュールは何度でも実行できます。既に存在するものは追加されず、欠けているものだけが追加されます。
前提条件
A グローバル管理者 SCEPman をインストールしたいテナントのアカウント(または 特権ロール管理者 のような別の AAD ロールと Azure サブスクリプションへの書き込み権限)。オプションとして、後でグローバル管理者権限が必要なコマンドを手動で実行する形で、 アプリケーション管理者 ロールのみを持つアカウントを使用することもできます。
Azure CLI (別名 az)がインストールされていること。Azure CLI は Azure Cloud Shellにあらかじめインストールされており、モジュールを実行する推奨方法です。
SCEPman インストール CMDlet の実行
有効なホームページ
前提条件が満たされたら、PowerShell Gallery から SCEPman インストールモジュールをインストールし、CMDlet を実行して SCEPman と Certificate Master のインストールを完了できます。
まず、SCEPman の App Service に移動して Default domain をクリックします(下のスクリーンショット参照)。これにより SCEPman のホームページに移動します。

SCEPman インスタンスのホームページに表示されている PowerShell コマンドを、PowerShell または Azure Cloud Shell で実行します(下のスクリーンショット参照)。このコマンドには SCEPman インスタンスを識別するパラメーターが含まれており、理想的にはユーザーの操作をほとんど必要とせずに実行できます。

CMDlet を実行した後、SCEPman のホームページで「Service not available」や「502 Server Error」が表示されることがあります。その場合は 2~3 分待ってからページを再読み込みしてください。
ホームページが無効化されている場合
SCEPman のホームページを無効にしているか、CMDlet を再度実行する必要がある場合は、次の手順を行ってください:
以下のコードを PowerShell または Azure Cloud Shell に貼り付けます:
以下のプロンプトに入力します:
SCEPman が動作する Azure サブスクリプション(アクセス可能なものが複数ある場合)
SCEPman App Service の名前(SCEPman ホームページのコードを使用した場合は不要)
(SCEPman のアップグレード時のみ)さらに 2 つの確認が必要です:
新しい SCEPman Certificate Master App Service の名前(提案を Enter で承認するか、リソースの新しい名前を入力できます)
新しい Storage Account リソースの名前(同様に、提案を Enter で承認するか、新しい名前を入力できます)
グローバル管理者ロールなしで SCEPman インストール CMDlet を実行する
Complete-SCEPmanInstallation の -SkipAppRoleAssignments フラグを使用して、グローバル管理者権限なしで CMDlet を実行します。これにより SCEPman と Certificate Master App Service のマネージド ID に必要なアプリロールの割り当てがスキップされます。後でグローバル管理者としてアプリロールを手動で割り当てることができます。CMDlet は必要なコマンドをコンソールに出力します。
デプロイメントスロットを使用する際の考慮事項
SCEPman モジュールは、特定のデプロイメントスロットだけを使用するようにパラメーター -DeploymentSlotName を指定しない限り、すべてのデプロイメントスロットの構成を更新します(これにはメインのスロットは指定できません。技術的にメインはデプロイメントスロットではないため)。構成の更新は SCEPman の設定を変更し、 〜を使用するように変更します Enterprise App 認証ではなくマネージド ID 認証を使用する.
SCEPman 1.x はサポートしていません マネージド ID 認証をサポートしていないため、CMDlet はまだ 1.x バージョンを実行しているデプロイメントスロットを使用不能にします。したがって、複数のデプロイメントスロットがあり、それらすべてを一度にアップグレードしたくない場合は、本番スロットを最後にアップデートするべきです -- 本番スロットのアップグレードは他のすべてのデプロイメントスロットにも影響を及ぼします.
他のデプロイメントスロットに対しては、個別のターゲットとして -DeploymentSlotName パラメーターを使用してください。これらはデプロイメントスロットの SCEPman ホームページに表示される PowerShell コマンドと同じなので、そのコマンドをコピーすればよいです。
すべてのデプロイメントスロットが 2.x を実行するようになったら、改めて Complete-SCEPmanInstallation CMDlet を一度実行すると、すべてがマネージド ID を使用するようになります。
誤って SCEPman 1.x をまだ実行しているデプロイメントスロットをマネージド ID 認証に更新してしまった場合は、 ダウングレード ガイド を参照して再度動作するようにしてください。
1 つのテナントに SCEPman を複数回インストールする際の考慮事項
Complete-SCEPmanInstallation CMDlet は 2 つのアプリ登録を作成します: SCEPman-api および SCEPman-CertMaster. 「CMDlet が SCEPman Certificate Master をどのように構成するか」セクションは、これらのアプリ登録が何をするかを説明します。CMDlet はこれらの名前が一意であることを前提としているため、1 つのテナントに複数の SCEPman インストールがある場合、デフォルトではこれらのアプリ登録を共有します。つまり、ユーザーはすべての Certificate Master に対して同じロールを持ち、技術的には各 Certificate Master インスタンスが任意の SCEPman に証明書リクエストを送信できるようになります(ただし、SCEPman Certificate Master をそのように構成しない限り実際には発生しません)。そのような動作を望まない場合、たとえば SCEPman のインストールが組織の異なる部門に属している場合や、一方がプレプロダクション環境である場合、または SCEPman ルート CA と SCEPman 発行 CA を持つ多層 PKI を構築したい場合は、SCEPman インスタンスに別のアプリ登録を使用させる必要があります。
この目的のために、Complete-SCEPmanInstallation CMDlet には次の 2 つのパラメーターがあります:
-AzureADAppNameForSCEPman -AzureADAppNameForCertMaster および 。これらのパラメーターにより、アプリ登録の名前を別々に定義できます。たとえば、ルート CA 用に次のように CMDlet を呼び出すことができます:Complete-SCEPmanInstallation -SCEPmanAppServiceName app-scepmanroot -SearchAllSubscriptions -AzureAdAppNameForSCEPman SCEPman-api-root -AzureAdAppNameForCertMaster -SCEPman-CertMaster-root 6>&1
そして、サブ CA 用には次のように別回で呼び出します:
Complete-SCEPmanInstallation -SCEPmanAppServiceName app-scepmansub -SearchAllSubscriptions -AzureAdAppNameForSCEPman SCEPman-api-sub -AzureAdAppNameForCertMaster -SCEPman-CertMaster-sub 6>&1
SCEPman PowerShell モジュールの背景詳細
このセクションは PowerShell モジュールの内部動作を説明します。スクリプトの変更が必要な特別な構成がある場合、特別な権限を付与する必要がある場合、SCEPman インストールのトラブルシューティングを行っている場合、または自分のプロジェクト用にインストールスクリプトを書きたい場合に役立ちます。PowerShell モジュールはオープンソースソフトウェアであることに注意してください。ソースコードはその
GitHub リポジトリ で確認できます。プルリクエストは歓迎します!
コマンドレットは、情報ストリームをリダイレクトして画面に出力する 6>&1を付けて実行することを推奨します。これによりリダイレクションを省略した場合よりもプログラムの状態に関する情報が多く得られます。もし -Verboseを追加すると、スクリプトが行う処理に関するさらに多くの情報が表示されます。
CMDlet が SCEPman をどのように構成するか
PowerShell CMDlet は SCEPman App Service を検索します。App Service はシステム割り当てのマネージド ID を使用しており、通常のインストールでは既に SCEPman の Azure Key Vault へのアクセス権を持っています。CMDlet は Microsoft Graph へのアクセス権を追加して AAD と Intune でユーザーおよびデバイスを検索し、着信 OCSP リクエストを処理し、SCEP リクエストの検証のために Intune 自体へのアクセス権を追加します。
CMDlet が SCEPman 1.x からのアップデートをどのように処理するか
SCEPman に権限を付与することに加え、モジュールはアップグレード時に 2 つの新しい Azure リソースを追加します:
SCEPman Certificate Master App Service
手動で作成された証明書用に SCEPman と SCEPman Certificate Master が共有する Storage Account
Community Edition(Certificate Master コンポーネントを使用しない場合)であっても、これら 2 つの新しいリソースは追加されます。これは、必要に応じて後で Enterprise Edition に切り替えやすくするためであり、追加コストは発生しません — Storage Account は空のままで、Microsoft はストレージ使用量に応じて請求し、Certificate Master App Service は SCEPman と App Service プランを共有するため追加コストは発生しません。
SCEPman 1.x は Microsoft Graph と Intune に対して認証するためにアプリ登録を使用していましたが、SCEPman 2.x はマネージド ID を使用できます。CMDlet は次の設定を変更してマネージド ID に切り替えます:
AppConfig:AuthConfig:ApplicationId は権限を持たない新しく作成されたアプリ登録に設定されます。これは に対して認証するために使用されますが、SCEPman が他の場所に対して認証するためのものではありません。古い値はバックアップとして保存され、 が削除されると古い値はバックアップとして保存されます。
Backup:AppConfig:AuthConfig:ApplicationId.AppConfig:AuthConfig:ApplicationKey は削除され、古い値はバックアップとして保存されます。
Backup:AppConfig:AuthConfig:ApplicationKeyこれはもはや必要ありません。なぜなら SCEPman はアプリケーションとして認証しなくなるためです。AppConfig:AuthConfig:ManagedIdentityEnabledOnUnixTime には CMDlet が実行された時刻が含まれます。SCEPman は CMDlet 実行後の短い遅延の後にのみマネージド ID を使用してトークンを取得します。これは、トークン内のロールが CMDlet によって追加された正しい権限を反映するのがその時点だからです。
CMDlet が SCEPman Certificate Master をどのように構成するか
SCEPman App Service はホームページへの匿名アクセスを許可しています。ホームページは機密性の低い読み取り専用情報のみを表示するためです。それに対して SCEPman Certificate Master コンポーネントはユーザーに証明書を発行することを許可するため、認証されたアクセスのみを許可し、かつ適切な権限を持っている場合にのみアクセスを許可します。これには、誰がログインしているかを確認できる委任権限(Delegated Permissions)を持ち、適切なログイン URL の構成がされた Azure アプリ登録が必要です。モジュールはこのアプリ登録をあなたの Azure テナントに SCEPman-CertMaster として登録します。
さらに、SCEPman Certificate Master App Service は証明書を発行するためにコア SCEPman App Service に CSR(Certificate Signing Request)を送信する権限が必要です。この認証メカニズムは別のアプリ登録に基づいています: SCEPman-api。SCEPman は CSR 送信権限を管理するために SCEPman-api を使用します。スクリプトは SCEPman-api を登録し、SCEPman Certificate Master のマネージド ID に送信権限を追加します。
SCEPman を 1.x から 2.x にアップグレードし、PS スクリプトを正常に実行した場合、SCEPman 1.x で使用されていたアプリ登録を削除できます
SCEPman V2.x では 2 つの新しいアプリ登録「SCEPman-api」と「SCEPman-CertMaster」を使用します
最終更新
役に立ちましたか?