# 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. App Service Settings

このシナリオでは、次の種類の証明書を登録します ***IntuneUser*** および ***IntuneDevice*** 選択内容によって異なります。

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

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

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

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

この [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

これは、環境内の ***SCEPman-api*** アプリ登録で作成できる 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 %}
