# Azure App Services

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FRK3VwZlJwg9GJJYLv943%2Fimage.png?alt=media&#x26;token=59cec1f5-eed6-4b22-948f-68015085ab15" alt=""><figcaption></figcaption></figure>

## 概要

本ページでは、Azure App Services内でKeeperオートメーターをウェブアプリとしてインスタンス化する手順を解説します。GCC HighやDoDなどの環境では、オートメーターをホストするのにこのサービスを利用いただけます。

### 1. オートメーターConfigキーを作成

コマンドラインを開き、オペレーティングシステムに応じて次のいずれかの方法を使用してURLエンコード形式で256ビットAESキーを生成します。

#### キーの作成

{% tabs %}
{% tab title="Mac/Linux" %}

```
openssl rand -base64 32
```

{% endtab %}

{% tab title="Windows (PowerShell)" %}

```powershell
[Byte[]]$key = New-Object Byte[] 32; [System.Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($key); [System.Convert]::ToBase64String($key)
```

{% endtab %}
{% endtabs %}

このコマンドによって生成される値を**手順 6**のために保存します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F1MOv9cm1F2ginDKoSQMq%2Fimage.png?alt=media&#x26;token=6d27a641-2137-4016-89c8-0079c585bd00" alt=""><figcaption><p>Mac/Linuxで生成されたキー値の例</p></figcaption></figure>

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FAakxx7QDkqVW3Sx68a1m%2Fimage.png?alt=media&#x26;token=9d2287e0-46f2-4db4-ae85-494259ee2b10" alt=""><figcaption><p>PowerShellで生成されたキー値の例</p></figcaption></figure>

### 2. App Servicesウェブアプリを作成

Azureポータルから、検索バーで **\[App Services]** を選択し、**\[+ 作成]** から **\[+ Web アプリ]** を選択して新しいウェブアプリを作成します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FLcPOrk7pbzmv31o07OIE%2Fimage.png?alt=media&#x26;token=6a5f9969-9211-440b-87c8-059750b437ac" alt=""><figcaption></figcaption></figure>

* 新しいリソース グループを作成します。
* **\[インスタンスの詳細]** の **\[名前]** に名前を入力します。
* **\[公開]** に **\[コンテナー]** を選択します。
* **\[オペレーティング システム]** に **\[Linux]** を選択します。
* サービスをホストする地域を選択します。
* Linuxプランを選択するか、新しいプランを作成します。料金プランは最低でも「**Premium V3 P0V3」**&#x304C;必要ですが、最終的なプラン内容はエンドユーザーの利用環境によって異なります。
* **\[コンテナー]** タブへ進みます。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FLkiuHWgDrx3jBpA416hi%2Fimage.png?alt=media&#x26;token=5d38491c-00db-40f9-bf89-a41c4e936423" alt=""><figcaption></figcaption></figure>

### 3. コンテナの詳細をセットアップ

**\[コンテナー]** タブでは以下のように設定します。

* イメージ ソース: **その他のコンテナー レジストリ**
* アクセスの種類: **パブリック**
* レジストリ サーバー URL: **<https://index.docker.io>** (入力済)
* イメージとタグ: **`keeper/automator:latest`**
* **\[監視 + セキュリティ]** のタブへ進みます。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FWQKQX42xUijnUD2klJ5W%2Fimage.png?alt=media&#x26;token=282c485d-6b4c-41a9-abcf-0d43961114dc" alt=""><figcaption></figcaption></figure>

### 4. WebAppモニタリングをセットアップ

* **\[Application Insights を有効にする]** に対して **\[はい]** を選択します。
* **\[Application Insights]** を選択するか、新規で作成します。
* **\[確認および作成]** のタブへ進みます。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FieGnQ5Eoewo004Afg32r%2Fimage.png?alt=media&#x26;token=244cd768-cf84-44d6-9906-145130808bb2" alt=""><figcaption></figcaption></figure>

### 5. WebAppを作成

**\[作成]** をクリックします。

数分後、WebAppが作成され、自動的に起動します。

