SCEPmanClient

SCEPmanClient は SCEPman の REST API とやり取りするための PowerShell モジュールです。プラットフォームに依存せず Windows PowerShell v5 と互換性があるため、このモジュールを使用して REST API で対応可能なあらゆるユースケースの証明書を要求できます:

  • サーバー証明書の自動発行

  • 管理されていないデバイス向けのクライアント証明書

  • Linux デバイスへの証明書登録

インストール

SCEPmanClient モジュールは PowerShell Gallery で入手可能で、次のコマンドでインストールできます:

Install-Module -Name SCEPmanClient
circle-info

Microsoft のガイドに従って PowerShell をインストールしてください( Linuxarrow-up-right または MacOSarrow-up-right.

前提条件

モジュールが期待どおりに動作するためには、SCEPman のデプロイに小さな変更を加える必要があります:

1

ホームページ URL を追加

SCEPman の App Service URL を追加:次の場所に移動します ブランディングとプロパティ アプリ登録のセクション。ホームページ URL フィールドに SCEPman の App Service URL を追加します:

これは、モジュールがアクセス トークン取得に必要な App Registration のクライアント ID を自動的に検索できるようにするために必要です。

2

Azure PowerShell に App Registration とやり取りさせる許可

アプリ登録で、次に移動します API の公開 そしてクライアント ID の認可に使用できるカスタムスコープを作成します 1950a258-227b-4e31-a9cf-717495945fc2 (Microsoft Azure PowerShell)

カスタム API スコープの例情報

API スコープを作成した後、Azure PowerShell アプリケーションを承認できます:

承認済みの Microsoft Azure PowerShell アプリケーション
3

EST エンドポイントを有効化

権限

SCEPman には、異なる種類の証明書の登録を許可する異なるロールがあります。それらは次の場所で割り当てることができます SCEPman-api (デフォルト名)エンタープライズ アプリケーション:

CSR DB リクエスター

このロールはデフォルトでサービスプリンシパル(例えば App Registration)にのみ割り当て可能で、任意のサブジェクトと用途を持つ証明書の要求を許可します。

API 登録chevron-right

CSR セルフサービス

このロールはユーザーに割り当てられ、次の制限のもとで証明書の登録を許可します:

  • ClientAuth EKU のみ

  • ユーザー証明書は、サブジェクトまたは UPN Subject Alternative Name のいずれかにユーザーの UPN と一致する必要があります

  • デバイス証明書は、SCEPman が認証されたユーザーが所有するデバイスオブジェクトにマップできるサブジェクトまたは SAN を持つ必要があります

セルフサービス登録chevron-right

使用例

Azure 認証を使用

対話型認証

認証メカニズムを指定せずに新しい証明書を要求すると、デフォルトでユーザーは対話的に認証されます。-SubjectFromUserContext を使用すると、ログイン中のユーザーのコンテキストに基づいて証明書のサブジェクトと UPN SAN が自動的に入力されます: -SubjectFromUserContext パラメーターを使用すると、証明書のサブジェクトと UPN SAN がログインユーザーのコンテキストに基づいて自動的に設定されます:

デバイスログイン

デスクトップ環境のないシステムで新しい証明書を要求したい場合は、-DeviceCode パラメーターを使用して別のセッションで実際の認証を行うことができます: -DeviceCode パラメーターを使用して、別のセッションで実際の認証を行います:

サービス プリンシパル認証

完全に自動化されたシナリオでは、認証に App Registration を使用できます。この場合、認証コンテキストからサブジェクトを推測することはできません。

パラメーターのスプラット(splatting)を使うと実行が読みやすくなります:

証明書を使用して認証

一度認証済みコンテキストで証明書が発行されると、それを使用して再度コンテキストを提供せずに更新することができます。

Subject による証明書指定

キーストアとのやり取りは Windows のみで可能です

パラメーターを指定すると、モジュールは自動的に更新に適した証明書を次のキーストアで検索しようとします: Subject による証明書指定 パラメーターを指定した場合、モジュールは自動的に更新に適した証明書を次の場所で検索します: CurrentUser および LocalMachine キーストア内で。

入力された値は、利用可能なすべての証明書のサブジェクトと正規表現で照合されます。

特定の証明書を指定する

ファイルからの証明書指定

Linux システムでは、既存の証明書とその秘密鍵のパスを渡すことによって証明書の更新を行うことができます。

暗号化された秘密鍵を使用する場合はパスワードの入力が求められます。PlainTextPassword パラメーターを使って鍵のパスワードを直接渡すこともできます。 PlainTextPassword パラメーター。

Azure Web Application Firewall と SCEPman の併用

SSL プロファイルが有効な場合、WAF は TLS 接続を終端します。これにより、EST を使った証明書更新は mTLS による認証に依存しているため機能しなくなります。この場合、代わりに SCEP プロトコルに準拠した証明書更新を行うために UseSCEPRenewal パラメーターを使用できます。 UseSCEPRenewal パラメーターを使用して、SCEP プロトコルに準拠した証明書更新を実行します。

これは静的な SCEP エンドポイントに関する追加の SCEPman 設定を必要とすることにご注意ください:

  • AppConfig:StaticValidation:Enabled : true

  • AppConfig:StaticValidation:AllowRenewals : true

  • AppConfig:StaticValidation:ReenrollmentAllowedCertificateTypes: Static(更新対象の種類に依存)

最終更新

役に立ちましたか?