Cognito
itsmostafa/aws-agent-skills
AWS Cognito user authentication and authorization service. An agent skill from itsmostafa/aws-agent-skills.
Configure authorization policies, ACLs, bypasses, identity headers, JWT verification, remote Basic/API-key auth, and direct OAuth without a portal.
$ npx skills add greenpau/caddy-security --skill configuration-authorization -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install greenpau/caddy-security configuration-authorization --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/greenpau/caddy-security.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/configuration-authorization .claude/skills/configuration-authorization && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "configuration-authorization" agent skill from https://github.com/greenpau/caddy-security/tree/main/.codex/skills/configuration-authorization into .claude/skills/configuration-authorization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configuration-authorization", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/greenpau/caddy-security/tree/main/.codex/skills/configuration-authorizationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add greenpau/caddy-security --skill configuration-authorization -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install greenpau/caddy-security configuration-authorization --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/greenpau/caddy-security.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.codex/skills/configuration-authorization .agents/skills/configuration-authorization && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "configuration-authorization" agent skill from https://github.com/greenpau/caddy-security/tree/main/.codex/skills/configuration-authorization into .agents/skills/configuration-authorization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configuration-authorization", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add greenpau/caddy-security --skill configuration-authorization -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install greenpau/caddy-security configuration-authorization --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/greenpau/caddy-security.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.codex/skills/configuration-authorization .cursor/skills/configuration-authorization && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "configuration-authorization" agent skill from https://github.com/greenpau/caddy-security/tree/main/.codex/skills/configuration-authorization into .cursor/skills/configuration-authorization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configuration-authorization", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/greenpau/caddy-security.git --path .codex/skills/configuration-authorization--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add greenpau/caddy-security --skill configuration-authorization -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install greenpau/caddy-security configuration-authorization --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/greenpau/caddy-security.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.codex/skills/configuration-authorization .gemini/skills/configuration-authorization && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "configuration-authorization" agent skill from https://github.com/greenpau/caddy-security/tree/main/.codex/skills/configuration-authorization into .gemini/skills/configuration-authorization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configuration-authorization", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install greenpau/caddy-security configuration-authorizationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add greenpau/caddy-security --skill configuration-authorization -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/greenpau/caddy-security.git skills-src && mkdir -p .github/skills && cp -r skills-src/.codex/skills/configuration-authorization .github/skills/configuration-authorization && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "configuration-authorization" agent skill from https://github.com/greenpau/caddy-security/tree/main/.codex/skills/configuration-authorization into .github/skills/configuration-authorization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configuration-authorization", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add greenpau/caddy-security --skill configuration-authorization -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install greenpau/caddy-security configuration-authorization --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/greenpau/caddy-security.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.codex/skills/configuration-authorization .opencode/skills/configuration-authorization && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "configuration-authorization" agent skill from https://github.com/greenpau/caddy-security/tree/main/.codex/skills/configuration-authorization into .opencode/skills/configuration-authorization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configuration-authorization", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
configuration-authorizationConfigure authorization policies, ACLs, bypasses, identity headers, JWT verification, remote Basic/API-key auth, and direct OAuth without a portal.
Configuration Authorization is an agent skill from greenpau/caddy-security. Configure authorization policies, ACLs, bypasses, identity headers, JWT verification, remote Basic/API-key auth, and direct OAuth without a portal.
Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `agents/openai.yaml`, `references/direct-oauth.md` and `references/typed-acl-fields.md`).
It sits in Backend & APIs, covering Authorization and RBAC, Authentication and OAuth and OpenID Connect. The repository describes itself as: 🔐 Authentication, Authorization, and Accounting (AAA) App and Plugin for Caddy v2. 💎 Implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0 (Github, Google…. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit a48553d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
AUTHP_ACCESS_TOKENJWT_SHARED_KEYALT_ACCESS_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Configuration Authorization loads about 4.2k tokens when it runs, and up to ~8.9k if it reads all its reference files. Until then it costs about 44 tokens; SKILL.md has 1,843 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from greenpau/caddy-security at commit a48553d, republished under its Apache-2.0 licence (© greenpau). 1,843 words, ~4,160 tokens.
.claude/skills/configuration-authorization/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Use this skill to configure authorization policy <name> blocks and the
route-level authorize [<matcher>] with <policy> handler.
Use configuration-http-integrations to place protected routes, select matchers, wire same-host or split-host applications, and check directive ordering.
Use configuration-crypto to configure JWT
verification material, token names/lifetimes, generated or secret-backed keys,
and System API system keys for remote Basic or API-key authentication.
Read these files when details matter:
caddyfile_authz.go for the policy block.caddyfile_authz_acl.go and caddyfile_authz_acl_shortcuts.go for ACLs.caddyfile_authz_bypass.go for bypass rules.caddyfile_authz_crypto.go for token verification keys.caddyfile_authz_inject.go for claim header injection.caddyfile_authz_misc.go for enable, disable, validate, set, and
with.plugin_authz.go for route-level authorize syntax.../go-authcrunch/pkg/authz/config.go and
gatekeeper.go for policy defaults and runtime wiring.../go-authcrunch/pkg/authz/validator/ for token
source, bearer, method/path, path-ACL, source-address, Basic, and API-key
behavior.../go-authcrunch/pkg/acl/ for ACL fields,
aliases, match strategies, and action semantics.{
security {
authorization policy app_policy {
crypto key verify {env.JWT_SHARED_KEY}
set auth url /auth
allow roles authp/admin authp/user
}
}
}
example.com {
route /app* {
authorize with app_policy
reverse_proxy 127.0.0.1:8080
}
}The policy name must match the authorize with <policy> reference.
The policy requires a block with unquoted opening and closing braces; quoted
brace tokens must not terminate or open a policy.
Put auth proxy settings inside the policy block, not inside a block under the
route-level authorize directive. The current route parser only reads the
directive arguments.
A JWT-mode authorization policy must have a name and at least one ACL rule. When no
crypto key ... entries are present, go-authcrunch auto-generates an ES512
sign-verify key with token name access_token and lifetime 900; for real
portal-issued tokens, configure compatible verification material explicitly.
When explicit key entries are present, at least one key must be verify or
sign-verify.
These defaults apply to JWT policies; direct OAuth policies have their own
configuration and reject JWT crypto settings. Defaults applied by
PolicyConfig.Validate() and Gatekeeper.configure():
/authredirect_url302cookie, header, queryAUTHP_SESSION_IDAUTHP_ACCESS_TOKEN, access_token, jwt_access_tokenX-Api-KeyX-Auth-RealmUse set token sources only with cookie, header, and query; the order is
the lookup priority. validate bearer header enables Authorization: Bearer <token> parsing but is not itself a token source name.
Read typed custom ACL fields for acl field
declarations, literal claim keys, typed JSON, adapter ownership and Caddy TLS
qualification, including the unconditional default-action fix in v1.3.11.
Prefer concise shortcuts for common role, origin, issuer, method, and path matches:
allow roles authp/admin authp/user
allow roles authp/guest with get to /public
deny iss untrustedShortcut behavior is not just syntax sugar:
allow <field> <values...> becomes allow log debug; it does not stop later
rules.deny <field> <values...> becomes deny stop log warn.<field> any or <field> * becomes field <field> exists.with <method> to <path> uppercases the method, adds a partial match path
condition, and enables method/path validation.Use explicit ACL rules when comments, actions, or multiple conditions matter:
acl rule {
comment allow users
match role authp/user
allow stop log info
}
acl default denyExplicit rule conditions use go-authcrunch ACL grammar:
match any
match roles authp/admin authp/user
partial match email @example.com
no regex match issuer ^https://untrusted
field origin exists
field picture not existsSupported match strategies are exact (default), partial, prefix,
suffix, and regex; prefix with no for negative matches. Field aliases
include role, group, and groups for roles; issuer for iss;
subject for sub; mail for email; scope for scopes; organization
for org; address, ip, and ipv4 for addr; http_method for method;
and http_path for path.
Explicit actions must start with allow or deny, and may include any,
stop, log [debug|info|warn|error], counter, and tag <value>. With
multiple conditions, the default is match-all; add any to the action for
match-any. A matched deny denies immediately. A matched allow grants access only
if no later matching deny overrides it, unless stop is used. Selected v1.3.11
evaluates acl default/match any even when normalized user data omits exp.
The typed-field reference owns the default-rule ordering regressions.
Use amr to require verified methods, for example inside a policy:
acl rule {
match role authp/user
match amr hwk
allow stop
}AMR is a list: pwd records password proof, otp records TOTP, and hwk
records WebAuthn/U2F. allow amr otp is also a valid shortcut. Credential
inventory and transform-added claims are not evidence that a factor was
completed. The library stamps authoritative evidence after login; the Caddy
challenge E2E verifies that forged transform AMR cannot satisfy a policy.
Direct Basic/API-key proxy authentication also observes current portal/user
challenge requirements.
Use set auth url for the login redirect target and set forbidden url for
authorization failures:
set auth url /auth
set forbidden url /forbidden
set redirect query parameter redirect_url
set redirect status 302
set user identity id
set token sources header query cookie
set session_id cookie name AUTHP_SESSION_ID
set access_token cookie name AUTHP_ACCESS_TOKEN ALT_ACCESS_TOKENCookie name settings map to PolicyConfig.SessionIDCookieName and
AccessTokenCookieNames. Explicit access lists replace defaults. Caddy pins
absent settings during runtime resolution so AuthCrunch cannot discover custom
names from unrelated portals. Coordinate both names explicitly when a portal
uses set cookie name prefix PORTAL; see
portal cookie precedence and policy coordination.
Session IDs are correlation values, not access credentials. Multiple access
names belong on one line; empty names, duplicate names, repeated settings, and
extra session-name arguments are rejected.
set auth url must match where the referenced authentication portal is served.
Use the same-host portal path such as /auth or /xauth, or the full URL for
a split-host or root-mounted dedicated auth host. The HTTP integration route
above owns mount selection and auth URL alignment.
go-authcrunch v1.3.6 preserves the full application return URL over HTTP/1.1,
HTTP/2 and HTTP/3, including authority/port, escaped path and raw query. The
configured auth URL remains the outer destination, including direct portal
OAuth callback URLs. Decode redirect_url once to inspect the return URL.
An authority-looking path such as //other.example/private stays on the
application origin. JavaScript redirects also preserve the browser fragment.
The library classifies RequestURI, since HTTP/3 can populate an absolute
r.URL for an origin-form request target. Keep this logic in AuthCrunch;
do not rewrite Caddy request fields, build another redirect, or disable HTTP/3.
Split-host completion still requires compatible access-token keys, cookie domain/path and an explicit trusted application return destination. A correct redirect does not relax the portal allowlist. Forwarded origin selection follows Caddy edge trust; separate forwarded port/prefix hints remain stripped.
set redirect status accepts only 300 through 308. When set forbidden url is
present, access-denied decisions redirect with status 303; {uri},
{http.request.uri}, and {url} placeholders are replaced at request time.
Use validation and behavior toggles deliberately:
validate bearer header
validate method path
validate path acl
validate source address
enable js redirect
enable strip token
enable login hint
enable login hint with email phone
enable additional scopes
disable auth redirect query
disable auth redirectvalidate method path enables policy method/path evaluation without requiring
a token path claim. validate path acl additionally requires token path claims.
Token path claims
use exact matching or * and ** wildcards, not regular expressions. *
matches one or more ASCII letters, digits, underscores, dots, tildes or hyphens;
** also spans slashes. Punctuation is literal: /tenant.v1/** cannot grant
/tenantXv1/file, and parentheses or | cannot expand a token's authority.
This differs from explicit regex match path policy conditions.
validate source address compares the token address claim to the request
source address. enable strip token removes the accepted credential from its
actual source: bearer/named header, Basic/API-key header, query or cookie.
Unrelated request headers, query arguments and cookies remain. Token sources
and validation still determine which credential can authorize the request.
The selected go-authcrunch v1.3.6 checks every original, decoded and cleaned
path interpretation whenever method/path or token path-claim validation is
enabled. Every interpretation must satisfy the policy and any required claim;
this also applies to cached identities. Cleaning must not turn
/admin/../public/file into a new grant. Repeated encoding cannot hide a
protected intermediate path before ending at an allowed path.
The library considers cleaning before and after decoding, preserves trailing
slashes, and allows at most four additional decoding passes after Go's initial
URL parsing. Remaining encoded bytes at that limit, mixed valid/invalid escapes,
invalid UTF-8 and initially encoded slashes fail closed. Encoded slashes are
ambiguous because routers disagree about whether they delimit segments.
Literal percent text such as /public/100%25 remains usable when every
interpretation is allowed. Query strings do not participate in path checks.
These checks leave the request URL unchanged for downstream handlers. Keep
authorize ahead of application rewrites or prefix stripping so it sees the
original target; the library cannot recover a path that earlier middleware
already discarded. Ordinary role-only policies do not enable path validation.
For API key or basic auth proxying, configure a portal and realm:
with basic auth portal myportal realm local
with api key auth portal myportal realm local
with api key header name X-Api-Key
with auth realm header name X-Auth-RealmBasic/API-key auth is consulted after normal token sources fail. The request
realm must match with auth realm header name, defaulting to X-Auth-Realm;
failed Basic or API-key auth returns 401.
Client checks for Basic and API-key auth:
curl -H 'X-Auth-Realm: local' --user 'jsmith:My@Password123' https://app.example.com/api/foo
curl -H 'X-Auth-Realm: local' -H 'X-Api-Key: <api-key>' https://app.example.com/api/fooIf clients cannot send X-Auth-Realm, set a default before authorize with
Caddy's request_header directive:
route /api/* {
request_header +X-Auth-Realm "local"
authorize with api_policy
}A malformed API key or failed Basic credential should return 401. If the API
key header name is wrong or absent, the policy may treat the request like an
unauthenticated browser request and redirect to the auth URL unless
disable auth redirect is set. For multiple realms, configure one
with basic auth portal ... realm ... or with api key auth portal ... realm ... line per accepted realm and require clients to send the matching realm
header.
Bypass authorization only for paths that do not need authenticated user metadata:
bypass uri exact /healthz
bypass uri prefix /assets/
bypass uri regex ^/public/.*Bypass match types are exact, partial, prefix, suffix, and regex.
The same decoding/cleaning checks above apply even without path-validation
options: each interpretation must match some configured bypass rule. An
ambiguous target receives normal authentication/authorization instead of a
bypass. A bypass grants no authenticated identity or claim metadata.
Inject claims only when an upstream explicitly expects them:
inject headers with claims
inject header "X-User-Email" from emailinject headers with claims sets default X-Token-* headers for name, email,
roles, and subject. Custom inject header entries map a header name to a claim
field and are applied only after a user is authorized. Configured destination
headers are cleared before authentication, including deny and bypass paths, so
client-supplied identity values cannot survive as trusted claims.
A policy can own the external OAuth login/session flow without a portal, local store, or JWT key. It rejects JWT crypto and conflicting auth mechanisms. Read direct OAuth configuration for provider selection, callback/logout routing, cookies, capacity, claims, and persistence. All callbacks and handled responses stay with the authorization handler; unauthenticated requests must not reach the protected upstream.
Use these examples:
caddyfile_authz_test.go for detailed ACL and misc behavior.testdata/caddyfile_adapt/testcase_authorize_ok.Caddyfile.testdata/caddyfile_adapt/testcase_authenticate_with_oauth.Caddyfile.TestAuthzPathDelegation checks the Caddy authentication provider's decisions,
identity metadata and preservation of the original URL. TestCaddyAuthorizationPathE2E
adapts policies and exercises real Caddy TLS over HTTP/1.1 and HTTP/2: bypasses,
method/path rules, token path claims, cached identities, encoded traversal,
invalid UTF-8 and concurrent literal wildcard grants. Denials assert that the
downstream handler was never reached; successful requests retain their URI.
TestAuthzRedirectRequestTargets exercises the actual authorization wrapper
with origin-form, absolute-form and HTTP/3 request representations, both
renderers and unchanged downstream request fields. TestCaddyAuthorizationRedirectE2E
checks separate app/portal hosts over verified HTTP/1.1, HTTP/2 and UDP/QUIC
HTTP/3, HEAD/GET redirects, local password and synthetic OAuth login, shared
cookies and final resource authorization. Its Chrome journeys assert the
negotiated protocol and execute JavaScript fragment redirects. The suite also
retains untrusted-return rejection, custom/disabled queries, status selection
and proxy trust. See redirect qualification.
TestAuthzPathDelegation and
TestCaddyAuthorizationPathE2E cover this boundary.© greenpau, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in .codex/skills/configuration-authorization of greenpau/caddy-security.
Open the folder on GitHubat commit a48553d
Configuration Authorization next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Configuration Authorization this skillgreenpau/caddy-security | 2.3k | — | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Cognitoitsmostafa/aws-agent-skills | 1.2k | 1 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Auth Implementation Patternsynulihao/AgentSkillOS | 617 | 10 repos | ~4.4k | Automated safety check: Pass | None | |
| Supercheck Security Authsupercheck-io/supercheck | 215 | — | ~1.2k | Automated safety check: Pass | AGPL-3.0 | |
| Authenticationcodewithmukesh/dotnet-claude-kit | 751 | 1 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Discover APIrand/cc-polymath | 181 | 1 repos | ~1.5k | Automated safety check: Pass | MIT |
itsmostafa/aws-agent-skills
AWS Cognito user authentication and authorization service. An agent skill from itsmostafa/aws-agent-skills.
ynulihao/AgentSkillOS
Master authentication and authorization patterns including JWT, OAuth2, session management, and RBAC to build secure, scalable access control systems.
supercheck-io/supercheck
Work on Supercheck authentication, RBAC, tenant isolation, sessions, API and trigger keys, invitations, project membership, project variables, OAuth, super-admin behavior, SSRF, or…
codewithmukesh/dotnet-claude-kit
Authentication and authorization for ASP.NET Core. An agent skill from codewithmukesh/dotnet-claude-kit.
rand/cc-polymath
Automatically discover API design skills when working with REST APIs, GraphQL schemas, API authentication, OAuth, JWT, rate limiting, API versioning, error handling, or endpoint design.
rohitg00/awesome-claude-code-toolkit
Authentication and authorization patterns including OAuth2, JWT, RBAC, session management, and PKCE flows
greenpau/caddy-security
Build or troubleshoot portal JSON/native login clients, refresh, profile and admin APIs, and public JWKS.
greenpau/caddy-security
Implement or review caddy-security Go code, Caddy modules, parsers, lifecycle, and HTTP delegation.
greenpau/caddy-security
Build or review caddy-security Caddyfiles and select focused configuration skills.
greenpau/caddy-security
Configure portal/policy JWT keys, token names and lifetimes, key loading and generation, public-key discovery, and System API encryption keys.
greenpau/caddy-security
Mount authenticate and authorize handlers, separate portal and protected routes, align auth URLs, and preserve trusted proxy metadata.
greenpau/caddy-security
Configure durable AuthCrunch runtime state, exclusive storage ownership, stop/start persistence, reload rejection, and recovery.
Categories
Configure authorization policies, ACLs, bypasses, identity headers, JWT verification, remote Basic/API-key auth, and direct OAuth without a portal. Configuration Authorization is an agent skill from greenpau/caddy-security. Configure authorization policies, ACLs, bypasses, identity headers, JWT verification, remote Basic/API-key auth, and direct OAuth without a portal.
Configuration Authorization fits situations like: tasks that involve Authorization and RBAC; tasks that involve Authentication; tasks that involve OAuth and OpenID Connect.
Run `npx skills add greenpau/caddy-security --skill configuration-authorization -a claude-code`. Or copy the skill folder (.codex/skills/configuration-authorization in greenpau/caddy-security) into .claude/skills/configuration-authorization in your project. Claude Code loads it when a task matches its description.
Run `npx skills add greenpau/caddy-security --skill configuration-authorization -a codex`. Or copy the skill folder (.codex/skills/configuration-authorization in greenpau/caddy-security) into .agents/skills/configuration-authorization in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add greenpau/caddy-security --skill configuration-authorization -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/configuration-authorization, .gemini/skills/configuration-authorization, .github/skills/configuration-authorization and .opencode/skills/configuration-authorization in your project.
Going by SKILL.md and its folder, Configuration Authorization needs the command-line tools its instructions call (curl) and credentials named AUTHP_ACCESS_TOKEN, JWT_SHARED_KEY and ALT_ACCESS_TOKEN. Our summary lists: A credential in JWT_SHARED_KEY; A credential in AUTHP_ACCESS_TOKEN.
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Configuration Authorization is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Configuration Authorization: Cognito (itsmostafa/aws-agent-skills, 1.2k stars), Auth Implementation Patterns (ynulihao/AgentSkillOS, 617 stars), Supercheck Security Auth (supercheck-io/supercheck, 215 stars) and Authentication (codewithmukesh/dotnet-claude-kit, 751 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
greenpau (a GitHub user) maintains it in greenpau/caddy-security, which has 2,251 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 5, 2026.
Source: greenpau/caddy-security on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.