# 一般設定

SCEPmanが受信したSOAPリクエストを正常に処理できるようにするために、いくつかの手順を実行する必要があります:

{% stepper %}
{% step %}

### カスタムドメインとBaseUrl

SCEPmanとの認証を成功させるために、次のいずれかを使用したカスタムドメインが設定されていることを確認してください `Aレコード` がApp Serviceを指している必要があります。そうでない場合、クライアントはドメインコントローラーから有効なKerberosチケットを要求できず失敗します。

{% hint style="info" %}
以下の既知の問題について参照してください: [WS\_E\_ENDPOINT\_ACCESS\_DENIED](#ws_e_endpoint_access_denied) の詳細情報。
{% endhint %}

SCEPmanがカスタムドメインでアクセス可能になるように設定されていることを確認してください:

{% content-ref url="../../azureno/custom-domain" %}
[custom-domain](https://docs.scepman.com/ja/azureno/custom-domain)
{% endcontent-ref %}

同じ要件は、証明書テンプレートの一覧を取得する初期のポリシー要求後に証明書を登録する場合にも適用されます。認証を成功させるために、必ず [AppConfig:BaseUrl](https://docs.scepman.com/ja/scepmanno/application-settings/basics#appconfig-baseurl) 変数がカスタムドメインと一致しているか、または他のSCEPmanエンドポイントとは別のURLでADエンドポイントにアクセスしたい場合には専用の [AppConfig:ActiveDirectory:BaseUrl](https://docs.scepman.com/ja/scepmanno/application-settings/active-directory/general#appconfig-activedirectory-baseurl) 設定を使用してください。
{% endstep %}

{% step %}

### サービスプリンシパルの作成

次のコマンドを使用します `New-SCEPmanADPrincipal` SCEPman PowerShellモジュールのCmdletを使用してオンプレミスのActive Directoryドメインにサービスプリンシパルを作成します。このコマンドはまたこのアカウントからkeytabをエクスポートし、それをSCEPmanのCA証明書で暗号化します。

このコマンドは、ドメインコントローラーまたはRSAT-AD-Toolsがインストールされたドメイン参加済みサーバー上で実行できます。 [`RSAT-AD-Tools`](#user-content-fn-1)[^1] 機能。プリンシパルを作成したいOUには次の権限も必要です:

OU自体に対して:

* コンピューターオブジェクトの作成

子孫のコンピューターオブジェクトに対して:

* パスワードのリセット
* 書き込み `msDS-SupportedEncryptionTypes`
* 書き込み `servicePrincipalName`
* 書き込み `userPrincipalName`

以下の方法では、SCEPmanインスタンスへのアウトゴーイングHTTPSネットワークアクセスも必要となります。

{% hint style="info" %}
ドメインコントローラーにアクセスできるコンピューターがネットワークアクセスを持たない場合でも動作するCMDletのバリアントがありますが、その場合はSCEPmanのCA証明書をダウンロードしてCAをCMDletを実行するマシンにコピーするなど追加の準備が必要です。
{% endhint %}

{% code overflow="wrap" lineNumbers="true" expandable="true" %}

```powershell
Install-Module SCEPman -Force
New-SCEPmanADPrincipal -Name "SCEPmanAD" -AppServiceUrl "scepman.contoso.com" -OU "OU=Example,DC=contoso,DC=local"
```

{% endcode %}

このコマンドを実行すると次の処理が行われます:

1. 次のOUにコンピューターオブジェクトを作成します: `OU=Example,DC=contoso,DC=com` 組織単位。
2. ステップ5でkeytabを暗号化するためにSCEPmanのCA証明書をダウンロードします。
3. コンピューターオブジェクトにサービスプリンシパル名（SPN）を追加します。
4. コンピューターのパスワードに基づく暗号化キーを含むコンピューターアカウント用のkeytabを作成します。
5. keytabをSCEPmanのCA証明書で暗号化し、CAの秘密鍵を使うSCEPmanだけが再び復号できるようにします。
6. 暗号化されたkeytabを出力し、それをSCEPmanの設定へ転送できるようにします。

そのBase64エンコードされた出力を、環境変数に追加する必要があります: **AppConfig:ActiveDirectory:Keytab** あなたのSCEPman App Serviceの。
{% endstep %}

{% step %}

### KeytabをSCEPmanに追加

統合は、次の環境変数をSCEPman App Serviceに追加することで簡単に有効にできます。 **SCEPman App Service。** 利用ケースに応じて、利用可能な証明書テンプレートのうち1つ以上を有効にしてください:

*すべての証明書テンプレートを有効にした例:*

<table data-full-width="true"><thead><tr><th>設定</th><th>値</th></tr></thead><tbody><tr><td>AppConfig:ActiveDirectory:Keytab</td><td>ステップ1で作成したサービスプリンシパルのBase64エンコードされたkeytab</td></tr><tr><td>AppConfig:ActiveDirectory:Computer:Enabled</td><td>true</td></tr><tr><td>AppConfig:ActiveDirectory:User:Enabled</td><td>true</td></tr><tr><td>AppConfig:ActiveDirectory:DC:Enabled</td><td>true</td></tr></tbody></table>
{% endstep %}
{% endstepper %}

## 既知の問題

### WS\_E\_ENDPOINT\_ACCESS\_DENIED

```
エラー: WS_E_ENDPOINT_ACCESS_DENIED 
16進: 0x803d0005
10進: -2143485947
```

このエラーは、Azure App ServiceのデフォルトのURIを使用している場合にCEPサーバーの検証中に発生することが知られています。 *デフォルト* このエラーは、Kerberosプロトコルがアクセス対象サービスのAレコードのサービスプリンシパル名を要求するために発生します。例えばデフォルトのApp Serviceドメインの場合、 `contoso.azurewebsites.net` は単なるCNAMEであり、次のようなAレコードを指します:

```
waws-prod-ab1-234-c56d.westeurope.cloudapp.azure.com
```

このようなインフラホストのAレコードは将来的に一貫性が保証されないため、このホストのサービスプリンシパル名を追加することは **推奨されません**.

アプリサービスにカスタムドメインを追加し、CNAMEの代わりにDNSプロバイダー内でAレコードを使用してアプリサービスを指すようにしてください。

{% content-ref url="../../azureno/custom-domain" %}
[custom-domain](https://docs.scepman.com/ja/azureno/custom-domain)
{% endcontent-ref %}

### ERROR\_INVALID\_PARAMETER

```
エラー: ERROR_INVALID_PARAMETER
16進: 0x80070057
10進: -2147024809
```

このエラーは、URIが `http://`.で始まるURIを入力した場合にCEPサーバー登録中に発生します。 `必ず`

### ERROR\_ACCESS\_DENIED

```
エラー: ERROR_ACCESS_DENIED
16進: 0x80070005
10進: -2147024891
```

マシンコンテキストでCEPサーバーを登録する際、GPOを編集している実行ユーザー（gpmc.mscを起動したアカウント）は、コンピューター上のローカル管理者グループのメンバーである必要があります。 `gpmc.msc`) は、GPOを編集している間、そのコンピューターのローカル管理者グループのメンバーである必要があります。

この場合、必ず次を管理者権限で開始してください: `gpmc.msc` 管理者権限で開始してください。

[^1]: {% code fullWidth="true" %}

    ```powershell
    Install-WindowsFeature -Name RSAT-AD-Tools
    ```

    {% endcode %}
