本文へ移動
cccskills
無料GitHub で公開日本語紹介

configuration-registrations

ユーザー登録フォームとメール確認後の登録保管先を設定し、対象ポータルや通知方法、ドメイン制限を管理します。確認完了後の承認手順も把握できます。

原文原文の説明を見る

Configure legacy signup and SQLite email-confirmed enrollment, portal selection, messaging, storage and recovery. OAuth client registration is separate.

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • メール確認付きの新規登録を設定したいとき
  • 登録可能なメールドメインを制限したいとき
  • ポータルごとに登録フローを選びたいとき
  • 登録通知と確認メールを設定したいとき
  • 登録後の承認とアカウント作成を整理したいとき

日本語での紹介

できること

ユーザー登録の設定として、従来型の登録フォームとSQLiteを使うメール確認型の登録を扱います。登録フォームのタイトル、確認コード、利用規約への同意、メールドメイン条件、通知先、登録データの保存先を設定し、対象ポータルでどの登録フローを有効にするか確認できます。メール確認が完了すると登録情報はログイン用のIDストアとは別のドロップボックスに保存されます。確認後の管理者通知や、登録情報をログインアカウントへ移す運用上の境界も整理します。

こんなときに便利

新規ユーザーの申し込みを受け付け、メール確認後に管理者が別途承認する流れを作りたいときに役立ちます。複数のIDストアやレルムごとに登録先を分けたい場合、SMTPを使わないローカル確認を用意したい場合にも向いています。

使い方の例

  • 「メール確認付きのユーザー登録を設定して」
  • 「登録を受け付けるドメインを制限するルールを作って」
  • 「登録確認メールの保存先と対象ポータルを設定して」

注意点

メール確認だけではログインアカウントは作成されません。確認済み情報は別の登録保管先に保存され、承認とログインストアへの移行は別の管理作業です。保留中の登録はメモリ上にあり、再起動やリロードで失われます。通知には対応するメールまたはファイル型のメッセージプロバイダーが必要です。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(3)

  • SKILL.md7.1 KB
  • agents/openai.yaml260 B
  • references/sqlite-workflows.md8.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Configuration Registrations

Purpose

Use this skill to configure user signup. Read SQLite enrollment for user registration sqlite <name>: confirmation creates a login account with a fixed policy and requires explicit portal selection. The legacy user registration <name> flow below writes a separate approval dropbox. OAuth client registrations retain their own configuration owner.

Legacy dispatch starts in caddyfile_user.go; registration instructions are collected by caddyfile_user_registration.go. The Caddyfile parser injects name <block-name> and kind local, then forwards the block instructions to authcrunch for validation.

Registration flows attach to the target identity store declared by identity store <name> [<realm>]. During authcrunch validation, portals using that identity store get registration enabled for that store and the registry is attached at runtime. Legacy registrations are selected automatically for eligible portals unless a nonempty explicit enable user registration <name> [<name>...] selection is supplied. The portal must also enable each selected registry's identity store. SQLite workflows require explicit registration selection.

Shape

{
	security {
		user registration signup {
			title "User Registration"
			code {env.REGISTER_CODE}
			dropbox assets/config/registrations_local.json
			require accept terms
			require domain mx
			email provider smtp
			admin email admin@example.com
			identity store localdb
			link terms https://example.com/terms
			link privacy https://example.com/privacy
			allow domain example.com
		}

		local identity store localdb {
			realm local
			path assets/config/users.json
		}

		authentication portal myportal {
			enable identity store localdb
		}
	}
}

Required and Defaulted Fields

Authcrunch requires the effective registry config to have name, kind, dropbox, email provider, at least one admin email address, and identity store. In Caddyfile configuration, name comes from the block name and kind local is injected by caddy-security.

title is optional and defaults to Sign Up. code is optional; when present, the registration form requires the exact configured value. require accept terms and require domain mx are optional boolean flags.

The authcrunch parser accepts exactly one admin email address per instruction: admin email <address> or admin emails <address>. Multiple addresses on one line are invalid, and repeated admin-email lines overwrite rather than append.

Supported Lines

The parser forwards registration lines to authcrunch. Supported patterns in authcrunch include:

  • title <name>
  • code <value>
  • dropbox <path>
  • require accept terms
  • require domain mx
  • email provider <name>
  • admin email <address>
  • admin emails <address>
  • identity store <name> [<realm>]
  • link terms <url>
  • link privacy <url>
  • allow domain <string>
  • deny domain <string>
  • allow <exact|partial|prefix|suffix|regex> domain <string>
  • deny <exact|partial|prefix|suffix|regex> domain <string>

Domain restrictions are validated by authcrunch. Matching stops at the first rule that matches the email domain; if no rule matches, the default action is the opposite of the last configured rule. For a simple allow list, use only allow rules. For a simple deny list, use only deny rules.

Coordinate the email provider value with configuration-messaging; despite the directive name, authcrunch can notify through a matching email or file messaging provider or a bound SQLite outbox. Coordinate identity store names with configuration-identity-stores.

Workflow Notes