**\[リソースに移動]** をクリックしてコンテナ環境へ移動します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FcKzCVb67IYseShIRKbCp%2Fimage.png?alt=media&#x26;token=9d09a6ca-0c14-4073-864a-7279e259d04a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F3fLLr5SbsCoOCn12aNPK%2Fimage.png?alt=media&#x26;token=9242e6d6-7948-4563-97d7-afa787c62289" alt=""><figcaption></figcaption></figure>

デフォルトのドメイン値をメモしておきます。これはオートメーターサービスのセットアップと初期化の際に必要になります。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F6m48PCGwgZe4r75ppy1x%2Fimage.png?alt=media&#x26;token=02c3fadb-f105-4a4d-a81d-db773bfedadb" alt=""><figcaption></figcaption></figure>

### 6. WebAppを構成

**\[構成]** へ移動し、**\[新しいアプリケーション設定]** を選択します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FYqkXstiLR7x9AS35vsro%2Fimage.png?alt=media&#x26;token=dd62dc21-010a-458d-9413-25aaeff55739" alt=""><figcaption></figcaption></figure>

環境変数の設定は、以下のように左側メニューの **\[環境変数]** で行う場合があります。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FfIX2UiL2lZECsBs3aubF%2Fimage.png?alt=media&#x26;token=554aa233-632c-4917-a66b-0093b51c24bf" alt=""><figcaption></figcaption></figure>

以下のアプリケーション設定を追加します。

* 以下の環境変数を作成し、それぞれの値に設定します。
  * **AUTOMATOR\_CONFIG\_KEY:** 手順1からの値
  * **AUTOMATOR\_PORT: 8089**
  * **SSL\_MODE: none**
  * **WEBSITES\_PORT: 8089**

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FYQnMrGOFhb6CbEbs5B1D%2Fimage.png?alt=media&#x26;token=f8accc20-906d-4124-b236-6c1c406ecf74" alt=""><figcaption></figcaption></figure>

* **\[適用]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2Foe2oPFyR2jLWR2fu8Bfg%2Fimage.png?alt=media&#x26;token=b8c91e70-3cad-4b41-99a4-54208c5001d5" alt=""><figcaption></figcaption></figure>

### **7. Diagnosticsをセットアップ**

**\[診断設定]** を選択し、**\[+ 診断設定を追加する]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F50mt3rD61BLPZeT8xuyc%2Fimage.png?alt=media&#x26;token=d14f6fe4-1fac-4e4a-a0b1-5151eac196a2" alt=""><figcaption></figcaption></figure>

* 診断設定に名前を付けます。
* **\[App Service コンソール ログ]** を選択します。
* **\[App Service アプリケーション ログ]** を選択します。
* **\[Log Analytics ワークスペースへの送信]** を選択します。
  * Log Analyticsを選択するか、新規で作成します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FWZW2BpzHIDdCLe3g1uri%2Fimage.png?alt=media&#x26;token=265933b2-d8d7-4cfd-bf31-3608fc7d755e" alt=""><figcaption></figcaption></figure>

### 8. ログをセットアップ

メイン メニューから **\[ログ]** を選択します。\[X] をクリックしてクエリウィンドウを閉じます。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FmUgzo8dlApYiIXtnyXIk%2Fimage.png?alt=media&#x26;token=e1534ac1-b514-413b-910c-6b94e610fd8f" alt=""><figcaption></figcaption></figure>

シンプルモードからKQLモードに切り替えて新しいクエリを追加します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FHG1fb3XCnorrpQKvg3AM%2Fimage.png?alt=media&#x26;token=2a5cdccd-df85-440b-a408-350f757cf572" alt=""><figcaption></figcaption></figure>

以下はDockerのデプロイおよび起動ログを確認するためのKQLクエリです。

```powershell
AppServicePlatformLogs
project TimeGen=substring(TimeGenerated, 0, 19), Message
sort by TimeGen desc
```

以下はアプリケーションのエラーログを確認するためのKQLクエリです。

```powershell
AppServiceConsoleLogs
project TimeGen=substring(TimeGenerated, 0, 19), ResultDescription
sort by TimeGen desc
```

