nivq
Bu kurulum bölümü, nivq'yu kendi altyapısında çalıştıran Enterprise / on-prem müşteriler içindir.

Kimlik Doğrulama & SSO

Kullanıcılar nivq'ya nasıl giriş yapar — sosyal giriş, genel OIDC (Keycloak/Okta/Azure AD), workspace bazlı SSO, yerel bootstrap admin ve IdP gruplarını workspace ile role eşleme.

nivq kendi OAuth2 Authorization Server'ıdır. Kullanıcı hangi kimlik sağlayıcısıyla doğrulanırsa doğrulansın, nivq sonrasında kendi JWT'sini üretir — böylece API, çok-kiracılı izolasyon ve workspace claim'leri her giriş yönteminde aynı şekilde çalışır. IdP'nin token'ı asla geçirilmez.

Giriş sayfası uyarlanabilirdir: yalnızca kurulumda gerçekten yapılandırılmış yöntemleri gösterir (GET /v1/auth/providers'tan alınır). Bu uç noktaya erişilemezse, giriş çıkmaza girmesin diye sosyal butonlara geri döner.

Giriş yöntemleri — özet

YöntemNe zaman görünürNereden ayarlanır
Bootstrap admin (yerel parola)NIVQ_BOOTSTRAP_ADMIN_USERNAME + _PASSWORD setenv
Google / Microsoft / GitHubilgili *_CLIENT_ID / *_CLIENT_SECRET setenv
Genel OIDC (Keycloak, Okta, Auth0, Azure AD, …)OIDC_ISSUER_URI + OIDC_CLIENT_ID + OIDC_CLIENT_SECRET setenv
Kurumsal SSO (e-posta → workspace bazlı IdP)en az bir etkin workspace SSO yapılandırması varuygulama arayüzü

Tüm env anahtarları Yapılandırma → Kimlik bölümünde listelenir. Bu rehber her yöntemin nasıl çalıştığını ve kullanıcıların doğru workspace'e doğru rolle nasıl ulaştığını anlatır.

Bootstrap admin (yerel giriş)

IdP kuramayan on-prem demo / deneme kurulumları için nivq tek bir yerel kullanıcı adı/parola hesabı sunabilir:

Shell
NIVQ_BOOTSTRAP_ADMIN_USERNAME=admin@example.com   # e-posta olmalı
NIVQ_BOOTSTRAP_ADMIN_PASSWORD=uzun-bir-parola

İkisi de verildiğinde giriş sayfasında bir e-posta/parola formu görünür. Gönderildiğinde kimlik bilgileri Authorization Server'a iletilir (POST /login/password); bir oturum kurulur ve OIDC akışıyla aynı JWT üretilir. Parola yalnızca bellekte BCrypt ile hash'lenir ve veritabanına asla yazılmaz (kullanıcı kaydında parola kolonu yoktur). Kullanıcı adı olmadan verilen bir parola başlangıçta uygulamayı durdurur; 12 karakterden kısa bir parola engellemez ama açılışta uyarı loglar — uzun bir parola cümlesi kullanın.

Acil-durum (break-glass) hesabı olarak kullanın

Bootstrap admin'i ilk kurulum / acil-durum girişi olarak görün: nivq'yu ayağa kaldırın, giriş yapın, gerçek IdP'nizi yapılandırın, ardından iki değişkeni temizleyin (ya da IdP kesintileri için güvenle saklayın). Normal üretimde boş bırakın.

Sosyal sağlayıcılar

Google, Microsoft veya GitHub'dan herhangi birinin kimlik bilgilerini verin; o buton görünür. Microsoft ayrıca MICROSOFT_TENANT alır. Yapılandırılmamış sağlayıcılar (placeholder'da bırakılanlar) elenir ve hiç gösterilmez.

Genel OIDC (Keycloak, Okta, Auth0, Azure AD …)

Tüm kurulum için tek bir kurumsal IdP istiyorsanız nivq'yu issuer'a yönlendirin:

Shell
OIDC_ISSUER_URI=https://keycloak.company.com/realms/company
OIDC_CLIENT_ID=nivq
OIDC_CLIENT_SECRET=...
OIDC_DISPLAY_NAME=Kurumsal SSO

Uç noktalar (authorization, token, JWKS) {issuer}/.well-known/openid-configuration'dan otomatik keşfedilir. IdP'nizde şu redirect URI'yi kaydedin:

{BACKEND_URL}/login/oauth2/code/oidc

OIDC uyumlu her sağlayıcı kod değişikliği olmadan çalışır.

