Ana içeriğe geç

Yan yana

OAuthvsOpenID Connect

OAuth ile OpenID Connect arasındaki fark nedir?

Güncellendi 2 dk okuma6 fark

Kısaca

OAuth 2.0 ile uygulama access token'la kullanıcı adına API'ye erişir; OpenID Connect ise imzalı ID token'la kullanıcının kim olduğunu söyleyen bir katman ekler.

OAuth

OAuth, bir uygulamanın kullanıcının parolasını hiç görmeden başka bir servisteki verilerine erişmesini sağlayan açık bir yetkilendirme standardıdır.

OAuth sayfasını oku

OpenID Connect

OIDC

OpenID Connect (OIDC), OAuth 2.0 üzerine kurulu bir kimlik katmanıdır: uygulama, kullanıcıyı kimlik sağlayıcıyla oturum açtırıp imzalı bir ID token alır.

OpenID Connect sayfasını oku

OAuth ve OpenID Connect karşılaştırması

ÖzellikOAuthOpenID Connect
Yanıtladığı soruBu uygulama neye erişebilir?Kullanıcı kim?
AmaçYetkilendirme (authorization)Kimlik doğrulama (authentication)
Ana tokenAPI'ler için access tokenID token, imzalı bir JWT
Üzerine kurulduğuBağımsız bir çerçeveOAuth 2.0
Kullanıcı bilgisiStandart değilStandart bilgiler (claim) ve bir UserInfo uç noktası
Tipik kullanımUygulamaların kullanıcı adına API çağırmasıGoogle ile giriş, tek oturum açma

Fark, açıklamalı

OAuth "bu uygulama ne yapabilir?" sorusunu yanıtlar. Bir fotoğraf baskı servisinin Google Fotoğraflar'ınızı okumasına izin verdiğinizde OAuth, Google'ın ona parolanızı vermeden sınırlı kapsamlı (scope) bir access token çıkarmasını sağlar. Token API içindir ve uygulama sizin kim olduğunuzu öğrenmek zorunda değildir.

2014'te son hâli verilen OpenID Connect ise "bu kullanıcı kim?" sorusunu yanıtlar. OAuth 2.0 ile aynı akışları, genellikle PKCE ile authorization code akışını kullanır, ama kimlik sağlayıcı ayrıca bir ID token döndürür: belirli bir uygulama için çıkarılmış, kullanıcının benzersiz kimliği, e-postası ve adı gibi bilgileri içeren imzalı bir JWT. "Google ile giriş yap"ı ve Entra ID ile Okta gibi sağlayıcılarla kurumsal tek oturum açmayı çalıştıran budur.

Pratikte birlikte kullanılırlar. Bir uygulama kullanıcıyı OpenID Connect ile giriş yaptırır, kendi oturumunu oluşturur ve kullanıcı adına API'leri de çağırması gerekiyorsa aynı alışverişten gelen OAuth access token'ını kullanır. OpenID Connect kütüphaneleri keşfi, anahtar rotasyonunu ve token doğrulamayı üstlenir.

Sık yapılan bir yanlış, OAuth'un tek başına bir giriş protokolü olduğunu düşünmektir. Düz bir access token'ı kimlik kanıtı olarak kullanmak bilinen bir güvenlik hatasıdır, çünkü token farklı bir uygulamaya çıkarılmış olabilir. Kullanıcının kim olduğunu bilmeniz gerekiyorsa OpenID Connect kullanın ve ID token'ı doğrulayın.

Hangisini kullanmalısınız?

OAuth şu durumlarda doğru seçim:

  • Bir uygulamanın başka bir servisteki kullanıcı verisine yetki devriyle erişmesi gerekiyor.
  • API'leri kapsamlı access token'larla koruyorsunuz.
  • Client credentials ile makineden makineye erişim.

OpenID Connect şu durumlarda doğru seçim:

  • Kullanıcıları harici bir kimlik sağlayıcıyla giriş yaptırmanız gerekiyor.
  • Uygulamalar arasında tek oturum açma istiyorsunuz.
  • Kullanıcının kim olduğuna dair doğrulanmış bilgiye ihtiyacınız var.

Sık sorulan sorular

OpenID Connect ile OAuth aynı şey mi?

Hayır. OpenID Connect, OAuth 2.0 üzerine kuruludur ve kimlik doğrulamayı, ID token'ı ve standart kullanıcı bilgilerini ekler. Her OIDC akışı bir OAuth akışıdır, ama tersi doğru değildir.

Giriş için OAuth kullanabilir miyim?

Onun yerine OpenID Connect kullanın. Düz OAuth access token'ları uygulamanıza kimlik kanıtlamak için tasarlanmamıştır; onları böyle kullanmak gerçek güvenlik açıklarına yol açtı.

ID token ile access token arasındaki fark nedir?

ID token uygulamanıza kullanıcının kim olduğunu söyler ve uygulamanın okuması içindir. Access token ise istekleri yetkilendirmek için bir API'ye gönderilir ve o API içindir.

Daha fazla

Ayarlar