### 9. App Serviceログのセットアップ

メインメニューの **\[監視]** から **\[App Service ログ]** を選択します。次に、**\[アプリケーション ログ]** の **\[ファイル システム]** を選択し、任意の保持期間を設定します。

**\[保存]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FErG1HkGHgXB6a28XSyZO%2Fimage.png?alt=media&#x26;token=990ef0a5-2704-4119-ba21-822f558335de" alt=""><figcaption></figcaption></figure>

### 10. Log Streamを見る

メインメニューの **\[概要]** から **\[ログ ストリーム]** を選択し、オートメーターサービスが接続され、正しくログが記録されていることを確認します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F9EmI7racV2hexRdCqlpA%2Fimage.png?alt=media&#x26;token=f2206f12-30f9-4083-a088-bd6b108f95be" alt=""><figcaption></figcaption></figure>

### 11. Health Checkの構成

メイン メニューの **\[監視]** か&#x3089;**\[正常性チェック]** を選択します。次に、ヘルス チェック機能を有効にし、パスの値&#x3092;**「/health」**&#x306B;設定します。**\[保存]** をクリックして設定を保存し、もう一度 **\[保存]** をクリックして変更を確定します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FkBDSaYx2eKcDo2P1u0Eg%2Fimage.png?alt=media&#x26;token=281166b8-aa59-4bca-90e0-b012fa571e26" alt=""><figcaption></figcaption></figure>

### 12. アクセス制限を構成

**\[ネットワーク]** で簡単なアクセスルールを設定したり、Azure Front Doorを構成したりできます。 メインメニューか **\[ネットワーク]** を選択し、**\[アクセス制限なしで有効]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FEJbsp5OrRpMj2ZsQ8XUj%2Fimage.png?alt=media&#x26;token=c765dc7c-a28e-4c6d-a5f4-16efc674ddc1" alt=""><figcaption></figcaption></figure>

**\[アクセス制限]** で、**\[選択した仮想ネットワークと IP アドレスから有効]** を選択し、**\[不一致のルール アクション]** を **\[拒否]** にします。**\[+ 追加]** をクリックして、受信アクセスルールを追加します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FCltW5b8YYUSKXYYyn3jC%2Fimage.png?alt=media&#x26;token=e555d886-b130-45c5-94f4-d9314091c65b" alt=""><figcaption></figcaption></figure>

**\[ルールの追加]** で、受信ファイアウォールルールを追加します。トラフィックは、以下のページをご参照の上、各地域向けの **\[ネットワーク ファイアウォールの設定]** として公開されているKeeper公開IPアドレスに制限します。

