Bu giriş/kayıt mantığı uygulamasının planım (yetki kodu akışı).OAuth2, üçüncü taraf giriş/kayıt işlemlerini uygulamak için nasıl kullanılır?
kullanıcı için onun/onu OpenID vermeyi kabul ediyorsanız SPA önyüzü
GET https://www.example.com/oauth2
client_id=dummyclient
redirect_uri=https://mysite/callback
response_type=code
scope=openid
Sonra üçüncü taraf bir GET isteği gönderir İlk (üçüncü taraf sadece OAuth2 API şartıyla) mysite sonra fronend 301 HTTP cevabı alır.
---> 301 https://mysite/callback?code=dummycode
Ardından tarayıcı
mysite/callback
sayfayı yönlendirir ve onu SPA yeniden yüklemek ve daha sonra gerçek arka uç geri arama için kod iletecektir SPA tarafından yakalanabilir URL'ye kod gösterecektir. Arka uç kodunu aldığınızda
GET https://mysite/api/real-callback?code=dummycode
, bir
access_token
alışverişinde üçüncü tarafa kod gönderecektir. Arka uç,
access_token
'u aldığında, kullanıcının openid'ini almak için bir API isteğini tetikler ve ardından kullanıcının yeni bir kullanıcı olarak giriş yapmasına veya kaydetmesine izin verilip verilmeyeceğine karar verir. Sonunda,
OAuth2 sistemimdeki
access_token
'u içeren SPA önyüzümüze bir HTTP yanıtı veya 401 yetkisiz bir yanıt vereceğiz.
Benim soru (gerçek geri arama benim kendi müşteriler tarafından çağrılır kanıtlamak için bazı saldırganın alırsanız benim önyüzü client_id
gömülü Çünkü o sahte OAuth2 istek ve kullanıcıyı phishing kabul etmek nasıl olduğunu. Sonra o Saldırgan geçerli bir kod alacak ve daha sonra kodu gerçek geri bildirime geri gönderecek. Son olarak, sistemde kullanıcının access_token
numarasını alacaktır.) Son kullanıcının şifresi gibi ek bilgiler sağlamadan kimlik doğrulama yapmak için OAuth2'yi nasıl kullanabilirim.
OAuth2 sunucusundan 'real-callback' URL'sini bir yönlendirme URL'si olarak almamanızın nedeni nedir? SPA kodunu, ön yüz koduna almak için bir neden göremiyorum. –
@ JánHalaša Bu adım olmadan bile, sistemimin 'access_token'unu üçüncü tarafın OAuth2 geri arama isteğinden sonra ön tarafa gönderdiğim sürece güvenlik sorunu devam ediyor. Gerçek geri bildirimi tasarlamamın sebebi, ön uç ile arka uç arasındaki gerçek ayrımı sağlamak. – bitweaver
Ve SPA'da 'access_token' için neye ihtiyacınız var? –