use-case-external-password-auth — community use-case-external-password-auth, idp-server, community, ide skills

v1.0.0

Об этом навыке

Идеально для Агентов Аутентификации, требующих бесшовной интеграции с внешними службами аутентификации пароля через HTTP API 外部パスワード認証委譲ユースケースの設定ガイド。外部認証サービスURL、マッピングルール、ブルートフォース防止、セッション・トークン有効期限のヒアリングと環境変数マッピングを提供。

hirokazu-kobayashi-koba-hiro hirokazu-kobayashi-koba-hiro
[7]
[1]
Updated: 3/11/2026

Killer-Skills Review

Decision support comes first. Repository text comes second.

Reference-Only Page Review Score: 7/11

This page remains useful for operators, but Killer-Skills treats it as reference material instead of a primary organic landing page.

Original recommendation layer Concrete use-case guidance Explicit limitations and caution
Review Score
7/11
Quality Score
36
Canonical Locale
ja
Detected Body Locale
ja

Идеально для Агентов Аутентификации, требующих бесшовной интеграции с внешними службами аутентификации пароля через HTTP API 外部パスワード認証委譲ユースケースの設定ガイド。外部認証サービスURL、マッピングルール、ブルートフォース防止、セッション・トークン有効期限のヒアリングと環境変数マッピングを提供。

Зачем использовать этот навык

Наделяет агентов возможностью делегировать аутентификацию пароля внешним службам, используя HTTP API для интеграции и предоставляя безопасный механизм аутентификации с использованием `authentication-configurations` с `execution.function = http_request` для передачи учетных данных пользователя и сопоставления информации пользователя из ответов, используя протоколы như OIDC

Подходит лучше всего

Идеально для Агентов Аутентификации, требующих бесшовной интеграции с внешними службами аутентификации пароля через HTTP API

Реализуемые кейсы использования for use-case-external-password-auth

Делегировать аутентификацию пароля внешним службам для организаций с существующей инфраструктурой аутентификации
Интегрировать idp-server с внешними API аутентификации для безопасной аутентификации пользователей
Сопоставлять информацию пользователя из ответов внешних API для бесшовной аутентификации

! Безопасность и ограничения

  • Требует, чтобы внешние службы предоставляли конечные точки HTTP для аутентификации
  • Требует настройки `authentication-configurations` с `execution.function = http_request`
  • Ограничен организациями с существующей инфраструктурой аутентификации

Why this page is reference-only

  • - Current locale does not satisfy the locale-governance contract.
  • - The underlying skill quality score is below the review floor.

Source Boundary

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

After The Review

Decide The Next Action Before You Keep Reading Repository Material

Killer-Skills should not stop at opening repository instructions. It should help you decide whether to install this skill, when to cross-check against trusted collections, and when to move into workflow rollout.

Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is use-case-external-password-auth?

Идеально для Агентов Аутентификации, требующих бесшовной интеграции с внешними службами аутентификации пароля через HTTP API 外部パスワード認証委譲ユースケースの設定ガイド。外部認証サービスURL、マッピングルール、ブルートフォース防止、セッション・トークン有効期限のヒアリングと環境変数マッピングを提供。

How do I install use-case-external-password-auth?

Run the command: npx killer-skills add hirokazu-kobayashi-koba-hiro/idp-server/use-case-external-password-auth. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for use-case-external-password-auth?

Key use cases include: Делегировать аутентификацию пароля внешним службам для организаций с существующей инфраструктурой аутентификации, Интегрировать idp-server с внешними API аутентификации для безопасной аутентификации пользователей, Сопоставлять информацию пользователя из ответов внешних API для бесшовной аутентификации.

Which IDEs are compatible with use-case-external-password-auth?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for use-case-external-password-auth?

Требует, чтобы внешние службы предоставляли конечные точки HTTP для аутентификации. Требует настройки `authentication-configurations` с `execution.function = http_request`. Ограничен организациями с существующей инфраструктурой аутентификации.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add hirokazu-kobayashi-koba-hiro/idp-server/use-case-external-password-auth. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use use-case-external-password-auth immediately in the current project.

! Reference-Only Mode

This page remains useful for installation and reference, but Killer-Skills no longer treats it as a primary indexable landing page. Read the review above before relying on the upstream repository instructions.

Upstream Repository Material

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

Upstream Source

use-case-external-password-auth

Install use-case-external-password-auth, an AI agent skill for AI agent workflows and automation. Review the use cases, limitations, and setup path before...

SKILL.md
Readonly
Upstream Repository Material
The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.
Supporting Evidence