Registration is not the same as immediate account activation. The user reaches the form from the portal's register link, submits username, password, email, name, optional registration code, and required terms acceptance, then receives an email confirmation link and short passcode. The confirmation passcode is time-limited in authcrunch; when it expires, the user must register again.

After email confirmation, the handler consumes the pending registration, adds the user to the dropbox database and attempts an administrator notification. That database is separate from the target login store. Approval and transfer into the login store remain a separate management operation; no full approval UI is implemented here. Do not edit a serving identity database as a routine approval step. Use a supported management path or arrange an offline import and explicit reload. A notification failure after the dropbox commit is logged and does not undo the committed registration.

Pending registrations are held in the registry's in-memory cache. Reload or restart discards them; the durable dropbox only contains confirmed entries. An expired or lost pending registration must be started again. A supplied password must be plaintext: the selected AuthCrunch rejects reserved password-hash import prefixes on the public registration path, while trusted static-user imports are separate. The HTML form reports invalid input inline with localized messages. Tests should check the rendered message and absence of delivery or persisted users, rather than expecting the internal validator's error text to appear verbatim.

When multiple registrations target different identity stores or realms, use separate dropbox paths. The portal exposes realm-specific registration URLs, for example:

/auth/register/local
/auth/register/userpool1.localdomain

For local validation without SMTP, point email provider at a file messaging provider whose root_dir is a disposable path under this checkout's tmp/. Inspect the confirmation link and passcode in its .eml output using synthetic identities and separate temporary dropbox/login databases. This does not check SMTP authentication, TLS, sender headers or BCC delivery; the messaging skill documents those limits.

Fixtures

Use these examples:

  • testdata/caddyfile_adapt/testcase_authenticate_with_registration.Caddyfile.
  • assets/config/registrations_local.json.

The adaptation/resolution fixture verifies configuration shape and defaults, not a registration journey. TestCaddyPasswordArgon2E2E/public-registration uses the actual executable and a disposable file sender to reject valid, malformed and whitespace-padded bcrypt/Argon2 imports without a message or persisted user; ordinary plaintext reaches confirmation-message delivery. TestCaddySQLiteMessagingE2E also qualifies legacy confirmation, the separate dropbox and administrator notification through real TLS Caddy and SMTP, including restart and worker cleanup. It deliberately verifies that confirmation alone does not create a login account. The lifecycle tests exercise registry ownership and replacement. Do not confuse TestCaddyRegistrationE2E, which covers persisted OAuth client registrations, with user signup. Retain separate acceptance for wrong codes, domain policy, replay/lost pending state and the management activation boundary.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

authentication-portal-api

無料概要あり

認証ポータルのログインやトークン更新、プロフィール、管理APIを利用するHTTPクライアントの仕様確認とトラブル対応を支援します。

  • ポータル向けJSONログインを実装したいとき
  • ブラウザーのトークン更新を調べたいとき
  • ネイティブ認証APIを扱いたいとき
greenpau/caddy-security2,2632026年10月26日 更新

break-fix-troubleshooting

無料概要あり

Caddyの認証・認可まわりで起きた設定や実行時の障害を、設定ファイル、ログ、バージョン、HTTPの証拠から切り分け、最小修正や調査報告にまとめます。

  • ログイン障害の原因を調べたいとき
  • OIDCやSAMLの失敗を切り分けたいとき
  • 最小限の設定修正を探したいとき
greenpau/caddy-security2,2632026年10月26日 更新

coding-directives

無料概要あり

caddy-securityのGoコードやCaddyモジュール、Caddyfileパーサー、HTTP連携の実装・レビューで、境界やライフサイクル、エラー処理の規約を確認するスキルです。

  • Caddyfileパーサーの変更をレビューしたいとき
  • CaddyモジュールやHTTP処理を実装したいとき
  • アプリの起動・終了処理を確認したいとき
greenpau/caddy-security2,2632026年10月26日 更新

configuration

無料概要あり

caddy-securityのCaddyfile全体を作成・点検し、認証方式に合う設定ガイドを選びながらsecurityアプリとHTTPルートを配線するスキルです。

  • Caddyfile全体を作成したいとき
  • 認証ポータルをルートに接続したいとき
  • 保護対象パスに認可ポリシーを設定したいとき
greenpau/caddy-security2,2632026年10月26日 更新

Caddyの認証ポータルとルートへの認証処理を設定し、利用するログイン元やリダイレクト先の信頼条件、更新機能などを組み立てるスキルです。

  • 認証ポータルを新しく構成したいとき
  • ログインに使うストアやプロバイダーを選びたいとき
  • 保護ルートをポータル認証につなぎたいとき
greenpau/caddy-security2,2632026年10月26日 更新

認証ポータルのCookie名や接頭辞、属性、ドメインを設定し、認可ポリシーが探すトークンCookieとの対応を整えます。

  • ポータルのCookie名を一括で変更したいとき
  • Cookie属性やドメインを調整したいとき
  • 更新トークン用Cookie名を上書きしたいとき
greenpau/caddy-security2,2632026年10月26日 更新

greenpau のスキルをすべて見る

このスキルの問題を報告する