OpenID Connect (OIDC)
OAuth üzerine kimlik ekleme.
OpenID Connect (OIDC), CoddyKit'te ücretsiz bir Cyber Security Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cyber Security Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cyber Security Academy kursu toplamda 4 dersten oluşur.
OIDC Neden Var
OpenID Connect, OAuth 2.0 üzerine kurulmuş ince bir kimlik katmanıdır. OAuth, bu uygulama ne yapabilir sorusunu yanıtlar; OIDC ise kullanıcı kim sorusunu yanıtlar.
- İstemcilerin kullanıcıların kimliğini nasıl doğrulayacağını ve doğrulanmış kimlik istemlerini nasıl alacağını standartlaştırır.
- Kimlik doğrulamasının kriptografik olarak imzalanmış bir doğrulama ifadesi olan ID belirtecini sunar.
OIDC'den önce geliştiriciler giriş için OAuth erişim belirteçlerini yanlış kullandı; bu da kafası karışık vekil ve kimliğe bürünme hatalarına yol açtı.
ID Belirteci (bir JWT)
OIDC'nin belirleyici öğesi, kimlik doğrulama olayını açıklayan imzalı bir JWT olan ID belirtecidir.
- Kim ve ne zaman giriş yaptı bilgilerini içeren istemleri taşır.
- Bu belirteç, kaynak sunucusunun değil, istemcinin kullanması içindir.
Bir ID belirtecini hiçbir zaman erişim kimlik bilgisi olarak API'ye göndermeyin ve imzasını ve istemlerini doğrulamadan asla kabul etmeyin.
Header.Payload.Signature
{
"iss": "https://idp.example",
"sub": "248289761001",
"aud": "app123",
"exp": 1718000000,
"iat": 1717996400,
"nonce": "n-abc"
}Temel ID Belirteci İstemleri
Bir ID belirtecini doğrulamak, yalnızca imzayı değil, belirli istemleri de kontrol etmek anlamına gelir.
- iss veren bilgisi, beklenen IdP ile eşleşmelidir.
- aud hedef kitlesi, client_id'nizi içermelidir.
- exp / iat belirteci süresi dolmamış ve yakın zamanda verilmiş olmalıdır.
- sub kararlı ve benzersiz kullanıcı tanımlayıcısıdır.
- nonce, istemcinizin gönderdiği değerle eşleşmelidir.
OIDC Kimlik Doğrulama Akışı
OIDC, Yetkilendirme Kodu akışını yeniden kullanır ancak openid kapsamını ve bir nonce ekler.
- İstemci
openidkapsamını (isteğe bağlı olarakprofileveemailile birlikte) ister. - Belirteç uç noktası, erişim belirtecinin yanında bir ID belirteci de döndürür.
nonce, ID belirtecini özgün istekle ilişkilendirerek yeniden oynatmayı önler.
GET /authorize?response_type=code
&scope=openid profile email
&client_id=app123
&redirect_uri=https://app.example/cb
&state=xyz&nonce=n-abcİmzanın JWKS ile Doğrulanması
OIDC sağlayıcıları, iyi bilinen yapılandırma belgesi aracılığıyla keşfedilebilen bir JWKS uç noktasında imzalama anahtarlarını yayımlar.
- Anahtarları
jwks_uriüzerinden alın ve belirtecinkidbaşlığıyla eşleştirin. - Listelenen asimetrik algoritmayla (RS256, ES256) doğrulayın.
none algoritmasını reddedin ve yalnızca belirtecin sağladığı bir algoritma değerine asla güvenmeyin.
GET /.well-known/openid-configuration
-> { "jwks_uri": "https://idp.example/jwks", ... }
GET /jwks
-> { "keys": [ { "kid": "k1", "kty": "RSA", ... } ] }nonce Yeniden Oynatmaya Karşı Koruma Sağlar
nonce, ID belirteçleri için state'in yönlendirme için taşıdığı işleve sahiptir: yanıtı istekle ilişkilendiren tek kullanımlık bir değerdir.
- İstemci rastgele bir nonce üretir ve bunu oturumda saklar.
- IdP, bu değeri ID belirtecinin içinde geri yansıtır.
- İstemci, belirteci aldığında nonce değerinin eşleştiğini ve daha önce kullanılmadığını doğrular.
Bu, belirtecin yeniden oynatılmasını ve farklı bir oturum için üretilmiş bir belirtecin eklenmesini engeller.
UserInfo Uç Noktası
OIDC, ID belirtecinin ötesindeki ek profil verileri için UserInfo uç noktasını tanımlar.
- İstemci bu uç noktayı ID belirteciyle değil, erişim belirteciyle çağırır.
- Kimliği doğrulanmış özne için ad, e-posta ve fotoğraf gibi istemleri döndürür.
İstem değiştirilmesini önlemek için dönen sub değerini her zaman ID belirtecindeki sub ile eşleştirin.
GET /userinfo
Authorization: Bearer <access_token>
-> { "sub": "248289761001", "email": "u@example.com" }Keşif ve Üst Veriler
OIDC, istemcilerin uç noktaları ve desteklenen özellikleri otomatik olarak yapılandırabilmesi için keşfi standartlaştırır.
/.well-known/openid-configurationbelgesi uç noktaları, desteklenen kapsamları ve algoritmaları listeler.- Veren bilgisini sabitleyin veya doğrulayın; saldırganın denetimindeki bir ana bilgisayardan gelen keşfi körü körüne izlemeyin.
Keşif, tümleştirmeyi kolaylaştırır ancak veren, doğrulamanız gereken bir güven çıpası olmaya devam eder.
Ön Kanal ve Arka Kanal Oturum Kapatma Karşılaştırması
Federasyonlu uygulamalar arasındaki oturum sonlandırma, OIDC oturum kapatma belirtimleriyle gerçekleştirilir.
- Ön kanal oturum kapatma, her bir güvenen tarafı temizlemek için tarayıcı yönlendirmelerini ve satır içi çerçeveleri kullanır.
- Arka kanal oturum kapatma, sunucudan sunucuya oturum kapatma belirteçleri gönderir; daha güvenilirdir ancak uç noktalar gerektirir.
Eşgüdümlü oturum kapatma olmadan kullanıcı bir uygulamadan çıkış yaparken diğerlerinde oturumunu açık tutabilir; bu, gerçek bir oturum yönetimi riskidir.
Yaygın OIDC Tuzakları
Kimlik hataları çoğu zaman doğrulama adımlarının atlanmasından kaynaklanır.
- aud değerini kontrol etmeden belirteçleri kabul etmek (belirteç başka bir istemci için tasarlanmış olabilir).
- iss değerini yok saymak, IdP sahteciliğine olanak tanır.
- İmzayı doğrulamamak veya
alg: nonedeğerini kabul etmek. - ID belirteçleri ile erişim belirteçlerini karıştırmak.
- Nonce kontrollerini atlamak, yeniden oynatmayı mümkün kılar.
Validation checklist:
[ ] iss == expected
[ ] aud contains client_id
[ ] exp not passed, iat sane
[ ] signature verified via JWKS
[ ] nonce matches sessionGiriş için OIDC ve Sade OAuth Karşılaştırması
Amacınız giriş yapmaksa ham OAuth yerine OIDC kullanın.
- OAuth erişim belirteçleri istemci açısından opaktır ve kimlik hakkında hiçbir kanıt sunmaz.
- Bir erişim belirteci farklı bir kullanıcı veya uygulama için geçerli olabilir; giriş amacıyla kullanılırsa kimliğe bürünmeye yol açabilir.
- OIDC ID belirteçleri, açıkça hedef kitleye bağlı kimlik doğrulama ifadeleridir.
Bu ayrım, klasik kafası karışık vekil kimlik doğrulama açığını önler.
Hızlı Kontrol: ID Belirteci Doğrulaması
Bir ID belirtecini kullanan güvenen taraf için en kritik doğrulama adımını seçin.
Özet: OpenID Connect
Temel çıkarımlar:
- OIDC, OAuth 2.0 üzerine bir kimlik katmanı ekler; ID belirteci, kimlik doğrulamasını kanıtlayan imzalı bir JWT'dir.
- iss, aud, exp, imza (JWKS aracılığıyla) ve nonce değerlerini her zaman doğrulayın.
- ID belirteçleri istemci içindir; erişim belirteçleri API'ler içindir. Rollerini asla değiştirmeyin.
- Yeniden oynatmaya karşı
nonce, CSRF'ye karşıstatekullanın. - Kullanıcıların kimliğini doğrulamanız gerektiğinde ham OAuth yerine OIDC kullanın.
Sıkça Sorulan Sorular
“OpenID Connect (OIDC)” dersi ücretsiz mi?
Evet — “OpenID Connect (OIDC)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cyber Security Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cyber Security Academy kursu toplamda 4 dersten oluşur.
“OpenID Connect (OIDC)” dersinde ne öğreneceğim?
OAuth üzerine kimlik ekleme. Cyber Security Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cyber Security Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cyber Security Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“OpenID Connect (OIDC)” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cyber Security Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cyber Security Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- OAuth 2.0 Akışları
- OpenID Connect (OIDC)
- SAML ve Federasyon
- Belirteç Saldırıları ve Sağlamlaştırma