外部パスワード認証委譲

パスワード認証を外部サービス(HTTP API)に委譲するユースケース。 idp-server 内蔵のパスワード検証を使わず、authentication-configurationsexecution.function = "http_request" を使って外部 API にユーザー名/パスワードを転送し、レスポンスからユーザー情報をマッピングする。

ユースケース: 既存の認証基盤(社内認証 API 等)を持つ組織が、idp-server を OIDC レイヤーとして導入するケース。idp-server は HTTP API で外部サービスと連携するため、外部サービスが HTTP エンドポイントを提供している必要がある。

テンプレート実行

テンプレート: config/templates/use-cases/external-password-auth/

bash
1# 基本実行 2bash config/templates/use-cases/external-password-auth/setup.sh 3 4# カスタマイズ例 5ORGANIZATION_NAME="my-company" \ 6EXTERNAL_AUTH_URL="https://auth.internal.example.com/api/authenticate" \ 7EXTERNAL_PROVIDER_ID="ldap-wrapper" \ 8SESSION_TIMEOUT_SECONDS=3600 \ 9ACCESS_TOKEN_DURATION=1800 \ 10REFRESH_TOKEN_DURATION=604800 \ 11bash config/templates/use-cases/external-password-auth/setup.sh 12 13# ドライラン(実際には作成しない) 14bash config/templates/use-cases/external-password-auth/setup.sh --dry-run

細かい設定 Q&A(逆引き)

「やりたいこと -> 設定」の対応表: qa.md

ユーザーが具体的にやりたいことを言った場合は、qa.md を参照して該当するQ&Aの設定キー+値を提示すること。

設定変更 x 挙動確認(ハンズオン)

「設定を変えて → 挙動が変わることを体験する」実験ガイド:

  • config/templates/use-cases/external-password-auth/EXPERIMENTS.md - http_request(単数)の基本実験
  • config/templates/use-cases/external-password-auth/EXPERIMENTS-http-requests.md - http_requests(複数形)の複数API チェーン実験

設定の効果を手元で確認したい場合はこれらのガイドを案内すること。

自動検証スクリプト: config/templates/use-cases/external-password-auth/verify.sh

ヒアリング項目

