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 sso kalemi etkin olmalı. YEKE_PUBLIC_URL tanı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 neredeYEKE'de hangi alan
Uygulama kaydı → OverviewDirectory (tenant) ID Issuer adresindeki <tenant-id>
Uygulama kaydı → OverviewApplication (client) ID İstemci kimliği
Uygulama kaydı → Certificates & secretsValue İstemci sırrı
Grup → OverviewObject ID Yönetici grubu

1. Uygulamayı kaydedin

Birden çok kiracınız varsa önce doğru kiracıyı seçin.

  1. entra.microsoft.com adresine girin. Birden çok kiracı varsa üst menüdeki Settings simgesiyle kiracı değiştirin.
  2. Entra ID → App registrations → New registration.
  3. Name alanına bir ad yazın, Supported account types için Single tenant only seçin.
  4. Redirect URI platform seçicisinden Web'i seçin, adres kutusuna https://<yeke-adresi>/api/auth/oidc/callback yazın. <yeke-adresi> core'un YEKE_PUBLIC_URL değeridir; YEKE'yi tarayıcıda farklı bir adresle açıyorsanız YEKE_PUBLIC_URL'i esas alın.
  5. 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.

  1. Uygulamada Certificates & secrets → Client secrets → New client secret.
  2. Bir açıklama yazın, Expires için en fazla 24 ay seçin, Add'e tıklayın.
  3. 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.

  1. Entra ID → Groups → All groups → New group.
  2. Group type için Security seçin, Group name alanına YEKE Yöneticileri gibi bir ad yazın.
  3. Membership type için Assigned'i seçin, Members bağlantısıyla kişileri ekleyin, Create'e tıklayın.
  4. 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.

  1. Uygulamada Token configuration → Add groups claim.
  2. Security groups'u işaretleyin.
  3. Customize token properties by type altında ID için Group ID'yi seçin.
  4. 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.

  1. Entra ID → Enterprise apps → All applications'tan uygulamayı açın.
  2. Properties altında Assignment required? için Yes seçin, kaydedin.
  3. Users and groups → Add user/group'tan kişileri seçip Assign'e tıklayın.
  4. 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.

AlanDeğer
Düğme metniör. Microsoft — giriş düğmesi "Microsoft ile giriş yap" olur
Issuer adresihttps://login.microsoftonline.com/<tenant-id>/v2.0 (sonda eğik çizgi yok)
İstemci kimliği1. adımdaki Application (client) ID
İstemci sırrı2. adımda kopyaladığınız Value
CA sertifikası (PEM)boş
Kullanıcı adı claim'ipreferred_username — kullanıcı adı [email protected] biçiminde gelir
Grup claim'igroups
Yönetici grubu3. adımdaki grubun Object ID'si
Ek kapsamlarboş

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

  1. Çıkış yapın, giriş ekranındaki SSO düğmesine (ör. Microsoft ile giriş yap) tıklayın.
  2. Microsoft'un giriş ekranından geçin.
  3. YEKE'ye geri dönün; Menü → Yönetim → Kullanıcılar ekranında hesabınızın Rol sütununda admin yazdığı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

BelirtiNedenÇö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.

  1. Entra'da uygulamada Certificates & secrets → Client secrets → New client secret ile yeni bir sır oluşturun, Value'yu kopyalayın.
  2. 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.
  3. SSO ile bir kez giriş yaparak yeni sırrın çalıştığını doğrulayın.
  4. 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.