Ana içeriğe geç

On-Premise Kurulumda Tek Oturum Açma (SSO)

Bu sayfa, MonoChat’in on-premise kurulumunu işleten yöneticiler içindir. Çalışanlarınızın şirketinizin kimlik sağlayıcısıyla (IdP) OpenID Connect (OIDC) üzerinden nasıl giriş yapacağını anlatır; örneğin Microsoft Entra ID, Okta, Keycloak, AD FS veya Google Workspace.

Tek oturum açma, tenant bazında değil, sunucu ayarlarında tüm kurulum için yapılır. Bir MonoChat hesabı birden fazla tenant’a ait olabilir ve kişiler bir tenant seçmeden önce giriş yapar. Giriş yapmak bir hesap verir, erişim vermez: kişi bir tenant’ı ancak o tenant onu davet edip bir rol verdikten sonra görür.

Giriş nasıl çalışır​

Biri giriş sayfasındaki SSO düğmesine tıkladığında MonoChat, IdP’nizin giriş sayfasını bir açılır pencerede açar. Kişi orada giriş yaptıktan sonra IdP, tarayıcıyı tek kullanımlık bir kodla MonoChat’e geri gönderir. MonoChat sunucusu kodu bir ID token ile değiştirir ve kişiyi içeri almadan önce token’ı denetler:

  • IdP’nin uç noktaları ve imza anahtarları her girişte keşif belgesinden, <issuer>/.well-known/openid-configuration, okunur.
  • Giriş, PKCE (S256), bir state ve bir nonce ile yetkilendirme kodu akışını kullanır. Bir giriş isteği 10 dakika geçerlidir ve bir kez kullanılabilir.
  • ID token, IdP’nin anahtarlarından biriyle imzalanmış olmalı ve sizin issuer değerinizi (iss), client ID’nizi (aud), isteğin nonce değerini ve süresi geçmemiş bir bitiş zamanını (exp) taşımalıdır.
  • ID token kişinin e-posta adresini (email) içermelidir. IdP adresin doğrulanmadığını söylerse (email_verified: false) giriş reddedilir.

1. MonoChat’i kimlik sağlayıcınıza kaydedin​

IdP’nizde MonoChat için şu değerlerle bir uygulama (client) oluşturun:

IdP’deki ayarDeğer
Uygulama türüClient secret’lı web uygulaması (gizli client)
Giriş yönlendirme URI’sihttps://<your MonoChat domain>/api/oauth/oidc/redirect
Grant türüYetkilendirme kodu (authorization code)
Kapsamlar (scopes)openid email profile
Token uç noktasında client kimlik doğrulamasıHTTP Basic kimlik doğrulamasıyla gönderilen client secret (client_secret_basic)

ID token’ın email claim’ini içerdiğinden emin olun. Client ID’yi, client secret’ı ve issuer’ı not edin. Issuer, IdP’nin keşif belgesindeki issuer değeridir. Tipik biçimleri:

Kimlik sağlayıcıIssuer
Microsoft Entra IDhttps://login.microsoftonline.com/<tenant id>/v2.0
Oktahttps://<your Okta domain>/oauth2/default veya https://<your Okta domain>
Keycloakhttps://<your Keycloak host>/realms/<realm>
AD FS (2016 veya üstü)https://<your AD FS host>/adfs
Google Workspacehttps://accounts.google.com

<issuer>/.well-known/openid-configuration adresini tarayıcıda açın ve issuer değerini, sonunda bir / varsa onunla birlikte, aynen kopyalayın. İkisi farklı olduğunda MonoChat kimseyi içeri almaz.

2. Ayarları ekleyin​

oidc bloklarını sunucu ayarlarına ekleyin ve MonoChat’i yeniden başlatın. Herkese açık blok public.oauth altına, gizli blok oauth altına girer:

{
"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"
}
}
}
}
AyarNe yapar
public.oauth.oidc.issuer1. adımdaki issuer
public.oauth.oidc.clientId1. adımdaki client ID
public.oauth.oidc.redirectPath1. adımdaki yönlendirme URI’sinin yolu
public.oauth.oidc.scopeMonoChat’in istediği kapsamlar
public.oauth.oidc.buttonLabelGiriş düğmesinin metni. Boş bırakılırsa kişinin dilinde "SSO ile Giriş Yap" gösterilir
oauth.oidc.clientSecretClient secret. Sunucuda kalır
oauth.oidc.autoCreateAccountstrue, kayıt yalnızca davetle olsa bile (public.disableSignup) kişinin ilk SSO girişinde MonoChat hesabını oluşturur
oauth.oidc.allowedEmailDomainsYalnızca e-posta adresi bu alan adlarından birinde olan kişiler SSO ile giriş yapabilir. Tüm alan adlarına izin vermek için eklemeyin