#決めること選択肢影響する設定
1外部認証サービスURL実サービスURL / モック(localhost:4001)認証メソッド設定 http_request.url
2外部プロバイダーID任意の識別子(例: ldap-wrapper, legacy-auth認証メソッド設定 user_mapping_rules[].static_value
3アカウントロック条件失敗回数(デフォルト: 5回)認証ポリシー failure_conditions / lock_conditions
4セッション有効期限秒数(デフォルト: 86400 = 24時間)テナント session_config.timeout_seconds
5トークン有効期限(AT)秒数(デフォルト: 3600 = 1時間)認可サーバー extension.access_token_duration
6トークン有効期限(IDT)秒数(デフォルト: 3600 = 1時間)認可サーバー extension.id_token_duration
7トークン有効期限(RT)秒数(デフォルト: 86400 = 24時間)認可サーバー extension.refresh_token_duration

ヒアリング結果 -> 環境変数マッピング

外部認証サービス

ヒアリング項目環境変数デフォルト値
外部認証サービスURLEXTERNAL_AUTH_URLhttp://host.docker.internal:4001/auth/password
外部プロバイダー識別子EXTERNAL_PROVIDER_IDexternal-auth

セッション設定

ヒアリング項目環境変数デフォルト値
セッション有効期限(秒)SESSION_TIMEOUT_SECONDS86400

トークン有効期限

ヒアリング項目環境変数デフォルト値
AT有効期限(秒)ACCESS_TOKEN_DURATION3600
IDT有効期限(秒)ID_TOKEN_DURATION3600
RT有効期限(秒)REFRESH_TOKEN_DURATION86400

設定対象と手順

1. 外部パスワード認証設定(認証メソッド設定) -- 核心

API: POST /v1/management/organizations/{org-id}/tenants/{tenant-id}/authentication-configurations

この設定が外部パスワード認証委譲の核心。execution.function = "http_request" で外部サービスにリクエストを転送し、user_mapping_rules でレスポンスをユーザー属性にマッピングする。

json
1{ 2 "type": "password", 3 "metadata": { 4 "description": "External password authentication via HTTP request" 5 }, 6 "interactions": { 7 "password-authentication": { 8 "execution": { 9 "function": "http_request", 10 "http_request": { 11 "url": "https://auth.example.com/api/authenticate", 12 "method": "POST", 13 "header_mapping_rules": [ 14 { "static_value": "application/json", "to": "Content-Type" } 15 ], 16 "body_mapping_rules": [ 17 { "from": "$.request_body.username", "to": "username" }, 18 { "from": "$.request_body.password", "to": "password" } 19 ] 20 } 21 }, 22 "user_resolve": { 23 "user_mapping_rules": [ 24 { "from": "$.execution_http_request.response_body.user_id", "to": "external_user_id" }, 25 { "from": "$.execution_http_request.response_body.email", "to": "email" }, 26 { "from": "$.execution_http_request.response_body.name", "to": "name" }, 27 { "static_value": "external-auth", "to": "provider_id" } 28 ] 29 }, 30 "response": { 31 "body_mapping_rules": [ 32 { 33 "from": "$.execution_http_request.response_body.user_id", 34 "to": "user_id", 35 "condition": { "operation": "exists", "path": "$.execution_http_request.response_body.user_id" } 36 }, 37 { 38 "from": "$.execution_http_request.response_body.email", 39 "to": "email", 40 "condition": { "operation": "exists", "path": "$.execution_http_request.response_body.email" } 41 }, 42 { 43 "from": "$.execution_http_request.response_body.error", 44 "to": "error", 45 "condition": { "operation": "exists", "path": "$.execution_http_request.response_body.error" } 46 }, 47 { 48 "from": "$.execution_http_request.response_body.error_description", 49 "to": "error_description", 50 "condition": { "operation": "exists", "path": "$.execution_http_request.response_body.error_description" } 51 } 52 ] 53 } 54 } 55 } 56}

外部 API の契約:

項目仕様
リクエストPOST {"username": "...", "password": "..."}
成功 (HTTP 200){"user_id": "...", "email": "...", "name": "..."}
失敗 (HTTP 401){"error": "invalid_credentials", "error_description": "..."}

マッピングルール:

外部レスポンスidp-server 属性説明
user_idexternal_user_id外部サービスのユーザーID
emailemailメールアドレス
namename表示名
(static)provider_id外部サービス識別子

1b. 複数API チェーン設定(http_requests)

複数の外部APIを順番に呼び出し、結果を統合するパターン。例: 認証API → ユーザー詳細API。

http_request(単数)http_requests(複数形)
リクエスト数1つ複数(順番に実行)
設定キーexecution.http_request (object)execution.http_requests (array)
結果パス$.execution_http_request.response_body.*$.execution_http_requests[0].response_body.*
チェーン不可前のレスポンスを次のリクエストで使える
エラー時即座に返却失敗した時点で中断、それまでの結果を保持

複数API呼び出し時のエラーハンドリング:

成功フィールドとエラーフィールドが共存しないよう、allOf + missing 複合条件を使う:

json
1{ 2 "from": "$.execution_http_requests[0].response_body.user_id", 3 "to": "user_id", 4 "condition": { 5 "operation": "allOf", 6 "value": [ 7 { "operation": "exists", "path": "$.execution_http_requests[0].response_body.user_id" }, 8 { "operation": "missing", "path": "$.execution_http_requests[1].response_body.error" } 9 ] 10 } 11}
  • exists のみだと、API 2 が失敗してもAPI 1 の成功フィールドが返ってしまう
  • allOf で「自身が存在 AND 後続APIのエラーが missing」を両方満たす場合のみ出力

functions(ヘッダー動的生成):

json
1"header_mapping_rules": [ 2 { 3 "from": "$.unused", 4 "to": "x-request-id", 5 "functions": [ 6 { "name": "random_string", "args": { "length": 8 } }, 7 { "name": "format", "args": { "template": "trace-{{value}}" } } 8 ] 9 } 10]

使える functions: format(テンプレート変換)、random_string(ランダム文字列)、now(現在時刻)、exists(boolean化)。from: "$.unused" は入力不要な functions 用の特殊パス。

詳細と実験手順は EXPERIMENTS-http-requests.md を参照。

2. 認証ポリシー(パスワードのみ、failure/lock_conditions あり)

API: POST /v1/management/organizations/{org-id}/tenants/{tenant-id}/authentication-policies

login-password-only との主な差分:

  • available_methods["password"] のみ(initial-registration なし = ユーザー自己登録なし)
  • failure_conditions / lock_conditions を設定(5回失敗でアカウントロック)
json
1{ 2 "flow": "oauth", 3 "enabled": true, 4 "policies": [ 5 { 6 "description": "external_password_only", 7 "priority": 1, 8 "conditions": {}, 9 "available_methods": ["password"], 10 "success_conditions": { 11 "any_of": [ 12 [ 13 { 14 "path": "$.password-authentication.success_count", 15 "type": "integer", 16 "operation": "gte", 17 "value": 1 18 } 19 ] 20 ] 21 }, 22 "failure_conditions": { 23 "any_of": [ 24 [ 25 { 26 "path": "$.password-authentication.failure_count", 27 "type": "integer", 28 "operation": "gte", 29 "value": 5 30 } 31 ] 32 ] 33 }, 34 "lock_conditions": { 35 "any_of": [ 36 [ 37 { 38 "path": "$.password-authentication.failure_count", 39 "type": "integer", 40 "operation": "gte", 41 "value": 5 42 } 43 ] 44 ] 45 } 46 } 47 ] 48}

3. クレーム設定(claims_supported)

API: PUT /v1/management/organizations/{org-id}/tenants/{tenant-id}/authorization-server

重要: この設定が無いと UserInfo / ID Token が sub のみしか返さない。

テンプレートでは public-tenant-template.json に以下が含まれている:

json
1{ 2 "claims_supported": [ 3 "sub", "iss", "auth_time", "acr", 4 "name", "given_name", "family_name", "nickname", "preferred_username", "middle_name", 5 "profile", "picture", "website", 6 "email", "email_verified", 7 "gender", "birthdate", "zoneinfo", "locale", "updated_at", 8 "address", "phone_number", "phone_number_verified" 9 ], 10 "claims_parameter_supported": true 11}

login-password-only との差分

項目login-password-onlyexternal-password-auth
パスワード検証idp-server 内蔵外部サービス(http_request)
パスワードポリシーテナントに設定なし(外部サービスが管理)
ユーザー登録initial-registrationなし(外部サービスが管理)
ユーザー識別EMAILEMAIL_OR_EXTERNAL_USER_ID
認証ポリシーpassword + initial-registrationpassword のみ
ブルートフォース防止なしfailure_conditions + lock_conditions

設定確認チェックリスト

#確認観点設定箇所よくあるミス
1claims_supported が設定済み認可サーバー未設定で UserInfo/ID Token が sub のみ返却
2EXTERNAL_AUTH_URL が idp-server コンテナから到達可能認証メソッド設定localhost を指定(Docker 内から到達不可)→ host.docker.internal を使う
3EXTERNAL_PROVIDER_ID が一意認証メソッド設定複数テナントで同じ provider_id を使うと衝突の可能性
4外部サービスのレスポンスに user_id フィールドがある外部サービスフィールド名の不一致で external_user_idnull になる
5identity_unique_key_typeEMAIL_OR_EXTERNAL_USER_IDテナント identity_policy_configEMAIL のままだと外部ユーザーIDでの識別が機能しない
6failure_conditions / lock_conditions が設定済み認証ポリシー未設定だと認証失敗でアカウントロックされない
7ui_config.base_url が認証UIのオリジンテナント ui_configAPIサーバーURLを設定してしまう
8パスワードポリシーが未設定であることテナント identity_policy_config外部サービス管理なのに idp-server 側にもポリシーを設定してしまう

設定例ファイル参照

  • テンプレート: config/templates/use-cases/external-password-auth/
  • 認証メソッド設定: config/templates/use-cases/external-password-auth/authentication-config-password-template.json
  • 認証ポリシー: config/templates/use-cases/external-password-auth/authentication-policy.json
  • テナント設定: config/templates/use-cases/external-password-auth/public-tenant-template.json
  • モックサーバー: config/templates/use-cases/external-password-auth/mock-server.js

関連ドキュメント

  • config/templates/use-cases/external-password-auth/README.md - テンプレートの詳細説明
  • documentation/docs/content_05_how-to/phase-1-foundation/07-authentication-policy.md - 認証ポリシー設定
  • スキル spec-external-integration - 外部サービス連携の詳細(HTTP Request Executor, MappingRule)
  • スキル use-case-login - login-password-only との共通設定(セッション、トークン等)

$ARGUMENTS

Связанные навыки

Looking for an alternative to use-case-external-password-auth or another community skill for your workflow? Explore these related open-source skills.

Показать все

openclaw-release-maintainer

Logo of openclaw
openclaw

Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

widget-generator

Logo of f
f

Generate customizable widget plugins for the prompts.chat feed system

flags

Logo of vercel
vercel

The React Framework

138.4k
0
Браузер

pr-review

Logo of pytorch
pytorch

Tensors and Dynamic neural networks in Python with strong GPU acceleration

98.6k
0
Разработчик