ورود یکپارچه
میترا بهصورت پیشفرض برای یک نفر است و ورود به حساب ندارد، که تا وقتی فقط شما به آن دسترسی دارید مشکلی نیست. برای اشتراک یک سرور با خانواده یا تیم، آن را به یک ارائهدهنده OpenID Connect (OIDC) وصل کنید. آنوقت همه با حسابی که از قبل دارند وارد میشوند و تقویمهای خودشان را میگیرند که کس دیگری نمیبیند.
میترا با هر ارائهدهنده OIDC استاندارد کار میکند. افراد آن را از جمله با Pocket ID، Authelia، Authentik، Keycloak و Google استفاده میکنند.
CAUTION
روشن کردن ورود به حساب به هر فرد، از جمله خودتان، حسابی تازه و خالی میدهد. هر چیزی که هنگام تکنفره بودن میترا تنظیم کردهاید نزد آن حساب قدیمی میماند و منتقل نمیشود: حسابهای متصل شما، تنظیماتتان و هر مورد در تقویمهای میترای شما. حسابهای متصل را سریع میشود دوباره اضافه کرد، اما موارد تقویمهای میترا نمیتوانند همراهتان بیایند. پیش از شروع پر کردن میترا ورود به حساب را روشن کنید، یا ابتدا آن موارد را به یک تقویم متصل منتقل کنید (انتقال موارد به… در منوی ⋯ تقویم) و بعداً آن حساب را دوباره وصل کنید.
روشن کردن ورود به حساب
Section titled “روشن کردن ورود به حساب”متغیرهای 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 “چه کسی میتواند وارد شود”هر کسی را که ارائهدهندهتان بگذارد، بار اول که وارد میشود حساب میترا میگیرد. فهرست کاربری برای مدیریت در میترا نیست، پس تصمیم بگیرید چه کسی نزد ارائهدهندهتان بتواند وارد شود، با گروه، تخصیص برنامه یا هر طور که دسترسی را مدیریت میکند. نام و ایمیل هر فرد هر بار که وارد میشود از ارائهدهنده بهروز میشود.
ورود چگونه کار میکند
Section titled “ورود چگونه کار میکند”خود ورود روی سرور انجام میشود (جریان authorization code با PKCE). مرورگر شما فقط یک کوکی میگیرد و هیچ توکنی در ذخیرهسازیاش نگه داشته نمیشود، پس اسکریپت مخرب روی صفحه چیزی برای دزدیدن ندارد.
یک نشست از آخرین باری که از میترا استفاده کردهاید ۳۰ روز دوام میآورد. وقتی MITRA_URL با https:// شروع شود کوکی امن علامت میخورد، و issuer با http:// برای ارائهدهندگانی در شبکه خودتان بدون HTTPS مجاز است. اگر ارائهدهندهتان پشتیبانی کند، خروج از میترا شما را از آنجا هم خارج میکند.
عیبیابی
Section titled “عیبیابی”- میترا شروع نمیشود و نام یک متغیر گمشده را میآورد. وقتی
MITRA_OIDC_ISSUERتنظیم شده،MITRA_OIDC_CLIENT_IDوMITRA_URLهم باید تنظیم شده باشند. - ارائهدهنده از نشانی redirect شکایت میکند. باید دقیقاً
MITRA_URLبههمراه/auth/callbackباشد. - گزارش میگوید discovery شکست خورد. میترا ارائهدهنده را در اولین ورود پیدا میکند و در ورود بعدی دوباره امتحان میکند، پس ارائهدهندهای که بعد از میترا شروع شود خودش درست میشود. اگر همچنان شکست میخورد، نشانی issuer و دسترسی میترا به آن را با سطح گزارش روی
debugبررسی کنید. - تقویمهای من بعد از روشن کردن ورود به حساب رفتند. این انتظار میرود: همه با حساب تازه شروع میکنند. حسابهایتان را دوباره وصل کنید.