Kurumsal SSO (SAML 2.0 / OpenID Connect)
Pushizo paneline girişi kimlik sağlayıcınıza (Okta, Microsoft Entra ID, Google Workspace, Keycloak, OneLogin…) bağlayın. SSO Enterprise planındadır. Kararlar: ADR-0023.
Pushizo paneline girişi kimlik sağlayıcınıza (Okta, Microsoft Entra ID, Google Workspace, Keycloak, OneLogin…) bağlayın. SSO Enterprise planındadır. Kararlar: docs/adr/0023-kurumsal-kimlik-sso-scim-jwt.md.
1. Alan adını doğrulayın
Organizasyon → Güvenlik ve SSO → Alan adları bölümüne şirket e-posta alan adınızı ekleyin (ör. sirket.com). Gösterilen TXT kaydını DNS'e ekleyip Doğrula'ya basın:
| Ad | Değer |
|---|---|
_pushizo-verify.sirket.com | pushizo-verify=<belirteç> |
SSO yalnızca doğrulanmış alan adlarındaki e-postaları kabul eder; kimlik sağlayıcı başka bir alan adını onaylasa bile hesap eşlenmez. Bir alan adı aynı anda yalnızca bir organizasyonda doğrulanabilir.
2. Bağlantı oluşturun
SSO bağlantıları → Yeni bağlantı. Bağlantı taslak olarak kaydedilir; Kimlik sağlayıcıya girilecek değerler bölümündeki SP değerlerini IdP'nize girin.
OpenID Connect
| Pushizo alanı | Açıklama |
|---|---|
| Issuer URL | ör. https://sirket.okta.com, https://login.microsoftonline.com/<tenant>/v2.0, https://keycloak.sirket.com/realms/<realm> — uç noktalar .well-known/openid-configuration'dan doldurulur |
| Client ID / Client secret | IdP'de oluşturduğunuz "Web" uygulamasının değerleri (sır şifreli saklanır, bir daha gösterilmez) |
| Grup talebi | Rol eşleme için grupların geldiği talep (varsayılan groups) |
IdP'de yönlendirme (redirect) URI olarak https://<API>/sso/oidc/<bağlantı>/callback girin. Akış: Authorization Code + PKCE (S256) + nonce; id_token imzası, issuer, audience ve süre doğrulanır. email talebi zorunludur; email_verified: false reddedilir.
SAML 2.0
| Pushizo alanı | IdP değeri |
|---|---|
| IdP Entity ID | Issuer / Entity ID |
| IdP SSO URL | SAML 2.0 HTTP-Redirect SSO adresi |
| IdP imzalama sertifikası | X.509 (PEM veya base64). Sertifika döndürmede yenisini ekleyin |
IdP'ye girilecekler: SP Entity ID / Audience = https://<API>/sso/saml/<bağlantı>/metadata, ACS (Reply) URL = https://<API>/sso/saml/<bağlantı>/acs, NameID biçimi emailAddress. Metadata dosyası aynı adresten indirilebilir. Assertion imzalı olmalıdır; InResponseTo, Audience, NotBefore/NotOnOrAfter (120 sn tolerans) denetlenir ve aynı assertion ikinci kez kabul edilmez.
Öznitelikler: e-posta email/mail/NameID; ad displayName/name; gruplar groups veya Entra ID'nin grup talebi. IdP tarafından başlatılan giriş (uygulama kataloğu) varsayılan kapalıdır; açarsanız giriş CSRF koruması yalnızca SP başlatmalı akışta tamdır.
3. Rol eşleme ve JIT
- Varsayılan rol: eşleşen grup yoksa atanır.
- Grup → rol: her satıra
grup=rol(ör.hs-admins=admin). Birden çok eşleşmede en yetkili rol uygulanır;ownerSSO ile verilmez veya alınmaz. Rol her girişte eşitlenir. - JIT: hesap veya üyelik yoksa otomatik açılır (kapalıysa yalnızca mevcut üyeler girer). Plan rol kapısı ve üye kotası uygulanır.
4. Test edin ve etkinleştirin
Test girişi IdP'ye gider, oturum açmaz; dönüşte talepleri, eşlenen rolü ve alan adı durumunu gösterir. Sonra bağlantıyı Etkin yapın (doğrulanmış alan adı gerekir). Kullanıcılar giriş ekranında Kurumsal SSO ile giriş'e basıp e-postalarını yazar.
5. "Yalnızca SSO"
Açıkken üyeler bu organizasyona yalnızca SSO ile erişir; parola ve Google/GitHub ile açılan oturumlar 403 HS_SSO_REQUIRED alır ve açılınca kapatılır. Kilitlenmeye karşı:
- Yalnızca sahip açabilir ve önce başarılı bir test girişi (veya SSO ile açılmış oturum) gerekir.
- Sahibe 10 tek kullanımlık kurtarma kodu verilir (yalnızca özeti saklanır). SSO çalışmazsa sahip giriş ekranında SSO kurtarma kodum var ile parola + kod girer.
- Zorunluluk açıkken son etkin bağlantı veya son doğrulanmış alan adı kaldırılamaz.
API
Tüm yönetim uçları oturumlu panel API'sidir (org.manage): GET/POST /internal/v1/orgs/{orgId}/sso/connections, …/domains, PUT …/sso/enforcement, POST …/sso/recovery-codes. Ayrıntı: API Explorer → internal:sso.
Veri yerleşimi (AB / Türkiye bölgeleri)
Pushizo her veri bölgesini ayrı bir hücre olarak çalıştırır: AB (Frankfurt) ve Türkiye (İstanbul) hücrelerinin kendi veritabanı, kuyruk, analitik deposu ve dosya depolaması vardır. Bir organizasyonun abonelik,…
SCIM 2.0 ile üye sağlama
Kimlik sağlayıcınız (Okta, Microsoft Entra ID, OneLogin, JumpCloud…) Pushizo üyelerini SCIM 2.0 ile otomatik ekler, rollerini günceller ve ayrılanları kaldırır. SCIM Enterprise planındadır ve SSO ile birlikte kullanılır…