yeke.io · dokümanlar · enterprise
Entra ID ile SSO Kurulumu
Entra ID'de uygulamayı kaydedip YEKE'ye bağlamanın adımları, sırasıyla. Sonunda kullanıcılar Microsoft hesabıyla girer, yönetici grubundakiler YEKE'de admin olur.
Başlamadan önce
İki tarafta da birkaç şeyin hazır olması gerekiyor.
- YEKE tarafı. Enterprise lisansın
ssokalemi etkin olmalı.YEKE_PUBLIC_URLtanımlı olmalı — yönlendirme adresi bundan türer. - Entra rolleri. Uygulama kaydı için en az Application Developer. Grup açmak için Groups Administrator ya da User Administrator. Girişi atamaya zorunlu kılacaksanız ayrıca Cloud Application Administrator.
| Entra'da nerede | YEKE'de hangi alan |
|---|---|
| Uygulama kaydı → Overview → Directory (tenant) ID | Issuer adresindeki <tenant-id> |
| Uygulama kaydı → Overview → Application (client) ID | İstemci kimliği |
| Uygulama kaydı → Certificates & secrets → Value | İstemci sırrı |
| Grup → Overview → Object ID | Yönetici grubu |
1. Uygulamayı kaydedin
Birden çok kiracınız varsa önce doğru kiracıyı seçin.
- entra.microsoft.com adresine girin. Birden çok kiracı varsa üst menüdeki Settings simgesiyle kiracı değiştirin.
- Entra ID → App registrations → New registration.
- Name alanına bir ad yazın, Supported account types için Single tenant only seçin.
- Redirect URI platform seçicisinden Web'i seçin, adres kutusuna
https://<yeke-adresi>/api/auth/oidc/callbackyazın.<yeke-adresi>core'unYEKE_PUBLIC_URLdeğeridir; YEKE'yi tarayıcıda farklı bir adresle açıyorsanızYEKE_PUBLIC_URL'i esas alın. - Register'a tıklayın. Açılan Overview sayfasında Application (client) ID ve Directory (tenant) ID değerlerini bir kenara not edin.
Enterprise app'i ayrıca açmayın
Uygulama kaydı, Enterprise apps altında aynı adla bir kaydı kendiliğinden oluşturur.
Enterprise apps → New application ile ikinci bir uygulama açmayın — böyle açılan kayıt
ayrı bir uygulamadır ve kimlik birinden, sır ötekinden alınırsa giriş
IDP_CLIENT_REJECTED ile durur.
Adres Web platformunda olmalı
Redirect URI Web platformu altında olmalı; Single-page application ya da Mobile and desktop applications altına eklerseniz çalışmaz.
2. İstemci sırrı oluşturun
Sır yalnız oluşturulduğu anda görünür.
- Uygulamada Certificates & secrets → Client secrets → New client secret.
- Bir açıklama yazın, Expires için en fazla 24 ay seçin, Add'e tıklayın.
- Oluşan satırda Value sütununu kopyalayın — sayfadan ayrılınca bir daha gösterilmez.
Secret ID değil, Value
Kopyalanacak sütun Value'dur, Secret ID değil; ikisi karıştırılırsa giriş
IDP_CLIENT_REJECTED ile durur (Entra'nın kendi kodu core logunda
AADSTS7000215).
Sır süresi dolunca giriş aynı hatayla durur (Entra tarafında
AADSTS7000222); yerel hesaplar bundan etkilenmez. Bitiş tarihini takvime yazın —
yenileme adımları bu sayfanın sonunda.
3. Yönetici grubunu açın
Grup türü sonradan değiştirilemez.
- Entra ID → Groups → All groups → New group.
- Group type için Security seçin, Group name alanına
YEKE Yöneticilerigibi bir ad yazın. - Membership type için Assigned'i seçin, Members bağlantısıyla kişileri ekleyin, Create'e tıklayın.
- Grubun Overview sayfasında Object ID'yi not edin.
Microsoft 365 ve Distribution grupları çalışmaz
4. adımdaki Security groups ayarıyla token'a yalnız Security grupları girer;
Microsoft 365 ve Distribution grupları girmez — kişi giriş yapar ama rolü
member kalır. Grup türü sonradan değiştirilemez, bu
yüzden yanlış türde bir grup açtıysanız yeni bir Security grubu oluşturmanız gerekir.
Microsoft 365 grupları ayrıca çoğunlukla public'tir, kiracıdaki herkes katılabilir — böyle
bir grup yönetici yetkisi vermemeli.
Aynı kural Kubernetes grup eşlemesinde de geçerli — oraya da bir Security grubunun Object ID'si yazılır.
4. Token'a grupları ekleyin
Entra varsayılan olarak token'a grup koymaz.
- Uygulamada Token configuration → Add groups claim.
- Security groups'u işaretleyin.
- Customize token properties by type altında ID için Group ID'yi seçin.
- Emit groups as role claims işaretli olmasın; kaydedin.
Kontrol
Uygulamada Manifest sayfasını açıp aşağıdaki iki değeri arayın.
"groupMembershipClaims": "SecurityGroup"
"optionalClaims": {
"idToken": [
{ "name": "groups", "source": null, "essential": false, "additionalProperties": [] }
]
}additionalProperties boş kalmalı. İçinde emit_as_roles
varsa gruplar roles claim'ine gider ve YEKE grup görmez; sam_account_name
ya da cloud_displayname varsa GUID yerine ad gelir ve Object ID eşleşmez.
Groups assigned to the application yalnız 200'den fazla gruba üye kullanıcılarda gerekir (Entra ID P1/P2 ister, iç içe gruplar girmez) — çoğu kurulumda atlanabilir.
5. Girişi sınırlayın (isteğe bağlı)
Atlarsanız kiracıdaki herkes member olarak girebilir ve her ilk giriş bir lisans koltuğu tüketir.
- Entra ID → Enterprise apps → All applications'tan uygulamayı açın.
- Properties altında Assignment required? için Yes seçin, kaydedin.
- Users and groups → Add user/group'tan kişileri seçip Assign'e tıklayın.
- Atama zorunlu olduğunda izinlere yönetici onayı da gerekir: uygulama kaydında API permissions → Grant admin consent.
Gruba atama Entra ID P1/P2 ister; ücretsiz katmanda kişileri tek tek atarsınız.
Atanmamış bir kişi Microsoft'un giriş sayfasında AADSTS50105 ile durur.
6. YEKE'de sağlayıcıyı tanımlayın
YEKE'ye yönetici hesabıyla girin: Menü → Yönetim → OIDC çoklu oturum açma.
| Alan | Değer |
|---|---|
| Düğme metni | ör. Microsoft — giriş düğmesi "Microsoft
ile giriş yap" olur |
| Issuer adresi | https://login.microsoftonline.com/<tenant-id>/v2.0
(sonda eğik çizgi yok) |
| İstemci kimliği | 1. adımdaki Application (client) ID |
| İstemci sırrı | 2. adımda kopyaladığınız Value |
| CA sertifikası (PEM) | boş |
| Kullanıcı adı claim'i | preferred_username — kullanıcı
adı [email protected] biçiminde gelir |
| Grup claim'i | groups |
| Yönetici grubu | 3. adımdaki grubun Object ID'si |
| Ek kapsamlar | boş |
Sağlayıcı ekle'ye tıklayın, kartta Keşfi test et'i çalıştırın, başarılı olursa Etkinleştir'e basın.
Test istemci sırrını denemez
Keşif testi yalnız keşif belgesini ve imza anahtarlarını okur; istemci sırrı ve grup claim'i ilk gerçek girişte görülür. Issuer uyuşmazlığı testte düşer.
Yönetici grubu tanımlıyken rol her girişte gruptan türer; Kullanıcılar ekranından değiştirilemez. Kişiyi admin yapmak ya da adminlikten çıkarmak için Entra'daki gruba ekleyin ya da gruptan çıkarın.
Kubernetes grupları (isteğe bağlı)
Cluster'ın kimlik ekranındaki Dizin grubu eşlemesi bölümünde sol tarafa grubun Object ID'sini, Okunur ad (isteğe bağlı) alanına grup adını yazın; ayrıntı Yetkilendirme ve RBAC sayfasında. Orada da Security grupları kullanılır.
7. Deneyin
- Çıkış yapın, giriş ekranındaki SSO düğmesine (ör. Microsoft ile giriş yap) tıklayın.
- Microsoft'un giriş ekranından geçin.
- YEKE'ye geri dönün; Menü → Yönetim → Kullanıcılar ekranında hesabınızın
Rol sütununda
adminyazdığını doğrulayın.
Rol yalnız girişte hesaplanır — gruba ekleme sonrası kişi çıkış yapıp yeniden girmeli. Yerel yönetici hesabını saklayın; acil erişim yoludur.
Sorun giderme
| Belirti | Neden | Çözüm |
|---|---|---|
| Giriş oluyor ama kişi admin değil | Grup Security türünde değil, 4. adım eksik, Yönetici grubu alanında başka bir Object ID var ya da kişi ayardan sonra yeniden girmedi | 3. ve 4. adımları kontrol edin; kişi YEKE'den çıkış yapıp yeniden girsin |
"Kimlik sağlayıcısı YEKE'nin istemci kimlik bilgilerini reddetti"
(IDP_CLIENT_REJECTED) |
Secret ID yazılmış, sır süresi dolmuş ya da kimlik ile sır farklı uygulamalardan | Yeni bir sır oluşturup Value'yu girin; istemci kimliği ile sırrın aynı uygulama
kaydından geldiğini kontrol edin. Core logunda AADSTS7000215 geçersiz sır,
AADSTS7000222 süresi dolmuş sır demektir. |
"Bu hesap, sağlayıcının listeleyebileceğinden çok grupta"
(OIDC_GROUPS_OVERAGE) |
Kullanıcı 200'den fazla grupta | Groups assigned to the application'ı kullanın, grubu uygulamaya atayın (Entra ID P1/P2 gerekir) |
"Bu kullanıcı adı başka bir hesapta zaten var" (USERNAME_CONFLICT) |
Aynı adla yerel ya da LDAP hesabı var | Çakışan hesabı yeniden adlandırın ya da devre dışı bırakın |
Microsoft sayfasında AADSTS50011 |
Redirect URI eşleşmiyor ya da Web platformunda değil | Kayıtlı adresi ve platformu kontrol edin |
Microsoft sayfasında AADSTS700016 |
Client ID yanlış ya da uygulama Issuer'daki kiracıda değil | İstemci kimliğini ve issuer'daki tenant-id'yi karşılaştırın |
Microsoft sayfasında AADSTS50105 |
Atama zorunlu, kişi atanmamış | Kişiyi Users and groups'tan atayın |
| Microsoft, yönetici onayı isteyen bir ekran gösteriyor | Kiracı, kullanıcıların uygulamalara kendileri onay vermesine izin vermiyor | Uygulama kaydında API permissions → Grant admin consent |
| "Keşif testi başarısız" + issuer farkı | Issuer biçimi yanlış | Issuer'ı https://login.microsoftonline.com/<tenant-id>/v2.0
biçimine düzeltin |
| Sağlayıcı kaydedilirken "Core'un yapılandırılmış bir dış adresi yok" | YEKE_PUBLIC_URL tanımlı değil |
Değeri verip core'u yeniden başlatın. Kurulum ayarları → |
Entra'nın hata kodunu core logunda bulursunuz:
docker compose logs core 2>&1 | grep "rejected the client authentication"
İstemci sırrını yenileme
İki sır aynı anda geçerli olabilir, kesinti olmaz.
- Entra'da uygulamada Certificates & secrets → Client secrets → New client secret ile yeni bir sır oluşturun, Value'yu kopyalayın.
- YEKE'de sağlayıcı kartında Düzenle → Yeni istemci sırrı (isteğe bağlı) alanına yapıştırın, Değişiklikleri kaydet.
- SSO ile bir kez giriş yaparak yeni sırrın çalıştığını doğrulayın.
- Entra'da eski sırrı silin.
OIDC ayarlarının tamamı
Alan ayrıntıları, Keycloak ile kurulum ve sınırlar genel OIDC sayfasında.