رفتن به محتوا

مدیریت۱۷ مهر ۱۴۰۵۳ دقیقه مطالعه

ورود یکپارچه

میترا به‌صورت پیش‌فرض برای یک نفر است و ورود به حساب ندارد، که تا وقتی فقط شما به آن دسترسی دارید مشکلی نیست. برای اشتراک یک سرور با خانواده یا تیم، آن را به یک ارائه‌دهنده OpenID Connect (OIDC) وصل کنید. آن‌وقت همه با حسابی که از قبل دارند وارد می‌شوند و تقویم‌های خودشان را می‌گیرند که کس دیگری نمی‌بیند.

میترا با هر ارائه‌دهنده OIDC استاندارد کار می‌کند. افراد آن را از جمله با Pocket ID، Authelia، Authentik، Keycloak و Google استفاده می‌کنند.

CAUTION

روشن کردن ورود به حساب به هر فرد، از جمله خودتان، حسابی تازه و خالی می‌دهد. هر چیزی که هنگام تک‌نفره بودن میترا تنظیم کرده‌اید نزد آن حساب قدیمی می‌ماند و منتقل نمی‌شود: حساب‌های متصل شما، تنظیماتتان و هر مورد در تقویم‌های میترای شما. حساب‌های متصل را سریع می‌شود دوباره اضافه کرد، اما موارد تقویم‌های میترا نمی‌توانند همراهتان بیایند. پیش از شروع پر کردن میترا ورود به حساب را روشن کنید، یا ابتدا آن موارد را به یک تقویم متصل منتقل کنید (انتقال موارد به… در منوی ⋯ تقویم) و بعداً آن حساب را دوباره وصل کنید.

متغیرهای OIDC را روی container تنظیم کنید:

services:
mitra:
image: ghcr.io/a11delavar/mitra:latest
environment:
MITRA_URL: 'https://mitra.example.com' # the address people use to reach Mitra
MITRA_OIDC_ISSUER: 'https://auth.example.com' # your provider's issuer URL
MITRA_OIDC_CLIENT_ID: 'mitra'
MITRA_OIDC_CLIENT_SECRET: '…' # leave out for a public client

نزد ارائه‌دهنده‌تان، MITRA_URL به‌همراه /auth/callback را به‌عنوان نشانی redirect ثبت کنید:

https://mitra.example.com/auth/callback

ارائه‌دهنده فقط همین را لازم دارد. میترا را با docker compose up -d دوباره راه‌اندازی کنید تا از همه بخواهد وارد شوند.

تنظیم MITRA_OIDC_ISSUER است که ورود به حساب را روشن می‌کند و به MITRA_OIDC_CLIENT_ID و MITRA_URL هم نیاز دارد. اگر یکی‌شان نباشد، میترا از شروع شدن امتناع می‌کند. بی‌صدا بدون ورود به حساب اجرا شدن خیلی بدتر می‌بود.

رمز محرمانه کلاینت و scopeها

Section titled “رمز محرمانه کلاینت و scopeها”

اگر نزد ارائه‌دهنده‌تان رمز محرمانه کلاینت ثبت کرده‌اید، MITRA_OIDC_CLIENT_SECRET را تنظیم کنید. اگر کلاینت عمومی ثبت کرده‌اید، کنارش بگذارید؛ این کاملاً پشتیبانی می‌شود، چون میترا همیشه از PKCE استفاده می‌کند.

میترا scopeهای openid profile email را می‌خواهد. openid الزامی است و دو تای دیگر نام و ایمیل هر فرد را به میترا می‌دهند. فقط اگر ارائه‌دهنده‌تان چیز دیگری لازم دارد آن‌ها را با MITRA_OIDC_SCOPES تغییر دهید.

چه کسی می‌تواند وارد شود

Section titled “چه کسی می‌تواند وارد شود”

هر کسی را که ارائه‌دهنده‌تان بگذارد، بار اول که وارد می‌شود حساب میترا می‌گیرد. فهرست کاربری برای مدیریت در میترا نیست، پس تصمیم بگیرید چه کسی نزد ارائه‌دهنده‌تان بتواند وارد شود، با گروه، تخصیص برنامه یا هر طور که دسترسی را مدیریت می‌کند. نام و ایمیل هر فرد هر بار که وارد می‌شود از ارائه‌دهنده به‌روز می‌شود.

خود ورود روی سرور انجام می‌شود (جریان authorization code با PKCE). مرورگر شما فقط یک کوکی می‌گیرد و هیچ توکنی در ذخیره‌سازی‌اش نگه داشته نمی‌شود، پس اسکریپت مخرب روی صفحه چیزی برای دزدیدن ندارد.

یک نشست از آخرین باری که از میترا استفاده کرده‌اید ۳۰ روز دوام می‌آورد. وقتی MITRA_URL با https:// شروع شود کوکی امن علامت می‌خورد، و issuer با http:// برای ارائه‌دهندگانی در شبکه خودتان بدون HTTPS مجاز است. اگر ارائه‌دهنده‌تان پشتیبانی کند، خروج از میترا شما را از آنجا هم خارج می‌کند.

  • میترا شروع نمی‌شود و نام یک متغیر گم‌شده را می‌آورد. وقتی MITRA_OIDC_ISSUER تنظیم شده، MITRA_OIDC_CLIENT_ID و MITRA_URL هم باید تنظیم شده باشند.
  • ارائه‌دهنده از نشانی redirect شکایت می‌کند. باید دقیقاً MITRA_URL به‌همراه /auth/callback باشد.
  • گزارش می‌گوید discovery شکست خورد. میترا ارائه‌دهنده را در اولین ورود پیدا می‌کند و در ورود بعدی دوباره امتحان می‌کند، پس ارائه‌دهنده‌ای که بعد از میترا شروع شود خودش درست می‌شود. اگر همچنان شکست می‌خورد، نشانی issuer و دسترسی میترا به آن را با سطح گزارش روی debug بررسی کنید.
  • تقویم‌های من بعد از روشن کردن ورود به حساب رفتند. این انتظار می‌رود: همه با حساب تازه شروع می‌کنند. حساب‌هایتان را دوباره وصل کنید.