اصلي منځپانګې ته لاړ شئ

د 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 لرونکی ویب اپلیکیشن (پټ کلاینټ)
د ننوتلو د بېرته لېږلو URIhttps://<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 IDhttps://login.microsoftonline.com/<tenant id>/v2.0
Oktahttps://<your Okta domain>/oauth2/default یا https://<your Okta domain>
Keycloakhttps://<your Keycloak host>/realms/<realm>
AD FS (2016 یا نوی)https://<your AD FS host>/adfs
Google Workspacehttps://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.clientSecretclient secret. په سرور کې پاتې کېږي
oauth.oidc.autoCreateAccountstrue د کس په لومړي 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 FS email_verified نه لېږي، نو له دوی سره د پټنوم ننوتلو ته تر هغه وخته اجازه ورکړئ چې ټول SSO وتړي، یا کسان بیا راوبلئ.
  • اجازه لرونکي ډومینونه. د allowedEmailDomains سره د بل هر ډومین پته ردېږي. د Google Workspace لپاره (issuer https://accounts.google.com) MonoChat د برېښنالیک پتې پر ځای hd claim، یعنې د حساب Workspace ډومین، ګوري، ځکه شخصي Google حساب کولی شي د هر ډومین پته وکاروي.

SSO د ننوتلو یوازینۍ لاره کړئ​

  1. public.auth.methods په ["oidc"] وټاکئ. بیا د ننوتلو پاڼه یوازې د SSO تڼۍ ښيي، او سرور د پټنوم او ټولنیزو حسابونو ننوتل ردوي.
  2. root super کاروونکي (هغه کاروونکي چې په ریښه سازمان کې د root super رول لري) لا هم کولی شي په /auth/signin?fallback=1 کې په خپل پټنوم ننوځي، نو که IdP ودرېږي نصب هېڅکله نه بندېږي.
  3. د دې لپاره چې نوي SSO حسابونه خپل سازمانونه پرانه‌نیزي، public.disableTenantCreation په true وټاکئ. بیا یوازې هغه کسان چې په یو سازمان کې مناسب رول لري د هغه لاندې سازمانونه جوړولی شي.

شبکه​

  • /api/oauth/oidc/authorize او خپل redirectPath د ننوتونکو لپاره د لاسرسي وړ وساتئ. دواړه د هغوی په براوزر کې پرانیستل کېږي.
  • د MonoChat سرور باید د HTTPS له لارې ستاسو د IdP د کشف سند، د ټوکن پای ټکي او د کیليو سیټ (jwks_uri) ته ورسېږي.

محدودیتونه​

  • د MonoChat ګرځنده اپ لا SSO نه وړاندې کوي. که SSO د ننوتلو یوازینۍ لاره کړئ، اجنټان نشي کولی ګرځنده اپ ته ننوځي.
  • له MonoChat وتل کس له IdP نه باسي، او له IdP وتل یې لا له MonoChat نه باسي.

خپل تنظیم وګورئ​

  1. د ننوتلو پاڼه پرانیزئ او د SSO تڼۍ کېکاږئ. په خپل IdP کې ننوځئ؛ پاپ اپ کړکۍ بندېږي او تاسو MonoChat ته ننوتي یاست.
  2. د داسې کس سره ننوځئ چې لا د MonoChat حساب نه لري، او تایید کړئ چې حساب جوړ شو (یا رد شو، که مو autoCreateAccounts نه وي فعال کړی).
  3. که مو allowedEmailDomains ټاکلی وي، د بل ډومین له کس سره هڅه وکړئ او تایید کړئ چې ننوتل رد شول.
  4. که مو public.auth.methods ټاکلی وي، تایید کړئ چې د پټنوم ننوتل ردېږي، او یو root super کاروونکی لا هم په /auth/signin?fallback=1 کې ننوتلی شي.