مدیریت رمزهای عبور متعدد برای سرویسهای داخلی یک سازمان، پاشنه آشیل امنیت است. هر رمز اضافه، یک نقطه شکست جدید ایجاد میکند: فراموشی، استفاده مجدد، فیشینگ و افشای دیتابیس. Pocket ID با تکیه بر فناوری Passkey این چرخه معیوب را میشکند و یک سیستم احراز هویت مرکزی و بدون رمز روی سرور مجازی ایران میسازد.
Pocket ID چیست و چرا با Keycloak تفاوت دارد؟
Pocket ID یک ارائهدهنده هویت متنباز (Open Source Identity Provider) است که بهطور کامل حول Passkey طراحی شده است. برخلاف Keycloak و Authentik که راهکارهای سنگین سازمانی محسوب میشوند، Pocket ID در یک کانتینر Docker با پایگاهداده SQLite اجرا میشود و هیچ وابستگی خارجی ندارد .
این تفاوت معماری، Pocket ID را برای تیمهای کوچک و متوسط که میخواهند یک سیستم ورود یکپارچه (SSO) مدرن راهاندازی کنند، ایدهآل میکند. در حالی که Keycloak نیازمند مدیریت Realm، Client، دیتابیس Postgres و Redis است، Pocket ID تنها با یک فایل docker-compose.yml و چند متغیر محیطی بالا میآید .
طبق آمار رسمی، بیش از ۱۴,۰۰۰ نمونه فعال Pocket ID در حال اجرا هستند و بیش از ۹,۰۰۰ ستاره در GitHub دارد . این یعنی یک پروژه زنده و در حال توسعه که جامعه کاربری آن بهسرعت در حال رشد است.
Passkey چگونه امنیت را بدون رمز عبور تضمین میکند؟
Passkey بر پایه استاندارد WebAuthn ساخته شده است. در این روش، بهجای ارسال رمز عبور به سرور، یک جفت کلید رمزنگاری تولید میشود:
🔹 کلید خصوصی (Private Key): روی دستگاه کاربر (لپتاپ، موبایل، یا کلید سختافزاری) ذخیره میشود و هرگز از آن خارج نمیشود.
🔹 کلید عمومی (Public Key): روی سرور Pocket ID ذخیره میشود و برای بررسی صحت امضای دیجیتال استفاده میشود.
هنگام ورود، سرور یک چالش (Challenge) تولید میکند. دستگاه کاربر با کلید خصوصی آن را امضا میکند و سرور با کلید عمومی امضا را تأیید میکند. در این فرآیند، هیچ داده حساسی منتقل نمیشود و حمله فیشینگ عملاً بیاثر میشود .
مقایسه ورود سنتی با Passkey در سرویسهای سازمانی
| معیار | ورود سنتی با رمز عبور | ورود با Passkey در Pocket ID |
|---|---|---|
| نقطه ضعف اصلی | قابل حدس زدن، قابل افشا | کلید خصوصی از دستگاه خارج نمیشود |
| مقاومت در برابر فیشینگ | صفر | حداکثری (وابسته به دامنه) |
| مدیریت برای ادمین | پیچیده (بازیابی، تغییر دورهای) | کاربر خودش Passkey را ثبت میکند |
| هزینه زیرساخت | متغیر | ۱ کانتینر، SQLite، ~۵۰MB |
⚠️ نکته مهم: Pocket ID فقط از Passkey پشتیبانی میکند و روش جایگزینی مانند رمز عبور یا TOTP ندارد. این یعنی اگر کاربری دستگاه سازگار نداشته باشد (مرورگر قدیمی یا سیستمعامل قدیمی)، امکان ورود نخواهد داشت. این یک محدودیت عمدی است که سادگی و امنیت را قربانی نمیکند .
پیشنیازهای نصب Pocket ID روی سرور مجازی ایران
برای اجرای Pocket ID روی VPS، به حداقل منابع زیر نیاز دارید:
🔹 سیستمعامل: Ubuntu 22.04 یا 24.04 (سایر توزیعهای لینوکس نیز پشتیبانی میشوند)
🔹 رم: حداقل ۱ گیگابایت
🔹 Docker و Docker Compose: نصبشده روی سرور
🔹 دامنه با SSL: الزامی برای Passkey (WebAuthn فقط در بستر HTTPS کار میکند)
📌 توصیه: برای محیطهای سازمانی که پایداری و امنیت اولویت دارد، استفاده از سرور مجازی ایران با دیسک NVMe و منابع اختصاصی، تجربه بهتری از نظر تأخیر شبکه و دسترسی پایدار فراهم میکند.
نصب گامبهگام Pocket ID با Docker Compose
ابتدا Docker را نصب کنید:
apt update && apt upgrade -y apt install docker.io docker-compose -y
سپس یک پوشه برای سرویس ایجاد کرده و فایل Compose را بسازید:
mkdir pocket-id && cd pocket-id nano docker-compose.yml
محتوای فایل را بهصورت زیر تنظیم کنید:
services:
pocket-id:
image: ghcr.io/pocket-id/pocket-id
container_name: pocket-id
restart: always
ports:
- "1411:1411"
volumes:
- ./data:/app/data
environment:
- APP_URL=https://auth.yourdomain.ir
- ENCRYPTION_KEY=your_generated_key_here
- TRUST_PROXY=true
کلید رمزنگاری را با دستور زیر بسازید و در فایل قرار دهید:
openssl rand -base64 32
⚠️ هشدار: مقدار APP_URL باید دقیقاً با آدرس واقعی مرورگر یکسان باشد (شامل https و بدون اسلش انتهایی). Passkey به دامنه (Relying Party ID) متصل است و کوچکترین ناهماهنگی باعث شکست ثبت و تأیید Passkey میشود .
سرویس را اجرا کنید:
docker compose up -d
تنظیم SSL و Reverse Proxy برای Passkey
Pocket ID بدون HTTPS کار نمیکند. اگر از Caddy استفاده میکنید، تنظیمات زیر کافی است:
auth.yourdomain.ir {
reverse_proxy localhost:1411
}
Caddy بهطور خودکار گواهی SSL معتبر دریافت میکند. اگر از Nginx استفاده میکنید، باید گواهی Let’s Encrypt را دستی تنظیم کنید و هدرهای X-Forwarded-Proto را در بلوک proxy ارسال کنید.
زیرساخت سازمانی خود را روی سرور مجازی ایران بنا کنید
Pocket ID، Passkey و سرویسهای خودمیزبان شما به یک بستر پایدار و کمتأخیر نیاز دارند. ایرانیکاسرور با ارائه سرور مجازی ایران با منابع اختصاصی، دیسک NVMe و آپتایم بالا، میزبان ایدهآل برای سیستم احراز هویت سازمانی شماست.
📞 تماس با پشتیبانی: 021-91302460 | ایرانیکاسرور
ساخت اولین کاربر و ثبت Passkey
پس از اجرای سرویس، به آدرس https://auth.yourdomain.ir/setup مراجعه کنید. اولین کسی که به این صفحه دسترسی پیدا کند، ادمین سیستم میشود؛ پس بلافاصله پس از راهاندازی، Passkey ادمین را ثبت کنید .
برای ساخت کاربران جدید، دو روش اصلی وجود دارد :
🔹 ایجاد دستی: از بخش Users در پنل ادمین، کاربر جدید بسازید و یک لینک دعوت (Login Code یا Signup Token) برای او تولید کنید.
🔹 سینک از LDAP: اگر سازمان شما از LDAP استفاده میکند، Pocket ID قابلیت همگامسازی کاربران و گروهها را دارد .
نکته کلیدی این است که ادمین نمیتواند Passkey برای کاربران دیگر ثبت کند. هر کاربر باید شخصاً Passkey خود را روی دستگاهش (Windows Hello، Touch ID، Face ID یا کلید سختافزاری مانند YubiKey) تنظیم کند .
اتصال سرویسهای سازمانی به Pocket ID
Pocket ID از استاندارد OpenID Connect (OIDC) پشتیبانی میکند و با اکثر سرویسهای خودمیزبان سازگار است . برای اتصال هر سرویس، یک OIDC Client در پنل Pocket ID بسازید، Callback URL را تنظیم کنید و Client ID و Secret را در سرویس مقصد وارد کنید.
سرویسهای پرکاربرد قابل اتصال:
🔹 Nextcloud: مدیریت فایل سازمانی با ورود Passkey
🔹 GitLab: مخازن کد و CI/CD
🔹 Grafana: داشبوردهای مانیتورینگ
🔹 Portainer: مدیریت کانتینرهای Docker
🔹 Immich: مدیریت تصاویر (نیازمند پلاگین OIDC)
⚠️ نکته فنی: برخی سرویسها فقط OIDC استاندارد را پیادهسازی کردهاند و از Pushed Authorization Requests (PAR) پشتیبانی نمیکنند. Pocket ID ممکن است خطای invalid_request برگرداند. در این صورت باید گزینه PAR را در تنظیمات SSO سرویس مقصد فعال کنید یا Redirect URI را بهصورت دستی با https تنظیم نمایید .
حداقل منابع سرور مجازی برای Pocket ID
| تعداد کاربران | رم پیشنهادی | پردازنده | مناسب برای |
|---|---|---|---|
| کمتر از ۵۰ | ۱GB | ۱ هسته | تیمهای کوچک، هوملب |
| ۵۰ تا ۲۰۰ | ۲GB | ۲ هسته | شرکتهای متوسط |
| بیش از ۲۰۰ | ۴GB+ | ۲ تا ۴ هسته | سازمانهای بزرگ |
مشکلات رایج و راهحلهای عملی
مشکل ۱: Passkey ثبت نمیشود
علت: عدم تطابق APP_URL با آدرس مرورگر، یا نبود HTTPS.
راهحل: مقدار APP_URL را دقیقاً برابر با آدرس مرورگر قرار دهید (شامل https:// و بدون اسلش انتهایی). گواهی SSL معتبر را بررسی کنید .
مشکل ۲: کاربر دستگاه خود را گم کرده است
راهحل: از قبل به کاربران توصیه کنید چند Passkey روی دستگاههای مختلف (موبایل + لپتاپ + کلید سختافزاری) ثبت کنند. همچنین امکان تولید Login Code یکبارمصرف از پنل ادمین وجود دارد .
مشکل ۳: سرویس متصل نمیشود
بررسیها: Callback URL در Pocket ID دقیقاً با Redirect URI سرویس مقصد مطابقت داشته باشد. اگر از Reverse Proxy استفاده میکنید، مطمئن شوید هدر X-Forwarded-Proto روی https تنظیم شده است .
مشکل دارید؟ تیم فنی ایرانیکاسرور همراه شماست
اگر در راهاندازی Pocket ID، تنظیم Passkey یا اتصال سرویسها به مشکل خوردهاید، کارشناسان ما آماده کمک هستند. همچنین میتوانید سرور خود را برای بررسی رایگان کانفیگ ارسال کنید.
📞 تماس با پشتیبانی: 021-91302460 | ایرانیکاسرور
چرا Passkey آینده احراز هویت سازمانی است؟
رمزهای عبور دههها بزرگترین حفره امنیتی سیستمها بودهاند. فناوری Passkey با حذف رمز از معادله، سه مشکل بنیادین را حل میکند: فیشینگ (چون امضا وابسته به دامنه است)، افشای دیتابیس (چون رمزی وجود ندارد که افشا شود)، و فراموشی (چون چیزی برای به خاطر سپردن نیست).
ترکیب Pocket ID با Passkey روی یک سرور مجازی ایران، سازمان شما را به یک سیستم احراز هویت مدرن، کمهزینه و کاملاً تحت کنترل مجهز میکند؛ بدون وابستگی به سرویسهای ابری خارجی و با حاکمیت داده کامل.
جمعبندی
Pocket ID یک راهکار سبک، امن و ساده برای ساخت سیستم احراز هویت سازمانی بدون رمز عبور است. با نصب آن روی سرور مجازی ایران و اتصال سرویسهای داخلی از طریق OIDC، کاربران فقط با Passkey و بدون وارد کردن رمز، وارد تمام سرویسهای مجاز میشوند. این ترکیب، هم امنیت را بهطور چشمگیری افزایش میدهد و هم بار مدیریتی تیم فناوری اطلاعات را کاهش میدهد.
دیدگاهها
0 دیدگاه برای این مطلب ثبت شده است.