{% content-ref url="inguresu" %}
[inguresu](https://docs.keeper.io/jp/sso-connect-cloud/device-approvals/automator/inguresu)
{% endcontent-ref %}

**\[ルールの追加]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FmLVGDAJcelPZ3OZ9CTVE%2Fimage.png?alt=media&#x26;token=df327077-8251-449e-b844-e28a0ace6371" alt=""><figcaption></figcaption></figure>

**\[保存]** をクリックして構成を保存します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FcJtcdlKbDlmRLfMMSgeE%2Fimage.png?alt=media&#x26;token=b5a1bfad-baa3-4418-b8e6-547846cf47cc" alt=""><figcaption></figcaption></figure>

### 13. Keeperコマンダーへログイン

オートメーター構成の最終ステップを実行するには、Keeperコマンダーが必要です。これはどこからでも実行できます。サーバーにインストールする必要はありません。 ワークステーションまたはサーバーに、KeeperコマンダーCLI をインストールします。バイナリインストーラーを含むインストール手順については、[こちらのページ](https://app.gitbook.com/s/PL6k1aGsLiFiiJ3Y7zCl/commander-cli/commander-installation-setup)をご参照ください。

インストール後、Keeperコマンダーを起動するか、既存のターミナルから `keeper shell` と入力してセッションを開き、`login`コマンドを使用してログインします。オートメーターを設定するには、Keeper管理者またはSSOノードを管理できる管理者としてログインする必要があります。

```
$ keeper shell

My Vault> login admin@company.com

  _  __  
 | |/ /___ ___ _ __  ___ _ _ 
 | ' </ -_) -_) '_ \/ -_) '_|
 |_|\_\___\___| .__/\___|_|
 v16.x.xxx    |_|

 password manager & digital vault

Logging in to Keeper Commander
Enter password for admin@company.com
Password: ********************
Successfully authenticated with Master Password
Syncing...
Decrypted [58] record(s)

My Vault>
```

### 14. オートメーターを作成

`automator create` から始まる一連のコマンドを使用してオートメーターを作成します。

```
My Vault> automator create --name "My Automator" --node "Azure Cloud"
```

ノード名 (この場合は「Azure Cloud」) は、以下のように管理コンソールUIから取得します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2Frapf0wqAmjrfNWJ4taHH%2Fimage.png?alt=media&#x26;token=1f4f1258-ab76-4c92-91ca-8b53d9fb98b7" alt=""><figcaption><p>オートメーターの作成</p></figcaption></figure>

コマンドを実行すると、IDプロバイダからのメタデータを含むオートメーター設定が表示されます。

```
                    Automator ID: 1477468749950
                            Name: My Automator
                             URL: 
                         Enabled: No
                     Initialized: No
                          Skills: Device Approval
```

「URL」はまだ入力されていないことにご留意ください。これは、[手順5](#id-5-webappwo)の**Default Domain**の値です。

以下のように、「automator edit」コマンドを実行します。これにより、URL が設定され、スキル (`team`、`team_for_user`、`device`) も設定されます。

{% code overflow="wrap" %}

```
automator edit --url https://<Default domain> --skill=team --skill=team_for_user --skill=device "My Automator"
```

{% endcode %}

次に、キーを交換します。オートメーター公開キーで暗号化されたエンタープライズ秘密キーが オートメーターに提供されます。

```
automator setup "My Automator"
```

新しい構成でオートメーターを初期化します。

```
automator init "My Automator"
```

サービスを有効にします。

```
automator enable "My Automator"
```

この時点で構成は完了となります。

外部のヘルスチェックについては以下のURLをご使用ください。

https\://\<server>/health

以下は `curl` コマンドの例となります。

```
$ [rainer@iradar keeper]$ curl -vk https://keeperapprovalautomator.azurewebsites.net/health
* About to connect() to keeperapprovalautomator.azurewebsites.net port 443 (#0)
*   Trying 40.112.243.106...
* Connected to keeperapprovalautomator.azurewebsites.net (40.112.243.106) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* skipping SSL peer certificate verification
* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
*       subject: CN=*.azurewebsites.net,O=Microsoft Corporation,L=Redmond,ST=WA,C=US
*       start date: Oct 31 23:08:36 2023 GMT
*       expire date: Jun 27 23:59:59 2024 GMT
*       common name: *.azurewebsites.net
*       issuer: CN=Microsoft Azure TLS Issuing CA 01,O=Microsoft Corporation,C=US
> GET /health HTTP/1.1
> User-Agent: curl/7.29.0
> Host: keeperapprovalautomator.azurewebsites.net
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 2
< Content-Type: text/plain
< Date: Sat, 23 Mar 2024 05:08:13 GMT
< Server: Jetty(11.0.20)
< Strict-Transport-Security: max-age=31622400; includeSubDomains
<
* Connection #0 to host keeperapprovalautomator.azurewebsites.net left intact

```

### ユーザー体験のテスト

Keeperオートメーターがデプロイされましたので、ユーザー体験をテストできます。ユーザーが SSO IDプロバイダで認証した後は、承認を求めるプロンプトが表示されなくなります。

最も簡単なテスト方法は、ブラウザでシークレットモードのウィンドウを開いてKeeperウェブボルトへアクセスし、SSOクラウドでログインすることとなります。デバイスの承認を求めるプロンプトは表示されません。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/jp/sso-connect-cloud/device-approvals/automator/azure-app-services.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
