> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/keeperpam/jp/secrets-manager/integrations/azure-logic-app-connector.md).

# Azure Logic Appsコネクター

Azure Logic AppsおよびPower AutomateからKeeperボルト内のシークレットを管理できます。実行時に認証情報を取得し、新しいシークレットを作成し、パスワードをローテーションし、ワークフローに機密値をハードコードすることなくボルトを監査できます。

### 概要

Keeperシークレットマネージャーコネクターは、Azure Logic AppsおよびPower Automateを[Keeperシークレットマネージャー](/keeperpam/jp/secrets-manager/overview.md)に接続します。Azure Function Appとしてデプロイする軽量なPythonミドルウェアサービスが、[Keeperシークレットマネージャー Python SDK](/keeperpam/jp/secrets-manager/developer-sdk-library/python-sdk.md)を介してKeeperボルトと通信します。

すべてのシークレットはKeeperのゼロ知識アーキテクチャで保護されます。Azure Function App内でローカルに復号され、Keeperのサーバーを経由しません。ミドルウェアの構成は、マネージドID参照を通じてAzure Key Vaultに保存されます。

### 機能

* **実行時シークレット取得:** フローにシークレットをハードコードせず、必要に応じて認証情報を取得
* **シークレットの作成と更新:** ワークフローから直接認証情報をプロビジョニングおよびローテーション
* **動的ドロップダウン:** Logic Appデザイナー内のシークレットおよびフォルダピッカーに選択肢を自動表示
* **ゼロ知識暗号化:** シークレットはローカルで復号され、Azure環境外へ出ない
* **ワンクリックデプロイ:** ARMテンプレートにより、数分で必要なAzureリソースをすべてプロビジョニング
* **認定コネクター:** Microsoft Power Platformマーケットプレイスで公開

### 要件

