OpenID Connect, güvenli, modern kimlik doğrulama ve tek oturum açma (SSO) için endüstri standardı haline geldi. Açık, pratik ve kapsamlı bir OpenID Connect eğitim rehberi arıyorsanız, doğru yerdesiniz. Bu kılavuz size OpenID Connect'in ne olduğunu, neden önemli olduğunu, temel kavramları, kimlik doğrulama akışını, uygulamalı implementasyonu ve gerçek dünya senaryoları için pratik örnekleri açıklayacaktır.
OpenID Connect Nedir? (OpenID Connect Eğitim Temelleri)
OpenID Connect, OAuth 2.0 çatısının üzerinde yer alan bir kimlik doğrulama protokolüdür. OAuth 2.0 yetkilendirme (kaynaklara erişim verme) için tasarlanmışken, OpenID Connect kimlik doğrulama—kullanıcıların kimliğini doğrulama ve temel profil bilgilerini güvenli bir şekilde sağlama—için oluşturulmuştur.
OpenID Connect neden önemlidir?
- Güvenli Kimlik Doğrulama: Güvenli olmayan, ev yapımı oturum açma sistemlerinden kaçınır.
- Tek Oturum Açma (SSO): Kullanıcılar tek bir kimlik sağlayıcı kullanarak birden fazla uygulamaya giriş yapabilir.
- Birlikte Çalışabilirlik: Web, mobil ve API istemcileri arasında çalışır.
- Profil Bilgileri: Kimlik ve profil verilerini standartlaştırılmış bir formatta (JWT Kimlik jetonları) döndürür.
Bu OpenID Connect eğitim rehberinde, tüm bu faydaların adım adım nasıl sağlandığını uygulamalı olarak göreceksiniz.
Bu OpenID Connect Eğitim Rehberi İçin Temel Kavramlar
OpenID Connect eğitim akışına geçmeden önce, karşılaşacağınız ana bileşenlere ve terimlere hızlıca göz atalım:
- Kimlik Sağlayıcı (IdP): Kullanıcıların kimliğini doğrulayan hizmet (ör. Google, Auth0, Okta).
- İstemci (Güvenen Taraf): Kimlik doğrulama talep eden uygulama (web/mobil/API).
- Son Kullanıcı: Kimlik doğrulayan kişi.
- Yetkilendirme Sunucusu: Genellikle IdP ile aynı, kimlik doğrulama sonrası jetonları döner.
- Kimlik Jetonu (ID Token): Kullanıcı hakkında bilgi içeren JWT.
- Erişim Jetonu (Access Token): (OAuth 2.0) Korunan API’lere erişim için kullanılır.
- Keşif Belgesi: Kimlik doğrulama akışları için meta veri ve URL’leri içeren uç nokta.
OpenID Connect Eğitim Rehberi: Kimlik Doğrulama Akışı Açıklandı
OpenID Connect kimlik doğrulama sürecini uygulamak için aşağıdaki adımları takip edin:
1. Kullanıcı Oturum Açmayı Başlatır
Kullanıcı uygulamanızda “OpenID Connect ile Giriş Yap” seçeneğine tıklar.
2. İstemci Yetkilendirme Sunucusuna Yönlendirir
Uygulamanız, kullanıcıyı IdP’nin yetkilendirme uç noktasına aşağıdaki parametrelerle yönlendirir:
client_idredirect_uri-
scope(örn.openid) state-
response_type(genelliklecode)
Örnek URL:
https://idp.example.com/authorize?
client_id=YOUR_CLIENT_ID
&redirect_uri=https://yourapp.com/callback
&scope=openid%20profile%20email
&response_type=code
&state=randomState123
3. Kullanıcı Kimlik Doğrular
IdP oturum açma ekranı gösterir. Kullanıcı giriş yapar ve gerekli izinleri onaylar.
4. Yetkilendirme Sunucusu Geri Yönlendirir
Başarılı oturum açma sonrasında IdP, kullanıcıyı redirect_uri adresinize bir yetkilendirme kodu ve state parametresi ile yönlendirir.
Örnek:
https://yourapp.com/callback?code=AUTH_CODE&state=randomState123
5. İstemci Kodu Jetonlarla Değiştirir
Arka uç, kodu IdP’nin token endpoint’ine POST ederek jetonlarla değiştirir.
Örnek (HTTP POST):
POST /token
Host: idp.example.com
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&code=AUTH_CODE
&redirect_uri=https://yourapp.com/callback
&client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRET
6. Jetonlar Döndürüldü
IdP aşağıdaki yanıtı döndürür:
-
id_token(kullanıcı bilgilerini içeren JWT) -
access_token(API erişimi için) - (isteğe bağlı)
refresh_token
Örnek JSON Yanıtı:
{
"access_token": "eyJ...abc",
"id_token": "eyJ...xyz",
"expires_in": 3600,
"token_type": "Bearer"
}
7. İstemci Jetonları Doğrular ve Kullanır
Uygulamanız id_token'ın imzasını ve içeriğini doğrular ve kullanıcıyı oturum açmış olarak işaretler. API çağrıları için access_token kullanılır.
OpenID Connect Eğitim Rehberi: Akışları Anlamak
OpenID Connect farklı kimlik doğrulama akışlarını destekler. En güvenli ve önerilen akış Yetkilendirme Kodu Akışı’dır:
Yetkilendirme Kodu Akışı (Web Uygulamaları için Önerilir)
- Jetonlar tarayıcıya açık şekilde gönderilmez.
- Sunucu tarafı doğrulama yapılır.
- Arka ucu olan uygulamalar için uygundur.
Not: Örtülü Akış (Implicit Flow) artık önerilmemektedir. SPA’lar için PKCE ile Yetkilendirme Kodu Akışı kullanın.
OpenID Connect Eğitim Rehberi: Kimlik Jetonunu Çözme
id_token, JWT formatında kullanıcı bilgileri içerir. Kimliği doğrulamak için jetonu çözümleyin ve doğrulayın.
Örnek id_token yükü:
{
"iss": "https://idp.example.com",
"sub": "1234567890",
"aud": "YOUR_CLIENT_ID",
"exp": 1712345678,
"iat": 1712341678,
"email": "user@example.com",
"name": "Jane Doe"
}
- iss: Düzenleyen (IdP)
- sub: Kullanıcı kimliği
- aud: Hedef kitle (uygulamanız)
- exp: Süre sonu
- email, name: Standart iddialar
İpucu: Üretimde kimlik jetonunun imzasını ve iddialarını mutlaka doğrulayın.
OpenID Connect Eğitim Rehberi: Uygulamalı Örnek (Python)
Python ile, harici SDK’lar olmadan temel OpenID Connect akışını aşağıdaki şekilde uygulayabilirsiniz:
Adım 1: Yetkilendirme URL’sini Oluşturun
import urllib.parse
params = {
"client_id": "YOUR_CLIENT_ID",
"redirect_uri": "https://yourapp.com/callback",
"response_type": "code",
"scope": "openid profile email",
"state": "randomState123"
}
auth_url = "https://idp.example.com/authorize?" + urllib.parse.urlencode(params)
print(auth_url)
Adım 2: Yetkilendirme Kodunu Jetonlarla Değiştirin
import requests
token_data = {
"grant_type": "authorization_code",
"code": "AUTH_CODE",
"redirect_uri": "https://yourapp.com/callback",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}
resp = requests.post("https://idp.example.com/token", data=token_data)
tokens = resp.json()
print(tokens)
Adım 3: Kimlik Jetonunu Çözün ve Doğrulayın
import jwt
id_token = tokens['id_token']
decoded = jwt.decode(id_token, options={"verify_signature": False})
print(decoded)
Not: Gerçek ortamda mutlaka IdP’nin açık anahtarıyla imza doğrulaması yapın.
OpenID Connect Eğitim Rehberi: Pratik Uygulama Senaryoları
1. Birden Fazla Uygulama Arasında Tek Oturum Açma (SSO)
Kullanıcı bir kez oturum açar (ör. Google) ve tüm uygulamalarınıza erişir. Kurumsal SSO'ya uygun altyapı sağlar.
2. Güvenli API Kimlik Doğrulaması
API tüketicilerini doğrulamak için OpenID Connect kullanın. Her istekten önce kimlik jetonunu doğrulayın. Apidog gibi platformlar güvenli API uç noktalarını hızlıca tasarlayıp test etmenizi sağlar.
3. Sosyal Giriş Entegrasyonu
“Google ile Giriş Yap”, “Microsoft ile Giriş Yap” gibi sosyal girişler için bu rehberdeki akışı uygulayın.
4. Mobil Uygulama Kimlik Doğrulaması
Mobil uygulamalarda da OpenID Connect akışını (deep link veya in-app browser ile) kullanabilirsiniz.
OpenID Connect Eğitim Rehberi: Apidog ile Test ve Hata Ayıklama
OpenID Connect entegrasyonlarını geliştirirken Apidog gibi araçlarla API geliştirme ve test süreçlerini hızlandırabilirsiniz:
- API İstek Testi: Jeton isteklerini simüle edin ve yanıtları görsel arayüzde doğrulayın.
- Mock Uç Noktalar: Gerçek IdP’ye bağlı olmadan akışlarınızı taklit uç noktalarla test edin.
- API Dokümantasyonu: OpenID Connect güvenli API’lerinizi ekiplerle kolayca paylaşın.
Apidog ile kimlik doğrulama akışlarınızı hızlıca test edip güvenliğinizi arttırabilirsiniz.
OpenID Connect Eğitim Rehberi: En İyi Uygulamalar
- Kimlik jetonlarını doğrulayın: İmza, issuer, audience, expiration kontrol edin.
- Her yerde HTTPS kullanın: Jetonları güvenli olmayan kanallarda iletmeyin.
-
Gizli bilgileri koruyun:
client_secretve jetonları güvende tutun. - Hata yönetimi uygulayın: Başarısız oturum açma, süresi dolmuş jeton, oturum iptali gibi durumları düzgün yönetin.
- Güncel kalın: Kütüphane ve protokol güncellemelerini takip edin.
Sonuç: Bu OpenID Connect Eğitim Rehberinden Sonraki Adımlar
Artık OpenID Connect’in temelini, akışlarını, uygulama adımlarını ve pratik senaryolarını öğrendiniz. OpenID Connect modern uygulamalarda kimlik doğrulamanın altın standardı ve doğru uygulama ile hem güvenlik hem kullanıcı deneyimi sağlanır.
Sonraki adımlar:
- Uygulamanızı bir Kimlik Sağlayıcıda (Google, Auth0, Okta veya kendi sağlayıcınız) kaydedin.
- Yetkilendirme Kodu Akışını bu rehbere göre uygulayın.
- Akışınızı Apidog ile test edin ve doğrulayın.
- OpenID Connect Keşfi, dinamik istemci kaydı ve birleşik kimlik gibi ileri konuları araştırarak bilginizi derinleştirin.
Bu OpenID Connect eğitim rehberiyle, uygulamalarınıza güvenli ve modern kimlik doğrulama eklemeye hazırsınız. Mutlu kodlamalar!
Top comments (0)