本文へ移動
cccskills
無料GitHub で公開

admin-auth-guide

Admin authentication and authorization system reference — login flow, JWT, TOTP, sessions, RBAC

インストール方法を見る

含まれるファイル(2)

  • SKILL.md3.1 KB
  • source.json614 B

SKILL.md(原文)

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

Admin Auth & Authorization Guide

Authentication Flow

Step 1: Telegram Login

  • User clicks "Login with Telegram" widget
  • Frontend sends Telegram init_data to Login Backend (:8082)
  • Login Backend validates hash signature against bot token
  • Extracts tg_id from init_data

Step 2: First-Time Setup

If admin user has no TOTP configured:

  1. Generate TOTP secret (encrypted with AES-GCM, key from LOGIN_TOTP_SECRET_KEY)
  2. Return QR code + recovery codes to frontend
  3. User scans QR in authenticator app
  4. User confirms with TOTP code
  5. User sets initial password (bcrypt hashed)

Step 3: Returning Login

  1. Verify TOTP code (6-digit)
  2. Verify password (bcrypt)
  3. Issue JWT token

Step 4: JWT Token

Claims:

{
  "sub": "admin_user_uuid",
  "sid": "session_uuid",
  "role": "admin|superadmin|...",
  "exp": "...",
  "iat": "..."
}
  • Signed with LOGIN_JWT_SECRET (must match ADMIN_WEB_JWT_SECRET in backend)
  • Frontend stores in memory/localStorage

Step 5: Session Management

  • Server-side session in admin_sessions table
  • Session has idle timeout (ADMIN_WEB_SESSION_IDLE_TIMEOUT, default 30m)
  • Session has max lifetime (LOGIN_SESSION_MAX_LIFETIME, default 12h)
  • Each API request refreshes idle timeout
  • Session deleted on logout

Backend Auth Middleware

AdminWebAuthMiddleware

Location: backend/internal/transport/http/middleware/

  1. Extract Authorization: Bearer <token> header
  2. Validate JWT signature and expiration
  3. Extract sid claim
  4. Check session exists in admin_sessions table
  5. Check session not expired (idle + max lifetime)
  6. Refresh idle timeout
  7. Set identity in request context

RequireAdminRoleOrPermission

Location: backend/internal/app/apiapp/routes.go

Two modes (ADMIN_AUTHZ_MODE):

  • dual: check legacy role allowlist OR permission-based access
  • permission_only: only check permissions (target mode)

Permissions are granular: view_metrics, export_data, manage_users, moderate_content, manage_access, manage_settings, etc.

Key Files

FilePurpose
adminpanel/backend/login/Login backend service
backend/internal/services/adminacl/Admin ACL service
backend/internal/repo/postgres/admin_session_repo.goSession repository
backend/internal/transport/http/middleware/Auth middleware
adminpanel/frontend/src/admin/Frontend auth layer
adminpanel/frontend/src/lib/adminAuthApi.tsAuth API client
adminpanel/frontend/src/pages/LoginPage.tsxLogin UI

Environment Variables

# Login Backend
LOGIN_JWT_SECRET=<shared-with-backend>
LOGIN_TOTP_SECRET_KEY=<base64-32-byte-AES-key>
LOGIN_TELEGRAM_BOT_TOKEN=<telegram-bot-token>
LOGIN_SESSION_IDLE_TIMEOUT=30m
LOGIN_SESSION_MAX_LIFETIME=12h
LOGIN_DEV_MODE=true  # enables debug init_data login

# Backend
ADMIN_WEB_JWT_SECRET=<must-match-LOGIN_JWT_SECRET>
ADMIN_WEB_SESSION_IDLE_TIMEOUT=30m
ADMIN_AUTHZ_MODE=dual  # or permission_only

レビュー

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

同じリポジトリのスキル

概要と使いどころ

007

無料

Security audit, hardening, threat modeling (STRIDE/PASTA), Red/Blue Team, OWASP checks, code review, incident response, and infrastructure security for any project.

日本語の概要は準備中です。原文の説明を表示しています。

aibot88/sec_skill_store42026年5月27日 更新

Guides the creation of agile user stories and Gherkin feature files. Use when the user wants to create a user story, write acceptance criteria, define Gherkin scenarios, or author BDD feature files. This should trigger for requests such as Create a user story; Write a user story; I need to write a user story. Part of cursor-rules-java project

日本語の概要は準備中です。原文の説明を表示しています。

aibot88/sec_skill_store42026年5月27日 更新

Facilitates conversational discovery to create Architectural Decision Records (ADRs) for non-functional requirements using the ISO/IEC 25010:2023 quality model. Use when the user wants to document quality attributes, NFR decisions, security/performance/scalability architecture, or design systems with measurable quality criteria. This should trigger for requests such as Create ADR for Non-functional requirements; Document Non-functional requirements; Capture Non-functional requirements; Generate Non-functional requirements in an ADR. Part of cursor-rules-java project

日本語の概要は準備中です。原文の説明を表示しています。

aibot88/sec_skill_store42026年5月27日 更新

Run a health check on an existing project: dependency audit, security scan, test runner detection, CI/CD evaluation, and missing configuration analysis. Maps the three execution gates (pre/in/post) from /10x-bootstrapper to an assessment framework for existing codebases. Reads optional context/foundation/stack-assessment.md from /10x-stack-assess to focus checks on identified gaps. Writes context/foundation/health-check.md with findings, prioritized fixes, and an agent-readiness verdict. Use when the user has an existing project and wants to verify its health before working with an agent. Trigger phrases: "health check", "check my project", "audit my project", "is my project healthy", "sprawdź projekt", "audyt projektu", "health-check", "project health". Use AFTER /10x-stack-assess (brownfield chain), BEFORE agent onboarding (m1-l4).

日本語の概要は準備中です。原文の説明を表示しています。

aibot88/sec_skill_store42026年5月27日 更新

10x-team

無料

You MUST use this when building projects end-to-end. Orchestrates all 12 team roles — automatically switches between CTO, architect, PM, engineers, SRE, security, DBA, QA, and EM based on the current phase of work. Starts with brainstorming before any implementation.

日本語の概要は準備中です。原文の説明を表示しています。

aibot88/sec_skill_store42026年5月27日 更新

Use when you need to add or configure Maven plugins in your pom.xml — including quality tools (enforcer, surefire, failsafe, jacoco, pitest, spotbugs, pmd), security scanning (OWASP), code formatting (Spotless), version management, container image build (Jib), build information tracking, and benchmarking (JMH) — through a consultative, modular step-by-step approach that only adds what you actually need. This should trigger for requests such as Add Maven plugins in pom.xml; Improve Maven plugins in pom.xml. Part of cursor-rules-java project

日本語の概要は準備中です。原文の説明を表示しています。

aibot88/sec_skill_store42026年5月27日 更新

aibot88 のスキルをすべて見る

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