د On-Premise نصب لپاره یو ځلي ننوتل (SSO)
دا پاڼه د MonoChat د On-Premise نصب د چلوونکو لپاره ده. دا تشریح کوي چې څنګه خپلو کارکوونکو ته اجازه ورکړئ چې د OpenID Connect (OIDC) له لارې د خپل شرکت د هویت چمتو کوونکي (IdP) سره ننوځي، لکه Microsoft Entra ID، Okta، Keycloak، AD FS یا Google Workspace.
یو ځلي ننوتل د سرور په تنظیماتو کې د ټول نصب لپاره جوړېږي، نه د هر سازمان لپاره. د MonoChat یو حساب کېدای شي له څو سازمانونو سره تړاو ولري، او خلک د یو سازمان له ټاکلو مخکې ننوځي. ننوتل حساب ورکوي، لاسرسی نه: یو کس یو سازمان یوازې هغه وخت ویني چې هغه سازمان یې راوبلي او رول ورکړي.
ننوتل څنګه کار کوي
کله چې څوک د ننوتلو په پاڼه کې د SSO تڼۍ کېکاږي، MonoChat ستاسو د IdP د ننوتلو پاڼه په یوه پاپ اپ کړکۍ کې پرانیزي. وروسته له دې چې کس هلته ننوځي، IdP براوزر د یو ځلي کوډ سره MonoChat ته بېرته لېږي. د MonoChat سرور کوډ په ID ټوکن بدلوي او د کس له ننویستلو مخکې یې ګوري:
- د IdP پای ټکي او د لاسلیک کیلي په هر ننوتلو کې د هغه د کشف له سند،
<issuer>/.well-known/openid-configuration، څخه لوستل کېږي. - ننوتل د PKCE (S256)، یو
stateاو یوnonceسره د authorization code جریان کاروي. د ننوتلو غوښتنه 10 دقیقې اعتبار لري او یو ځل کارول کېدای شي. - ID ټوکن باید د IdP په یوې کیلي لاسلیک شوی وي او ستاسو issuer (
iss)، ستاسو client ID (aud)، د غوښتنېnonceاو داسې پای نېټه (exp) ولري چې لا تېره شوې نه وي. - ID ټوکن باید د کس برېښنالیک پته (
email) ولري. کله چې IdP ووايي چې پته نه ده تایید شوې (email_verified: false)، ننوتل ردېږي.
1. MonoChat د خپل هویت چمتو کوونکي سره ثبت کړئ
په خپل IdP کې د MonoChat لپاره د دې ارزښتونو سره یو اپلیکیشن (کلاینټ) جوړ کړئ:
| په IdP کې تنظیم | ارزښت |
|---|---|
| د اپلیکیشن ډول | د client secret لرونکی ویب اپلیکیشن (پټ کلاینټ) |
| د ننوتلو د بېرته لېږلو URI | https://<your MonoChat domain>/api/oauth/oidc/redirect |
| د Grant ډول | Authorization code |
| ساحې (Scopes) | openid email profile |
| د ټوکن په پای ټکي کې د کلاینټ تصدیق | client secret چې د HTTP Basic تصدیق سره لېږل کېږي (client_secret_basic) |
ډاډ ترلاسه کړئ چې ID ټوکن د email claim لري. client ID، client secret او issuer یادداشت کړئ. issuer د IdP د کشف په سند کې د issuer ارزښت دی. معمول بڼې:
| د هویت چمتو کوونکی | Issuer |
|---|---|
| Microsoft Entra ID | https://login.microsoftonline.com/<tenant id>/v2.0 |
| Okta | https://<your Okta domain>/oauth2/default یا https://<your Okta domain> |
| Keycloak | https://<your Keycloak host>/realms/<realm> |
| AD FS (2016 یا نوی) | https://<your AD FS host>/adfs |
| Google Workspace | https://accounts.google.com |
په براوزر کې <issuer>/.well-known/openid-configuration پرانیزئ او د هغه issuer ارزښت دقیق کاپي کړئ، که په پای کې / ولري هغه هم. کله چې دواړه توپیر ولري، MonoChat هېڅوک نه ننباسي.
2. تنظیمات اضافه کړئ
د oidc بلاکونه د سرور تنظیماتو ته اضافه کړئ او MonoChat بیا پیل کړئ. عامه بلاک د public.oauth لاندې ځي او پټ بلاک د oauth لاندې:
{
"oauth": {
"oidc": {
"clientSecret": "<client secret>",
"autoCreateAccounts": true,
"allowedEmailDomains": ["company.com"]
}
},
"public": {
"oauth": {
"oidc": {
"issuer": "https://login.microsoftonline.com/<tenant id>/v2.0",
"clientId": "<client id>",
"redirectPath": "/api/oauth/oidc/redirect",
"scope": "openid email profile",
"buttonLabel": "Sign in with Company SSO"
}
}
}
}
| تنظیم | څه کوي |
|---|---|
public.oauth.oidc.issuer | د 1 ګام issuer |
public.oauth.oidc.clientId | د 1 ګام client ID |
public.oauth.oidc.redirectPath | د 1 ګام د بېرته لېږلو URI لار |
public.oauth.oidc.scope | هغه ساحې چې MonoChat یې غواړي |
public.oauth.oidc.buttonLabel | د ننوتلو د تڼۍ متن. که تش وي، د کس په ژبه "د SSO سره ننوتل" ښيي |
oauth.oidc.clientSecret | client secret. په سرور کې پاتې کېږي |
oauth.oidc.autoCreateAccounts | true د کس په لومړي SSO ننوتلو کې د MonoChat حساب جوړوي، حتی کله چې نوم لیکنه یوازې د بلنې له لارې وي (public.disableSignup) |
oauth.oidc.allowedEmailDomains | یوازې هغه کسان چې برېښنالیک یې په دې ډومینونو کې وي د SSO له لارې ننوتلی شي. د ټولو ډومینونو د اجازې لپاره یې مه اچوئ |
بیا د SSO تڼۍ د ننوتلو په پاڼه کې ښکاري.
څوک ننوتلی شي
- نوي کسان. د
autoCreateAccounts: trueسره د کس لومړی SSO ننوتل د هغه حساب جوړوي. له دې پرته، حساب یوازې هغه وخت جوړېږي چېpublic.disableSignupبند وي یا کس له بلنې ننوځي. - هغه کسان چې له مخکې د همدې برېښنالیک سره حساب لري. د
oauth.autoMerge: trueسره لومړی SSO ننوتل SSO له موجوده حساب سره تړي، خو یوازې هغه وخت چې ID ټوکن ووايي پته تایید شوې ده (email_verified: true). که داسې نه وي، او لهautoMergeپرته تل، MonoChat له کس غواړي چې یو ځل په خپل پټنوم ننوځي او بیا SSO له حساب سره تړي؛ یو سازمان ته د بلنې منل هم SSO تړي. Microsoft Entra ID او AD FSemail_verifiedنه لېږي، نو له دوی سره د پټنوم ننوتلو ته تر هغه وخته اجازه ورکړئ چې ټول SSO وتړي، یا کسان بیا راوبلئ. - اجازه لرونکي ډومینونه. د
allowedEmailDomainsسره د بل هر ډومین پته ردېږي. د Google Workspace لپاره (issuerhttps://accounts.google.com) MonoChat د برېښنالیک پتې پر ځایhdclaim، یعنې د حساب Workspace ډومین، ګوري، ځکه شخصي Google حساب کولی شي د هر ډومین پته وکاروي.
SSO د ننوتلو یوازینۍ لاره کړئ
public.auth.methodsپه["oidc"]وټاکئ. بیا د ننوتلو پاڼه یوازې د SSO تڼۍ ښيي، او سرور د پټنوم او ټولنیزو حسابونو ننوتل ردوي.- root super کاروونکي (هغه کاروونکي چې په ریښه سازمان کې د root super رول لري) لا هم کولی شي په
/auth/signin?fallback=1کې په خپل پټنوم ننوځي، نو که IdP ودرېږي نصب هېڅکله نه بندېږي. - د دې لپاره چې نوي SSO حسابونه خپل سازمانونه پرانهنیزي،
public.disableTenantCreationپهtrueوټاکئ. بیا یوازې هغه کسان چې په یو سازمان کې مناسب رول لري د هغه لاندې سازمانونه جوړولی شي.
شبکه
/api/oauth/oidc/authorizeاو خپلredirectPathد ننوتونکو لپاره د لاسرسي وړ وساتئ. دواړه د هغوی په براوزر کې پرانیستل کېږي.- د MonoChat سرور باید د HTTPS له لارې ستاسو د IdP د کشف سند، د ټوکن پای ټکي او د کیليو سیټ (
jwks_uri) ته ورسېږي.
محدودیتونه
- د MonoChat ګرځنده اپ لا SSO نه وړاندې کوي. که SSO د ننوتلو یوازینۍ لاره کړئ، اجنټان نشي کولی ګرځنده اپ ته ننوځي.
- له MonoChat وتل کس له IdP نه باسي، او له IdP وتل یې لا له MonoChat نه باسي.
خپل تنظیم وګورئ
- د ننوتلو پاڼه پرانیزئ او د SSO تڼۍ کېکاږئ. په خپل IdP کې ننوځئ؛ پاپ اپ کړکۍ بندېږي او تاسو MonoChat ته ننوتي یاست.
- د داسې کس سره ننوځئ چې لا د MonoChat حساب نه لري، او تایید کړئ چې حساب جوړ شو (یا رد شو، که مو
autoCreateAccountsنه وي فعال کړی). - که مو
allowedEmailDomainsټاکلی وي، د بل ډومین له کس سره هڅه وکړئ او تایید کړئ چې ننوتل رد شول. - که مو
public.auth.methodsټاکلی وي، تایید کړئ چې د پټنوم ننوتل ردېږي، او یو root super کاروونکی لا هم په/auth/signin?fallback=1کې ننوتلی شي.