* **Keeper Securityアカウント**
  * **サブスクリプション:** シークレットマネージャーが有効な[Keeperエンタープライズ](https://www.keepersecurity.com/pricing.html)アカウント
  * **アプリケーション:** 少なくとも1つの共有フォルダが設定された[Keeperボルト](https://keepersecurity.com/vault)内のKeeperシークレットマネージャーアプリケーション
  * **デバイス構成:** Keeper管理コンソールから生成したBase64エンコードのデバイス構成、またはワンタイムアクセストークン
* **Azureアカウント**
  * **サブスクリプション:** リソースグループに対する**Owner**、または**Contributor + User Access Administrator**権限を持つAzureサブスクリプション。ARMテンプレートはインフラストラクチャ、ロール割り当て、デプロイスクリプトを作成。手動セットアップの場合のみ**Contributor**権限で足りる

### セットアップ <a href="#setup" id="setup"></a>

**手順1: Keeperシークレットマネージャーアプリケーションを作成する**

1. [Keeperボルト](https://keepersecurity.com/vault)にサインインします
2. 左メニューから **\[シークレットマネージャー]** を開きます
3. **\[アプリケーションの作成]** をクリックし、わかりやすい名前を付けます (例: 「Azure Logic Apps Connector」)
4. 1つ以上のボルトフォルダをアプリケーションと共有します。これらのフォルダが、コネクターがアクセスできるシークレットを決定します
5. **\[デバイス]** タブを開き、**\[デバイスを追加]** をクリックします
6. **\[デバイス名]** を入力し、**\[取得方法]** で **\[構成ファイル]** を選択し、**\[構成タイプ]** で **\[Base64]** を選択して、**\[コピー]** をクリックします

{% hint style="warning" %}
デバイス構成 (ワンタイムアクセストークン) は1回のみ使用できます。初回接続後、KeeperシークレットマネージャーSDKが永続的な構成を導出して保存します。Base64文字列は安全に保管し、ソース管理にコミットしないでください。
{% endhint %}

構成ファイルおよびPython SDKについて、詳しくは[KSM Developer SDKs](/keeperpam/jp/secrets-manager/developer-sdk-library.md)のドキュメントをご参照ください。

<figure><img src="/files/Y03OVB8EMYgwr0o5VgL9" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/8tXZmh9br0R94UXXDuax" alt=""><figcaption></figcaption></figure>

**手順2: Azure Functionミドルウェアをデプロイする**

[ミドルウェアリポジトリ](https://github.com/Keeper-Security/azure-logic-apps)の**Deploy to Azure**ボタンをクリックします。Azure portalで**Resource Group**を選択または作成し、以下を入力します。

| パラメータ                 | 値                                                |
| --------------------- | ------------------------------------------------ |
| **Function App Name** | グローバルに一意な名前、3〜60文字 (例: `keeper-middleware-acme`) |
| **Keeper Config**     | 手順1で取得したBase64エンコードのデバイス構成                       |
| **Location**          | Azureリージョン (デフォルトはリソースグループのロケーション)               |

**Review + create**をクリックし、デプロイが完了するまで待ちます。通常5〜7分かかります。ARMテンプレートですべてのリソースがプロビジョニングされ、ミドルウェアコードも自動デプロイされます。 `func publish` を実行する必要はありません。

ARMデプロイには、リソースグループに対する**Owner**、または**Contributor + User Access Administrator**が必要です。

**プロビジョニングされるリソース**

テンプレートにより、以下のリソースがプロビジョニングされます。

| リソース                               | 用途                                                |
| ---------------------------------- | ------------------------------------------------- |
| **Azure Function App**             | Python 3.11、Linux Consumptionプラン、システムマネージドID      |
| **App Service Plan**               | Linux Consumption (Dynamic Y1) ホスティングプラン          |
| **Azure Key Vault**                | KSM構成をシークレット (`KSM-CONFIG`) として保存                 |
| **Key Vault Access Policy**        | Function AppにKey Vaultシークレットへの `GET` 権限を付与        |
| **Storage Account**                | Azure Functionsランタイムで必要                           |
| **User-Assigned Managed Identity** | デプロイスクリプトがFunction Appへミドルウェアコードをデプロイする際に使用       |
| **Contributor Role Assignment**    | プロビジョニング中にUAMIがFunction Appへデプロイする権限を付与           |
| **Deployment Script**              | ミドルウェアコードをFunction Appにダウンロードしてデプロイ。成功時に自動クリーンアップ |

すべてのリソースで**HTTPSのみ**および\*\*TLS 1.2+\*\*が強制されます。Deployment Scriptリソースはプロビジョニング成功後に自動削除されます。User-Assigned Managed IdentityとそのContributorロール割り当てはデプロイ後も残ります。プロビジョニング完了後に手動で削除できます。

{% hint style="info" %}
ARMテンプレートを使わず、Azure portalで必要なリソースを作成することもできます。\
\
手順の詳細は、リポジトリの[Manual Setup](https://github.com/Keeper-Security/azure-logic-apps/tree/dev#manual-setup-alternative)をご参照ください。
{% endhint %}

**手動セットアップの場合:** Resource Group、Key Vault、Storage Account、Function Appを作成した後、Azure Functions Core Toolsでミドルウェアコードをデプロイします。

{% code overflow="wrap" %}

```zsh
git clone https://github.com/Keeper-Security/azure-logic-apps.git
cd azure-logic-apps/keeperLogicAppMiddleware
func azure functionapp publish <FUNCTION_APP_NAME> --python
```

{% endcode %}

`<FUNCTION_APP_NAME>` をFunction App名に置き換えます。「Remote build succeeded!」が表示されるまで待ちます (2〜5分)。

**手順3: Function Host Keyをコピーする**

1. [Azure portal](https://portal.azure.com)で、デプロイ済みのFunction Appを開きます
2. 左メニューで**App keys** (Functionsセクション内) を選択します
3. **default**ホストキーをコピーします

**手順4: コネクターを追加する**

Logic App Designerで**Add an action**をクリックし、**Keeper Secrets Manager**を検索して、コネクター一覧から選択します。認定コネクターは最初から利用できます。インポートは不要です。

{% hint style="info" %}
開発環境またはセルフホストでデプロイする場合は、Azure portalまたはPower Automateの**Custom connectors**から `apiDefinition.swagger.json` をアップロードして、コネクターを手動インポートできます。
{% endhint %}

<figure><img src="/files/278s70hy7PwgLoWvrXNJ" alt=""><figcaption></figcaption></figure>

**手順5: 接続を作成する**

プロンプトが表示されたら、以下を入力します。

1. **Function App URL:** Azure Function Appのホスト名 (例: `yourapp.azurewebsites.net`)
2. **API Key:** 手順3のホストキー。すべてのリクエストで `x-functions-key` ヘッダーとして送信されます

以降のフローはこの接続を再利用します。

<figure><img src="/files/uPdi2CNAnCt1rWm6bBuH" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/PrueUG4TDyZ7EMACSEJE" alt="" width="563"><figcaption></figcaption></figure>

### クイックスタート <a href="#quick-start" id="quick-start"></a>

接続後、Logic AppフローにKeeperシークレットマネージャーのアクションを追加できます。利用できる操作は5つです。

| 操作                | メソッド                 | 説明                                                                  |
| ----------------- | -------------------- | ------------------------------------------------------------------- |
| **List Secrets**  | `GET /secrets`       | アクセス可能なすべてのシークレット (UID、タイトル、タイプ、フォルダ) を返却                           |
| **Get Secret**    | `GET /secrets/{uid}` | ログイン、パスワード、URL、メモ、TOTPコード、パスキー、ファイル参照、カスタムフィールド、編集可否を含むシークレットの詳細を返却 |
| **Create Secret** | `POST /secrets`      | 共有フォルダに新しい `login` レコードタイプのシークレットを作成 (`folder_uid` と `title` が必要)   |
| **Update Secret** | `PUT /secrets/{uid}` | `title`、`login`、`password`、`url`、`notes` の任意の組み合わせを更新               |
| **List Folders**  | `GET /folders`       | アクセス可能なすべてのフォルダ (UID、名前、親、レコード数) を返却                                |

**Get Secret**および**Update Secret**には、List Secretsで入力される動的ドロップダウンがあります。**Create Secret**には、List Foldersで入力される対象フォルダ選択用の動的ドロップダウンがあります。

<figure><img src="/files/vpd6jgzbZ6aWg02ME6vo" alt="" width="563"><figcaption></figcaption></figure>

### 自動化フロー <a href="#automation-flows" id="automation-flows"></a>

他のAzure Logic Appsコネクターと組み合わせる際の一般的なパターンです。

**自動パスワードローテーション**

スケジュールに従って認証情報をローテーションし、チームに通知します。

<figure><img src="/files/hkKGqgTWsb17CCRsJsi3" alt="" width="563"><figcaption></figcaption></figure>

使用: **Keeper Secrets Manager** + Compose + Office 365 Outlook

**API呼び出しへの認証情報注入**

フロー内に保存せず、実行時にボルトからAPIキーを取得します。

<figure><img src="/files/9Q0h83HSaLD5d5mJkjR7" alt="" width="563"><figcaption></figcaption></figure>

使用: **Keeper Secrets Manager** + HTTP + SharePoint

**従業員向け認証情報プロビジョニング**

新入社員が入社した際に、ボルトの認証情報を自動作成します。

<figure><img src="/files/PjLYdigxAmfi4yclImF9" alt="" width="563"><figcaption></figcaption></figure>

使用: **Keeper Secrets Manager** + Azure AD + Office 365 Outlook

**ボルトコンプライアンス監査**

すべてのシークレットとフォルダの週次インベントリレポートを生成します。

<figure><img src="/files/wkD9OnUTHlNbruBKgZep" alt="" width="563"><figcaption></figcaption></figure>

使用: **Keeper Secrets Manager** + Data Operations + SharePoint + Office 365 Outlook

**GitHubシークレット同期**

GitHubリポジトリのシークレットをKeeperボルトと同期します。

<figure><img src="/files/Eac92B7uTWElRn973xQC" alt="" width="563"><figcaption></figcaption></figure>

使用: **Keeper Secrets Manager** + HTTP

**データベース接続文字列の取得**

ボルトに保存した認証情報から、必要に応じて接続文字列を組み立てます。

<figure><img src="/files/BOBUR3Ao62RxXPzct6YP" alt="" width="563"><figcaption></figcaption></figure>

使用: **Keeper Secrets Manager** + Compose + Request/Response

### セキュリティ <a href="#security" id="security"></a>

| コントロール               | 詳細                                                                                                                                               |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **ゼロ知識**             | [Keeperシークレットマネージャー SDK](/keeperpam/jp/secrets-manager/developer-sdk-library/python-sdk.md)を介してAzure Function内でローカルに復号。平文シークレットはKeeperサーバーを経由しない |
| **Key Vaultストレージ**   | デバイス構成はマネージドID参照を通じてAzure Key Vaultに保存。平文では保存しない                                                                                                 |
| **HTTPS + TLS 1.2+** | Azure App Serviceレベルで強制                                                                                                                          |
| **Functionレベル認証**    | すべてのリクエストに `x-functions-key` ヘッダーが必要                                                                                                             |
| **レート制限**            | ワーカーごとのベストエフォート制限 (60秒間に60リクエスト) により、意図しない過負荷を防止。超過時は `429 Too Many Requests` と `Retry-After` ヘッダーを返却                                            |
| **入力検証**             | Content-Type、フィールド長、必須パラメータを検証                                                                                                                   |
| **安全なエラーメッセージ**      | APIエラーレスポンスに機密データを含めない                                                                                                                           |

### 既知の制限 <a href="#known-limitations" id="known-limitations"></a>

* **ログインレコードタイプのみ:** Create Secretは `login` レコードタイプのみ。SSHキーやデータベース認証情報など、他のKeeperレコードタイプは作成不可
* **フォルダ作成不可:** フォルダはKeeperボルトまたはKeeper管理コンソールで作成。コネクターからは作成できない
* **ファイル添付:** ファイル添付付きシークレットは一覧表示されるが、添付ファイルのバイナリ内容は返却されない
* **コールドスタート遅延:** Azure Consumptionプランでは2〜5秒を想定。レイテンシに敏感なワークロードにはApp Serviceプランを使用

### トラブルシューティング <a href="#troubleshooting" id="troubleshooting"></a>

**問題: `KSM_CONFIG` 環境変数が設定されていない**

**原因:** Function App設定のKey Vault参照が欠落している、または無効

**解決方法:**

1. Azure portalで、Function App > **Configuration** > **Application settings**を開きます
2. `KSM_CONFIG` が存在し、有効なKey Vault参照 (例: `@Microsoft.KeyVault(SecretUri=...)`) が含まれていることを確認します

**問題: 401 Unauthorized**

**原因:** ホストキーが無効、または一致しない

**解決方法:**

1. コネクター接続のホストキーが、Function App > **App keys**のキーと一致していることを確認します
2. `x-functions-key` ヘッダーが送信されていることを確認します

**問題: 404 Not Found**

**原因:** シークレットが無効、または削除済み

**解決方法:**

* シークレットUIDが無効、またはボルトから削除されています
* UIDがKeeperボルトに存在することを確認してください

**問題: 400 Bad Request**

**原因:** 必須パラメータが不足

**解決方法:**

* シークレット作成時に `folder_uid` が指定されていることを確認してください
* フォルダがアプリケーションからアクセス可能であることを確認してください

**問題: 429 Too Many Requests**

**原因:** レート制限超過

**解決方法:**

* `Retry-After` レスポンスヘッダーで指定された時間待機してください
* リクエスト頻度を下げるか、時間を分散してください

**問題: 初回リクエストが遅い**

**原因:** Consumptionプランでのコールドスタート

**解決方法:**

* Azure Consumptionプランでは正常な動作です
* レイテンシを下げるには、App Serviceプランへアップグレードするか、[Always On](https://learn.microsoft.com/en-us/azure/azure-functions/dedicated-plan#always-on)を有効にしてください

{% hint style="info" %}
`GET /api/health` でFunction Appが稼働中で到達可能か確認できます。ミドルウェアが正常な場合、 `{"status": "ok"}` を返します。
{% endhint %}

### 次のステップ <a href="#next-steps" id="next-steps"></a>

* **完全なAPIリファレンス:** リクエスト/レスポンススキーマ、エラーコード、高度な使い方については、コネクターの詳細ドキュメントをご参照ください
* **ミドルウェアリポジトリ:** ローカル開発セットアップ、CLIデプロイ、テスト手順については、[Azure Function Middlewareリポジトリ](https://github.com/Keeper-Security/azure-logic-apps)をご参照ください
* **Keeperシークレットマネージャー SDK:** Logic Apps以外の直接SDK連携については、[KSM Developer SDKs](/keeperpam/jp/secrets-manager/developer-sdk-library.md)をご参照ください

#### リソース

* [Keeperシークレットマネージャーのドキュメント](/keeperpam/jp/secrets-manager/overview.md)
* [KSM Python SDK](/keeperpam/jp/secrets-manager/developer-sdk-library/python-sdk.md)
* [Azure Function Middlewareリポジトリ](https://github.com/Keeper-Security/azure-logic-apps)
* [Microsoft Power Platform Connectors](https://github.com/microsoft/PowerPlatformConnectors)
* [Azure Logic Apps Documentation](https://learn.microsoft.com/en-us/azure/logic-apps/)

{% hint style="info" %}
機能リクエストは <pam@keepersecurity.com> までメールでお送りください。
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.keeper.io/keeperpam/jp/secrets-manager/integrations/azure-logic-app-connector.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