Ardından SSO düğmesi giriş sayfasında görünür.

Kimler giriş yapabilir​

  • Yeni kişiler. autoCreateAccounts: true ile kişinin ilk SSO girişi hesabını oluşturur. Bu ayar yoksa hesap yalnızca public.disableSignup kapalıysa ya da kişi bir davetten giriş yaparsa oluşturulur.
  • Aynı e-posta adresiyle zaten hesabı olan kişiler. oauth.autoMerge: true ile ilk SSO girişi SSO’yu mevcut hesaba bağlar, ancak yalnızca ID token adresin doğrulandığını söylüyorsa (email_verified: true). Bu koşul sağlanmazsa ya da autoMerge yoksa MonoChat kişiden bir kez parolasıyla giriş yapmasını ister ve SSO’yu hesaba o zaman bağlar; bir tenant’ın davetini kabul etmek de SSO’yu bağlar. Microsoft Entra ID ve AD FS email_verified göndermez; bu yüzden bu sağlayıcılarda, herkes SSO’yu bağlayana kadar parolalı girişe izin vermeye devam edin ya da kişileri yeniden davet edin.
  • İzin verilen alan adları. allowedEmailDomains ile başka bir alan adındaki adres reddedilir. Google Workspace’te (issuer https://accounts.google.com) MonoChat e-posta adresi yerine hesabın Workspace alan adı olan hd claim’ini denetler, çünkü kişisel bir Google hesabı herhangi bir alan adındaki adresi kullanabilir.

SSO’yu tek giriş yöntemi yapın​

  1. public.auth.methods değerini ["oidc"] yapın. Giriş sayfası artık yalnızca SSO düğmesini gösterir ve sunucu parolalı ve sosyal girişleri reddeder.
  2. Root super kullanıcılar (root tenant’ta root super rolüne sahip kullanıcılar) /auth/signin?fallback=1 adresinde parolalarıyla giriş yapmaya devam edebilir; böylece IdP çalışmadığında kurulum kilitli kalmaz.
  3. Yeni SSO hesaplarının kendi tenant’larını açmasını engellemek için public.disableTenantCreation değerini true yapın. Bundan sonra yalnızca bir tenant’ta uygun role sahip kişiler onun altında tenant oluşturabilir.

Ağ​

  • /api/oauth/oidc/authorize ve redirectPath yolunuzu giriş yapan kişiler için erişilebilir tutun. İkisi de onların tarayıcısında açılır.
  • MonoChat sunucusu IdP’nizin keşif belgesine, token uç noktasına ve anahtar kümesine (jwks_uri) HTTPS üzerinden ulaşabilmelidir.

Sınırlar​

  • MonoChat mobil uygulaması henüz SSO sunmuyor. SSO’yu tek giriş yöntemi yaparsanız temsilciler mobil uygulamaya giriş yapamaz.
  • MonoChat’ten çıkış yapmak kişiyi IdP’den çıkarmaz, IdP’den çıkış yapmak da henüz MonoChat’ten çıkarmaz.

Kurulumunuzu kontrol edin​

  1. Giriş sayfasını açın ve SSO düğmesine tıklayın. IdP’nizde giriş yapın; açılır pencere kapanır ve MonoChat’e giriş yapmış olursunuz.
  2. Henüz MonoChat hesabı olmayan bir kişiyle giriş yapın ve hesabın oluşturulduğunu (ya da autoCreateAccounts açık değilse reddedildiğini) doğrulayın.
  3. allowedEmailDomains ayarladıysanız başka bir alan adındaki bir kişiyle deneyin ve girişin reddedildiğini doğrulayın.
  4. public.auth.methods ayarladıysanız parolalı girişin reddedildiğini ve bir root super kullanıcının /auth/signin?fallback=1 adresinde hâlâ giriş yapabildiğini doğrulayın.