# Runbook 環境のシミュレーション

## 概要

### アプリケーション登録を作成する

Azure のアプリケーション登録を作成して、Microsoft Entra へのアプリケーション形式のサインインをシミュレートします。&#x20;

<figure><img src="https://3438325150-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FAELajVV85Wm6a1Mwtmew%2Fimage.png?alt=media&#x26;token=15d94203-906f-4d0f-8c7b-77e8e032201b" alt=""><figcaption><p>アプリ登録を作成する</p></figcaption></figure>

### 権限を付与する

マネージド ID が持つのと同じ権限を付与します。同じ [AppRoleGranter Toolkit](https://github.com/hcoberdalhoff/approle-and-directoryrole-granter) をこの目的で使用します。

置き換え `{AppRegObjectId}` を、アプリケーション登録のオブジェクト ID に置き換えます。

```powershell
git clone https://github.com/hcoberdalhoff/approle-and-directoryrole-granter.git
cd "approle-and-directoryrole-granter\RealmJoinVnext"
. .\AllInOne.ps1 -appRegObjectId "{AppRegObjectId}"
```

### Dev 証明書を作成してアップロードする

参照 [こちら ](https://github.com/realmjoin/RealmJoin.RunbookHelper/blob/main/DevCertificates.ps1)RunbookHelper 用の Dev 証明書の作成例として。 `{Variables}` に応じて置き換えてください。&#x20;

その `{AppID}` は、アプリケーション登録の App / クライアント ID を指します。

特定のサブスクリプション ID がない場合は、テナント内の既定のサブスクリプションを使用してください。（ほとんどの場合、問題ありません。）

```powershell
New-SelfSignedCertificate -Subject 'CN=AzureRunAsConnection, OU={AppID}, DC={TenantID}, O={SubscriptionID}' `
    -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(10) -KeySpec Signature | `
    Export-Certificate -FilePath "AzureRunAsConnection.cer"
```

次のファイルが作成されます `AzureRunAsConnection.cer` これは、アプリケーション登録のシークレットにアップロードします。

{% hint style="info" %}
複数のアプリ / 環境を提供したい場合は、`CN=AzureRunAsConnection` の既定の "AzureRunAsConnection" を、対象環境用の証明書を作成する際にカスタム名に置き換えることができます。

その後、使用する環境/証明書（例: "OtherEnv"）を次の方法で選択できます `Connect-RjRbGraph -AutomationConnectionName "OtherEnv"`

この方法で、同じマシンから複数の環境にアクセスできます。
{% endhint %}

<figure><img src="https://3438325150-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2Fo2vVY6YO0gimSWg4XOfV%2Fimage.png?alt=media&#x26;token=958b8b21-c0fa-464e-aba9-954c008eea8c" alt=""><figcaption><p>証明書のアップロード</p></figcaption></figure>

### 使用方法

次を使用するだけです `Connect-RjRbGraph` を使ってアプリに認証します。&#x20;

競合やログイン失敗を避けるため、個人用証明書の一覧に古い Dev 証明書がある場合は、mmc.exe を使って削除してください。
