> 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/privileged-access-manager/keeperdb/entra-id-authentication-for-azure-sql.md).

# Azure SQL向けEntra ID認証

保存されたパスワードではなく、Microsoft Entra IDを使ったAzure SQLデータベースへの接続

ユーザーは、保存されたパスワードの代わりに、自分のMicrosoft Entra IDアカウントでAzure SQLデータベースに接続できます。

## KeeperDB Desktopからのサインイン

KeeperDB Desktop (v2.3.0以降) は、Entra IDを使ってAzure SQLに直接接続します。ゲートウェイ、アプリ登録、ボルトの設定は不要です。ただし、ユーザーはEntraユーザーとしてデータベースに存在している必要があります。

1. SQL Server接続を作成し、Azure SQLのホストとデータベースを入力します。
2. **\[詳細設定…]** をクリックし、**\[認証]** を **\[Azure AD Token (Entra ID)]** に設定して **\[OK]** をクリックします。
3. **\[Microsoftでサインイン]** をクリックし、開いたブラウザタブでMicrosoftアカウントのサインインを完了します。
4. **\[接続]** をクリックします。

トークンを使う場合は、Azure SQL用のEntra IDアクセストークンを **\[アクセストークン]** に貼り付けます。

## Keeperボルトからのサインイン

### 要件

* Keeperゲートウェイ **v1.9.0** 以降
* PAM構成がAzure構成 (クライアントID、テナントID、クライアントシークレットが設定済み) になっているPAMデータベースレコード (SQL Server)
* そのAzure PAM構成で使われているアプリ登録に、以下が設定されていること
  * **\[シングルページ アプリケーション]** のリダイレクトURI
    * Webボルト: `https://keepersecurity.com/vault/entra-callback` (`keepersecurity.com` はご利用のリージョンのドメイン (例: `keepersecurity.eu`) に置き換えてください)
    * デスクトップアプリ: `http://localhost/vault/entra-callback`
  * **\[Azure SQL Database]** → `user_impersonation` の委任された権限 (管理者の同意済み)
* ユーザーがAzure SQLデータベースにEntraユーザーとして存在していること

### 手順1: PAMデータベースレコードでEntra IDを有効にする

レコードを編集 → **\[PAM設定]** → **\[接続]** → **\[認証方式]**

* **\[Entra ID認証を許可]** (Azure PAM構成を選択するとデフォルトで有効)
  * **\[ブラウザのセッショントークンを使用]**: ユーザーはMicrosoftのポップアップでサインインします (MFA対応)
  * **\[ユーザーによるトークンの貼り付けを許可]**: ユーザーが自分で取得したアクセストークンを貼り付けます
* **\[Entra ID - ユーザー名とパスワード (レガシー)]**: レコードの起動認証情報でサインインします。この認証情報はEntraアカウントである必要があります。この方式はMFAに対応していません。

### 手順2: 接続

接続を起動し、認証情報のドロップダウンから **\[Entra IDでサインイン]** を選択します。WebボルトはポップアップでMicrosoftのサインイン画面を開くため、ボルトでポップアップを許可しておいてください。他の方式を使う場合は、**\[Entra IDトークンを入力]**、または **\[起動認証情報 - Entra ID (レガシー)]** の下にある認証情報を選択してください。

## よくあるサインインエラー

| エラー                           | 対処方法                                                               |
| ----------------------------- | ------------------------------------------------------------------ |
| AADSTS500113 / AADSTS50011    | リダイレクトURIが設定されていないか、一致していません。要件に記載のURIを追加してください。                   |
| AADSTS9002326 / AADSTS9002327 | リダイレクトURIが誤ったプラットフォームで登録されています。**\[シングルページ アプリケーション]** に変更してください。  |
| AADSTS650057                  | Azure SQL Databaseの `user_impersonation` 権限を追加し、管理者の同意を付与してください。   |
| AADSTS7000218 (レガシー)          | Azure PAM構成にクライアントシークレットを追加してください。                                 |
| AADSTS50076 (レガシー)            | このアカウントはMFAが必須のため、レガシー方式では認証できません。**\[Entra IDでサインイン]** を使用してください。 |


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.keeper.io/keeperpam/jp/privileged-access-manager/keeperdb/entra-id-authentication-for-azure-sql.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
