# Intune 管理の Linux クライアント

{% hint style="info" %}
SCEPman バージョン 2.9 以上に適用されます
{% endhint %}

{% hint style="warning" %}
SCEPman Enterprise Edition のみ
{% endhint %}

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

この場合、Intune は SCEPman REST API を活用するスクリプトをプッシュし、そのスクリプトが新しい証明書を登録するか、既に存在する証明書を更新します。

当社の開発者 Christoph は、この機能といくつかの背景情報を Workplace Ninja Usergroup Germany で紹介しました:

{% embed url="<https://www.youtube.com/watch?v=dQcVl1vS3lg>" %}

## 前提条件

### 1. セルフサービス登録

### 2. アプリ サービス設定

このシナリオは、タイプの証明書を登録します ***IntuneUser*** および ***IntuneDevice*** 選択に応じて。

### **3. クライアントの前提条件**

#### [**Intune 登録**](https://learn.microsoft.com/en-us/mem/intune/user-help/enroll-device-linux)

リンクされたドキュメントに従って、Linux クライアントを Intune に登録してください。&#x20;

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

NAC ソリューションが Intune デバイス ID を基にデバイスを識別するために使用されます。値は次のようにする必要があります： [enrollrenewcertificate.sh](https://github.com/scepman/csr-request/blob/main/enroll-certificate/enrollrenewcertificate.sh) スクリプトは最初に証明書を取得するため、および定期的なスケジュールでチェックしてしきい値に達した場合に更新を試みるために使用されます。

スクリプトは通常ターミナルでパラメータを渡して操作しますが、Intune 経由で展開するために一部を修正する必要があります。

渡されたターミナル引数を変数に代入しているスクリプトの部分を見つけて、必要に応じて調整してください:

設定例:

```bash
APPSERVICE_URL="https://scepman.contoso.net/"
API_SCOPE="api://b7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enroll"
CERT_DIR=~/certs
CERT_NAME="myCertificate"
KEY_NAME="myKey"
RENEWAL_THRESHOLD_DAYS=30

# さらに以下の変数を追加
CERT_TYPE="user"
CERT_COMMAND="auto"
```

#### APPSERVICE\_URL

SCEPman アプリ サービスの URL。

*例: "<https://scepman.contoso.net/>"*

#### API\_SCOPE

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

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

*例: "api://*&#x62;7d17d51-8b6d-45eb-b42b-3dae638cd5bc/Cert.Enrol&#x6C;*"*

<figure><img src="https://114237723-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FKWdXwi8JnKGy27tU384e%2Fimage.png?alt=media&#x26;token=5173dc4b-8981-40e9-8875-e932078c6667" alt=""><figcaption></figcaption></figure>

#### CERT\_DIR

証明書が作成されるか、更新が試行されるディレクトリ。秘密鍵とルート証明書もここに配置されます。

*例: \~/certs/*

#### CERT\_NAME

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

*例: "myCertificate"*

#### KEY\_NAME

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

*例: "myKey"*

#### RENEWAL\_THRESHOLD\_DAYS

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

*例: 30*

#### CERT\_TYPE

登録される証明書の種類。

*"user" または "device" のいずれかになります。*

#### CERT\_COMMAND

これは、登録および更新に関するスクリプトの動作を定義します:

**"auto"** 最初に証明書を作成するか、既に存在していて有効期限が近づいている場合は証明書を更新します。

**"renewal"** 有効期限が近づいている場合に証明書を更新しますが、最初に証明書を作成することはありません。

**"initial"** 証明書を登録するだけで、既存の証明書を更新しません。

{% hint style="warning" %}
デバイス証明書を登録または更新する場合、DeviceId は から取得されます *\~/.config/intune/registration.toml* および認証されたユーザーは、構成されたオブジェクトの所有者と一致する必要があります。 [DeviceDirectory](https://docs.scepman.com/advanced-configuration/application-settings/intune-validation#appconfig-intunevalidation-devicedirectory).
{% endhint %}

### 考慮事項

* このスクリプトは生成された鍵を暗号化しません（パスフレーズ入力が必要なため、自動更新を可能にするために暗号化は省略されています）。
* Certificate Master からパスフレーズ保護された証明書を更新する場合、それらを更新するにはこのパスフレーズを入力する必要があります。

## スクリプトの展開

Intune を使用して、修正したスクリプトをスケジュールで展開し、指定したパラメータで最初に証明書を登録し、定期的に更新が必要かどうかをチェックできます。

新しい Linux スクリプト展開を追加し、次を設定していることを確認してください。 ***実行コンテキスト*** へ ***ユーザー*** および前のセクションで作成した修正済みの bash スクリプトの内容をアップロードするか貼り付けてください。

を調整してください。 ***実行頻度*** 更新しきい値に従って調整してください。

{% hint style="info" %}
最初の実行時に、ユーザーは Azure CLI アプリケーションへのログインを求められます（認証が必要なため）。&#x20;
{% endhint %}
