管理外の Linux クライアント

circle-info

SCEPman バージョン 2.9 以上に適用されます

circle-exclamation

この方法は、管理されていない、または Intune 以外の MDM によって管理されているユーザーおよびデバイスの証明書を登録するために使用できます。

前提条件

1. セルフサービス登録

証明書を登録するには、ユーザーが自分の資格を確認するために認証されている必要があります。設定方法の手順については、このガイドに従ってください

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

2. アプリ サービス設定

構成

証明書の更新に必要です

SCEPman App Service を mTLS クライアント証明書を受け入れるように構成してください。設定セクションの構成ブレードで、受信クライアント証明書のクライアント証明書モードが次に設定されていることを確認してください オプション.

クライアント証明書モードを Require または Allow に設定しないでください。そうすると SCEP エンドポイントでの SCEPman の通常動作が破損します!

環境変数

このシナリオを利用するには、SCEPman アプリ サービスに次の環境変数を設定する必要があります。

証明書の登録と更新に必要です

この変数を次に設定してください true 証明書署名要求(CSR)の検証を有効にするには。

証明書の更新に必要です

この変数を次に設定してください true 証明書の更新を有効にするには。

証明書の更新に必要です

この変数を、更新を許可したい証明書タイプのカンマ区切りリストに設定してください。利用可能な証明書タイプの一覧はリンクされた変数のドキュメントを参照してください。

例: Static,IntuneUser,IntuneDevice

このシナリオは、タイプの証明書を登録します IntuneUser。

Powershell モジュール SCEPmanClient

初期リクエスト

Linux デバイスで証明書を要求するために SCEPmanClient PowerShell モジュールを使用できます:

New-SCEPmanCertificate -Url 'scepman.contoso.com' -SubjectFromUserContext -SaveToFolder '~/certs/'

その後、ユーザーはブラウザーセッションで対話的にサインインする必要があり、ログインしているアカウントの証明書が作成されます。

証明書の更新

既存の証明書を更新するためにも PowerShell モジュールを使用できます。これにより、認証にサービス プリンシパルを使用する必要がなくなります:

登録および更新スクリプト

PowerShell モジュールが利用できない場合は、 enrollrenewcertificate.sharrow-up-right スクリプトを使用して、最初に証明書を取得したり、それを検証して、有効期限が近い場合に更新を試みることができます。

クライアント前提条件

Enrollment REST API を使用するためには、実行クライアント/ホストに次の前提条件が存在している必要があります。

Azure CLIarrow-up-right (バージョン 2.61 以上)

Azure CLI は、登録ユーザーを認証してその適格性を確認し、アクセストークンを取得するために使用されます。

cURL

作成した CSR を SCEPman Enrollment API エンドポイントに送信し、証明書を受け取るために使用されます。

OpenSSL

OpenSSL は、秘密鍵を生成し、証明書を登録または更新するための CSR を作成するために使用されます。

例:

1. コマンド

スクリプトの動作を定義します

次のいずれかにできます:

-u 初回登録か更新かを自動検出するユーザー証明書用

-d 初回登録か更新かを自動検出するデバイス証明書用

-r 更新用

-w ユーザーの初回登録用

-x デバイスの初回登録用

circle-exclamation

2. アプリ サービス URL

SCEPman アプリ サービスの URL。

例: "https://scepman.contoso.net/"

3. API_SCOPE

これは、環境のアプリ登録で作成できる API スコープです。 SCEPman-api アプリ登録で作成できます。

ユーザーには希望する同意ダイアログが表示され、以降セルフサービス機能を使用できるようになります。

例: "api://b7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enroll"

4. 証明書ディレクトリ

証明書が作成されるか、更新のために読み取られようとするディレクトリ。

例: ~/certs/

5. 証明書ファイル名

作成されるか、更新のために読み取られる証明書のファイル名(拡張子なし)。

例: "myCertificate"

6. 秘密鍵ファイル名

作成されるか、更新のために読み取られる秘密鍵のファイル名。

例: "myKey"

7. 更新しきい値

スクリプトが更新プロセスを開始するために、証明書の有効期限が残っている必要がある日数。

例: 30

考慮事項

  • このスクリプトは生成された鍵を暗号化しません(パスフレーズ入力が必要なため、自動更新を可能にするために暗号化は省略されています)。

  • Certificate Master からパスフレーズ保護された証明書を更新する場合、それらを更新するにはこのパスフレーズを入力する必要があります。

自動更新の設定

上記の bash スクリプトが実行され、すでに証明書が登録されていることを検出した場合、mTLS を使用して証明書を更新します(有効期限が近い場合)。スクリプトを定期的に実行すれば、証明書の有効期限が近づいたときに更新されることが保証されます。これを実現するには cronjob を設定できます。以下のコマンドはその例です。システムが起動している場合にコマンドを毎日実行する cronjob と、再起動時にコマンドを実行する cronjob を設定します。

Cron によって実行されるコマンドは必ずしもスクリプト/証明書があるディレクトリから実行されるとは限らないため、スクリプト/証明書への絶対パスを指定することが重要です。

最終更新

役に立ちましたか?