# 生体認証ログインコマンド

### 仕組み

生体認証ログインでは、ユーザーがパスワードを入力せず、**生体認証情報** (指紋、顔認証、その他の安全なトークン) で認証できます。これらはユーザーに紐づく暗号トークンとして扱われます。

生体認証 (Windows Hello) はWindows端末側で構成する必要があります。詳細はMicrosoftのWindows Hello構成ガイドを[こちら](https://support.microsoft.com/en-us/windows/configure-windows-hello-dae28983-8242-bb2a-d3d1-87c9d265a5f0)からご参照ください。

#### 1. 認証情報の作成 (登録)

* **生体認証情報**は、ユーザーの端末上でローカルに生成されます。
  * **公開鍵と秘密鍵のペア**が作られます。
  * 秘密鍵は端末内に安全に保管され、**端末の外には出ません**。
* **公開鍵**がKeeperに送られ、ユーザーアカウントに登録されます。
* この公開鍵は、以降の認証用にユーザーと関連付けて保持されます。

#### 2. 認証 (ログイン)

* 生体認証でログインするとき、端末は秘密鍵で**暗号チャレンジ**に署名します。
* 署名済みのチャレンジ (トークン/アサーション) がKeeperに送られます。
* 登録済みの公開鍵で署名が検証されます。
* 検証に成功すると次のとおりです。
  * そのトークンは本人確認の証拠として扱われます。
  * ユーザーにボルト/セッションへのアクセスが許可されます。

#### 3. 基本原則

* **ゼロ知識セキュリティ** – 生体データや秘密鍵はKeeperに送られず、公開鍵のみが保持されます。
* **端末に紐づく認証情報** – 認証情報は、作成した端末に結び付きます。
* **パスワードレスログイン** – 一度登録すれば、マスターパスワードの代わりに使えたり、第二要素として機能したりします。
* **フォールバック** – 生体認証が使えない場合でも、パスワードやその他の二要素認証でログインできます。

### 要件

{% tabs %}
{% tab title="PowerCommander" %}
Power Commanderでは、Windows Helloのみを使った生体認証ログインが利用できます。

**要件:**

1. Windows 11以降が必要です
2. PowerCommander 1.0.7以降であること
   {% endtab %}

{% tab title="Python CLI" %}
Python CLIでは、Windows HelloとmacOSの両方で生体認証ログインが利用できます。\
Python 3.10以上が必要です。
{% endtab %}

{% tab title="DotNet CLI" %}
これらのコマンドは、Windows上の.NET Framework 4.7.2 (net472) 向けビルドでのみ利用できます。
{% endtab %}
{% endtabs %}

#### 対応コマンド一覧

次のコマンドを扱う。

1. [生体認証の登録コマンド](#register-biometric-command)
2. [クレデンシャル表示コマンド](#show-credential-command)
3. [クレデンシャル検証コマンド](#verify-credential-command)
4. [クレデンシャル登録解除コマンド](#unregister-credential-command)
5. [表示名変更コマンド](#change-name-command)

### 生体認証の登録コマンド <a href="#register-biometric-command" id="register-biometric-command"></a>

このコマンドは、現在CLIにログインしているユーザーのメールアドレスで新しいパスキーを作成します。生体認証ログインを既定のログイン方法にしたあと、ユーザーがログインするときの認証にこのパスキーが使われます。

このコマンドを使うには、CLIにログイン済みである必要があります。

**注:**

1. このコマンドを実行したあと、生体認証を既定のログイン方法にするには、端末をKeeperに登録する必要があります。
2. 永続ログインは生体認証ログインより優先されます。端末で永続ログインが有効な場合、ログイン時に生体認証情報は検証されません。

{% tabs %}
{% tab title="PowerCommander" %}

```powershell
Register-KeeperBiometricCredential
```

**対象:** Windows Helloのみ。

**フラグ**:

`PassThru` **:** このフラグは、認証情報IDなどの詳細を表示するかどうかを制御します。`true` にすると詳細が出力され、そうでなければ出力されません。

**例**

*PassThruフラグあり*

```powershell
PS> Register-KeeperBiometricCredential -PassThru
Biometric Credential Creation for Keeper
Please complete Windows Hello verification to create the credential...
Credential ID stored for user: <user>
Credential created successfully
Success! Biometric authentication "<user>" has been registered.
Please register your device using the "Set-KeeperDeviceSettings -Register" command to set biometric authentication as your default login method.

Name                           Value
----                           -----
Username                       <user>
Timestamp                      26-09-2025 08:01:08
DisplayName                    <user>
CredentialId                   ...W25xo-z_9QyWdti5CsQ
Success                        True
```

*PassThruフラグなし*

```powershell
PS>Register-KeeperBiometricCredential
Biometric Credential Creation for Keeper
Please complete Windows Hello verification to create the credential...
Credential ID stored for user: <user>
Credential created successfully
Success! Biometric authentication "<user>" has been registered.
Please register your device using the "Set-KeeperDeviceSettings -Register" command to set biometric authentication as your default login method.
```

{% endtab %}

{% tab title="Python CLI" %}

```shell
My Vault> biometric register
```

**対象**: WindowsとmacOSの両方。
{% endtab %}

{% tab title="DotNet CLI" %}

```bash
biometric register
```

このコマンドは、現在CLIにログインしているユーザーのメールアドレスで新しいパスキーを作成します。端末に生体認証ログインを登録したあと、ユーザーがログインするときの認証にこのパスキーが使われます。

このコマンドを使うには、CLIにログイン済みである必要があります。

**注:**

1. このコマンドを実行したあと、生体認証を既定のログイン方法にするには、端末をKeeperに登録する必要があります。
2. 永続ログインは生体認証ログインより優先されます。端末で永続ログインが有効な場合、ログイン時に生体認証情報は不要になります。
3. Windows上のnet472向けビルドでのみ利用できます。
   {% endtab %}
   {% endtabs %}

### クレデンシャル表示コマンド <a href="#show-credential-command" id="show-credential-command"></a>

このコマンドは、指定アカウントに登録済みの認証情報をすべて一覧し、認証器の種類、認証情報ID、作成日、最終利用日を表示します。

このコマンドを使うには、CLIにログイン済みである必要があります。

{% tabs %}
{% tab title="PowerCommander" %}

```powershell
Show-KeeperBiometricCredentials
```

**フラグ**

`IncludeDisabled` *-* 現在有効なものに加え、以前使われたが無効化された認証情報の詳細も表示します。

**例**

```powershell
PS> Show-KeeperBiometricCredentials -IncludeDisabled

Registered Biometric Authentication Methods:
----------------------------------------------------------------------
Id: ....w6ZGlzYWJsZWQ=
Name: Platform Authenticator (DISABLED)
Created: 2025-09-25 10:22:17
Last Used: 2025-09-25 11:12:00
----------------------------------------------------------------------
Id: YlDRvVIYsC0.....
Name: Platform Authenticator
Created: 2025-09-25 12:17:10
Last Used: 2025-09-25 12:26:28
----------------------------------------------------------------------
```

{% endtab %}

{% tab title="Python CLI" %}

```sh
My Vault> biometric list
```

**出力例:**

```shell
Registered Biometric Authentication Methods:
----------------------------------------------------------------------
Name: Commander CLI (MacBook)
Created: December 20, 2023
Last Used: Today
----------------------------------------------------------------------
Name: iCloud Keychain
Created: December 18, 2023
Last Used: July 10, 2025
----------------------------------------------------------------------
Name: Chrome on Mac
Created: November 15, 2023
Last Used: Never
----------------------------------------------------------------------
```

{% endtab %}

{% tab title="DotNet CLI" %}
このコマンドは、指定アカウントに登録済みの認証情報をすべて一覧し、認証器の種類、認証情報ID、作成日、最終利用日を表示します。

このコマンドを使うには、CLIにログイン済みである必要があります。

**例:**

```
My Vault> biometric list
Listing Windows Hello biometric credentials...


    #  Friendly Name  Provider                Created           Last Used         Status
  ---  -------------  ----------------------  ----------------  ----------------  ------
    1  Windows Hello  Windows Hello           2025-10-10 19:41  2025-10-10 19:42  Active
    2  Windows Hello  Windows Hello           2025-10-29 12:59  2025-10-29 14:14  Active
Rem
```

{% endtab %}
{% endtabs %}

### クレデンシャル検証コマンド <a href="#verify-credential-command" id="verify-credential-command"></a>

このコマンドは、保存済みの認証情報でセッションを認証するために使います。生体認証でログインするときも同じ処理が使われます。

{% tabs %}
{% tab title="PowerCommander" %}

```powershell
Assert-KeeperBiometricCredential
```

**フラグ**:

`Purpose` - `login` または `reauth` を指定します。サーバーに対し、ログイン用の認証か、ログイン状態の再確認かを伝えます。

`PassThru` **-** 認証情報IDなどコマンド出力を表示するかどうか。既定は `false` で、そのような詳細は表示されません。

**出力例**

```powershell
PS> Assert-KeeperBiometricCredential -Purpose vault -PassThru
Verification completed successfully!

Name                           Value
----                           -----
Username                       <username>
Message                        Windows Hello authentication with Keeper completed successfully
EncryptedLoginToken            {}
Purpose                        vault
CredentialId                   ....RRR2nPv78NMuM
Success                        True
IsValid                        True

```

{% endtab %}

{% tab title="Python CLI" %}

```sh
My Vault> biometric verify
```

**フラグ:**

**--purpose** - `vault` または `reauth` を指定します。このフラグで目的をvault/reauthに設定します。省略可能です。

**出力例:**

```
Please complete biometric authentication...

Biometric Authentication Verification Results:
==================================================
Status: SUCCESSFUL
Purpose: LOGIN
Login Token: Received

Your biometric authentication is working correctly!
==================================================
```

{% endtab %}

{% tab title="DotNet CLI" %}
このコマンドは、保存済みの認証情報でセッションを認証するために使います。生体認証でログインするときも同じ処理が使われます。

**例:**

```bash
My Vault> biometric verify
Verifying Windows Hello authentication for '<user_email>' (purpose: vault)...
Windows Hello verification successful.

My Vault> biometric verify --purpose=login
Verifying Windows Hello authentication for '<user_email>' (purpose: login)...
Windows Hello verification successful.
```

{% endtab %}
{% endtabs %}

### クレデンシャル登録解除コマンド <a href="#unregister-credential-command" id="unregister-credential-command"></a>

このコマンドは、Keeper上で認証情報を無効化するために使います。指定した暗号認証情報は、ユーザーに結び付いたものとしてKeeperに受け入れられなくなります。

{% tabs %}
{% tab title="PowerCommander" %}

```powershell
Unregister-KeeperBiometricCredential -CredentialId <credentialId> -PassThru
```

**フラグ :**

`CredentialId` - 無効化する認証情報のID。省略するとすべてが対象になる。

`PassThru` - 結果のフィルター。既定は `false` で、実行時に技術的な詳細はユーザーに返しません。このフラグを付けると、削除した認証情報の詳細を確認できます。

**出力例 :**

```powershell
PS>Unregister-KeeperBiometricCredential -PassThru
Are you sure you want to permanently remove ALL biometric authentication for user '<username>'? (y/N): : y
Successfully unregistered passkey on server
Successfully unregistered credential for <username>@keepersecurity.com

Name                           Value
----                           -----
Username                       <username>
Message                        Biometric credentials unregistered successfully
CredentialId                   ......OfRGyfRRR2nPv78NMuM
Success                        True
```

{% endtab %}

{% tab title="Python CLI" %}

```sh
My Vault> biometric unregister
```

**フラグ**

**--confirm** : 確認ダイアログを省略します。

**出力例**

```
Are you sure you want to disable biometric authentication for user 'user@example.com'? (y/n): y

Biometric authentication has been completely removed for user 'user@example.com'.
Default authentication will be used for future logins.
```

{% endtab %}

{% tab title="DotNet CLI" %}
このコマンドは、Keeper上で生体認証の認証情報を無効化するために使います。指定した暗号認証情報は、ユーザーのログインに用いるものとしてKeeperで受け付けられなくなります。

**例:**

```bash
My Vault> biometric remove
Are you sure you want to remove Windows Hello biometric credential for '<user_email>'? (y/N): y
Biometric credential removed for user: '<user_email>'
```

{% endtab %}
{% endtabs %}

### 表示名変更コマンド <a href="#change-name-command" id="change-name-command"></a>

このコマンドは、指定した端末の表示名を変更します。

{% tabs %}
{% tab title="PowerCommander" %}
未実装
{% endtab %}

{% tab title="Python CLI" %}

```sh
My Vault> biometric update-name
```

このコマンドは、次の操作を対話形式で行います。

1. 利用可能な認証情報から選択する
2. 新しいフレンドリ名を入力する (最大32文字)
3. 更新を確定する

**出力例:**

```
Found 2 biometric credential(s) with friendly names

Available Biometric Credentials:
--------------------------------------------------
 1. Commander CLI (MacBook)
    Created: January 15, 2024
    Last Used: Today

 2. Commander CLI (Desktop)  
    Created: January 10, 2024
    Last Used: January 18, 2024

Select credential number (1-2): 1
Selected: Commander CLI (MacBook)

Current Name: Commander CLI (MacBook)
Enter a new friendly name (max 32 characters):
New name: Personal MacBook

Update Summary:
--------------------
Current Name:  Commander CLI (MacBook)
New Name:      Personal MacBook

Proceed with update? (y/n): y

Passkey Update Results:
==============================
Status: Success
Old Name: Commander CLI (MacBook)
New Name: Personal MacBook
Message: Passkey friendly name was successfully updated
==============================
```

{% endtab %}
{% endtabs %}


---

# 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/keeperpam/jp/commander-sdk/keeper-commander-sdks/sdk-command-reference/login-commands/biometric-login-commands.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.