Workspace bazlı SSO (e-posta domain'i → IdP)

nivq ayrıca e-posta domain'ine göre workspace bazlı SSO destekler — farklı kiracıların kendi IdP'sini getirdiği durumlar için kullanışlıdır. Bir workspace sahibi bunu Workspace Ayarları → SSO'dan yapılandırır:

  • emailDomain — örn. acme.com
  • issuerUri — kiracının OIDC issuer'ı (discovery tabanlı)
  • clientId / clientSecret — beklemede şifreli (AES-256-GCM)

Giriş sayfasında kullanıcı kurumsal e-postasını girer; domain'inin etkin bir yapılandırması varsa o kiracının IdP'sine yönlendirilir. Aynı domain bir workspace'e bağlanarak tüm üyelerinin oraya düşmesi sağlanabilir (aşağıdaki rol eşlemesine bakın).

Enterprise SSO özelliği gerekir

Workspace bazlı SSO ve grup eşlemeleri ENTERPRISE_SSO plan özelliğine bağlıdır. Genel OIDC butonu ve sosyal giriş bağlı değildir.

Roller & otomatik katılım

nivq rolleri workspace bazlıdır: OWNER > ADMIN > MEMBER. Federe bir kullanıcı birden çok workspace'in üyesi olabilir, her birinde farklı rolle, ve uygulamada aralarında geçiş yapar. İki mekanizma kullanıcıları otomatik yerleştirir.

IdP grubu → rol (domain auto-join)

Bir kullanıcının e-posta domain'i etkin bir workspace SSO yapılandırmasıyla eşleştiğinde, kullanıcı IdP grup claim'inden türetilen rolle o workspace'e otomatik katılır:

Shell
NIVQ_OIDC_GROUPS_CLAIM=groups        # grup adlarını taşıyan claim
NIVQ_OIDC_DEFAULT_ROLE=MEMBER        # hiçbir grup eşleşmezse rol
NIVQ_OIDC_OWNER_GROUPS=nivq-owners
NIVQ_OIDC_ADMIN_GROUPS=nivq-admins
NIVQ_OIDC_MEMBER_GROUPS=nivq-users

Öncelik OWNER > ADMIN > MEMBER. Rol her girişte yeniden senkronlanır, böylece IdP grup değişiklikleri yansır. Workspace sahibinin kendi üyeliği eşleme tarafından asla değiştirilmez. Eşleştirme büyük/küçük harf duyarsızdır ve Keycloak path-style gruplarına toleranslıdır (/nivq-admins, nivq-admins ile eşleşir).

IdP grubu → workspace (arayüzden yönetilen)

Tek bir IdP'den kullanıcıları gruba göre farklı — ve birden çok — workspace'e yönlendirmek için her workspace sahibi kuralları Workspace Ayarları → SSO grup eşlemeleri'nden tanımlar:

IdP grubuBu workspace'teki rol
nivq-sales-adminADMIN
nivq-engMEMBER

Girişte kullanıcı, gruplarından biriyle eşleşen her workspace'e eşlenen rolle katılır. İki eşleşen grubu olan kullanıcı iki workspace'e katılır. Aynı workspace'e birden çok kural isabet ederse en yüksek rol kazanır. Eşlemeler mevcut workspace'leri hedefler (asla otomatik oluşturulmaz) ve workspace bazında saklanır (bir kiracının kuralları diğerini etkilemez).

LDAP / Active Directory

nivq doğrudan LDAP/AD'ye bağlanmaz — tasarım gereği hiçbir dizin kimlik bilgisi platforma ulaşmaz. Standart desen, bir IdP üzerinden köprü kurmaktır:

NivQ ──(OIDC)──> Keycloak ──(LDAP/AD federation)──> Active Directory / OpenLDAP

Keycloak (veya AD FS / Entra ID) dizini federe eder ve OIDC sunar; nivq yukarıdaki genel OIDC slotuyla bağlanır. Dizin grupları da rol/workspace eşlemelerini sürer.

Önerilen on-prem kurulum

  1. nivq'yu başlatın ve bootstrap admin ile giriş yapın.
  2. IdP'nizi yapılandırın — tek kurumsal IdP için genel OIDC slotu, çok-kiracılı için workspace bazlı SSO.
  3. Ekiplerinizin ihtiyaç duyduğu workspace'leri oluşturun.
  4. Grup → rol (env) ve/veya grup → workspace (arayüz) eşlemelerini ekleyin.
  5. Kullanıcılar IdP üzerinden giriş yapar ve doğru workspace(ler)e doğru rolle düşer.
  6. SSO doğrulandıktan sonra isteğe bağlı olarak bootstrap admin değişkenlerini temizleyin.

Sonuç

Tek IdP girişi, dizin-temelli üyelik: her kullanıcı, gruplarının verdiği workspace'leri, gruplarının verdiği rolle otomatik görür — elle davet gerekmez.