Türkçe
  • mfa
  • 2fa
  • totp
  • nodejs
  • security
  • authentication
  • authenticator app

Node.js uygulamanız için kimlik doğrulayıcı uygulama doğrulamasını destekleyin

Bu makale, Google Authenticator ve Microsoft Authenticator gibi kimlik doğrulayıcı uygulama doğrulamasını entegre ederek Node.js uygulamanızın güvenliğini nasıl artıracağınızı tanıtmaktadır.

Yijun
Yijun
Developer

Geleneksel uygulamalarda, kimlik tanımlayıcıları olarak genellikle E-posta/Kullanıcı Adı/Telefon kullanırız. Bu kimlik tanımlayıcıları ile ilgili parolaları veya doğrulama kodlarını birleştirerek kimlik doğrulama sürecini tamamlayabiliriz.

Ancak, daha yüksek güvenlik gereksinimleri olan senaryolarda, kimlik doğrulaması için yalnızca kimlik tanımlayıcılarına güvenmek yeterli değildir. Çünkü bu kimlik tanımlayıcılar ve bunlara ait doğrulama bilgileri sızıntılara karşı hassas olabilir.

Bu tür durumlarda, mevcut kimlik tanımlayıcı ile kimlik doğrulaması yapılan varlığın gerçek kullanıcı olduğunu sağlamak için ek bir kimlik doğrulama katmanı gereklidir. Yaygın kimlik doğrulama yöntemleri arasında bir kimlik doğrulayıcı uygulama kullanan TOTP kimlik doğrulaması, biyometrik kimlik doğrulama, cihaz kimlik doğrulama ve daha fazlası bulunur.

Bu makalede, Node.js uygulamanıza kimlik doğrulayıcı uygulama doğrulamasını nasıl entegre edebileceğinizi inceleyeceğiz ve kullanıcılarınız için kimlik doğrulama sürecinin güvenliğini artıracağız.

TOTP Tanıtımı

TOTP, Zamana bağlı tek kullanımlık parolalar anlamına gelir. Wikipedia'e göre, benzersizlik kaynağı olarak mevcut zamanı kullanan bir bilgisayar algoritması ile tek kullanımlık bir parola (OTP) oluşturur.

Kullanıcının telefonu ve uygulama sunucusu arasında paylaşılan bir TOTP gizli anahtarı ile, kullanıcının telefonu ve uygulama sunucusu aynı anda aynı TOTP kodunu üretebilir:

TOTP üretimi zamana dayandığı için çevrimdışı hesaplanabilir. Ayrıca, TOTP sayısal bir dize ürettiği için basit ve kullanıcı dostudur. Bu nedenle, TOTP doğrulaması yaygın olarak 2 faktörlü kimlik doğrulama olarak kullanılır.

Kullanıcılar TOTP'yi 2 faktörlü kimlik doğrulama olarak kullandıklarında, genellikle TOTP gizli anahtarının saklanması ve TOTP kodlarının üretilmesi gibi zorluklarla karşılaşırlar. İşte burada kimlik doğrulayıcı uygulamalar devreye girer. TOTP gizli anahtarını saklamak ve kimlik doğrulayıcı uygulamalar sizin için TOTP kodları üretmek için kimlik doğrulayıcı uygulamaları kullanabiliriz. Doğrulama gerektiğinde, sadece kimlik doğrulayıcı uygulamanızı açmanız gerekir ve TOTP gizli anahtarına karşılık gelen TOTP kodunu alırsınız. Popüler Kimlik Doğrulayıcı uygulamalar arasında Google Authenticator ve Microsoft Authenticator bulunur.

TOTP'yi iki faktörlü kimlik doğrulama olarak uygulama süreci iki adım içerir:

  1. Bir kullanıcıya TOTP gizli anahtarı bağlama.
  2. İlgili TOTP gizli anahtarı ile kullanıcının TOTP kodunu doğrulama.

Bir kullanıcıya TOTP bağlama süreci şu şekildedir:

Kullanıcı TOTP'yi bağladıktan sonra, doğrulama için kullanabilirler. Süreç şu şekildedir:

Diyagrama uygun olarak gösterildiği gibi, kullanıcı tarafında TOTP gizli anahtarını yönetmek ve TOTP kodları üretmek için kimlik doğrulayıcı uygulamaları kullanıyoruz. Sunucu tarafında, bir TOTP gizli anahtarı üretimini ve kullanıcı tarafından gönderilen TOTP kodunun doğrulamasını desteklememiz gerekiyor. Bu makalede, sunucu tarafında TOTP ile ilgili işlevleri entegre etmek için otpllib kullanalım.

Node.js uygulamanızda TOTP Destekleyin

Uygulamanızın Express.js tabanlı olduğunu varsayalım ve kullanıcılar /sign-in sonunda oturum açıyorlar, kullanıcı oturum açma sürecinde TOTP'yi destekleme planı şu şekildedir:

  1. Kullanıcı TOTP'ye bağlı olmadığında, TOTP gizli anahtarını bir QR kodu şeklinde kullanıcıya gönderin ve TOTP'yi bağlamalarını isteyin.
  2. Kullanıcı TOTP'ye zaten bağlı olduğunda, TOTP'yi doğrulamalarını isteyin.

Önce, projeye otplib ve qrcode bağımlılıkları yükleyelim:

Ardından, /sign-in noktamızı geliştirelim.

Uygulamanımıza göre, bir kullanıcı TOTP'ye bağlı değilse, ön yüze bir QR kodu göndereceğiz:

TOTP Bağla

Kullanıcı, kimlik doğrulayıcı uygulama ile QR kodunu tarar ve kimlik doğrulayıcı uygulama bir TOTP kodu üretir ve ilgili TOTP gizli anahtarını saklar.

Google Authenticator

Kullanıcı elde ettiği TOTP kodunu uygulama sunucusuna geri gönderir. Kod başarıyla doğrulanırsa, bu TOTP'yi kullanıcıya bağlayabiliriz.

Öyleyse, kullanıcı tarafından gönderilen TOTP kodunu almak için bir /verify-totp API uygulayalım:

Bu şekilde, kullanıcı için TOTP'yi başarıyla bağladık. Sonrasında, kullanıcı oturum açtığında, sadece Kimlik Doğrulayıcı Uygulamayı açmaları, önceden bağlı TOTP gizli anahtarına karşılık gelen doğrulama kodunu göndermeleri yeterlidir ve kimlik doğrulama süreci tamamlanacaktır.

TOTP Doğrulama

/verify-totp API'sinde, kullanıcıya daha önce bağlanan TOTP gizli anahtarını kullanarak TOTP kodunu doğruladık.

Özet

Bu makale temelinde, uygulamalarınız için kimlik doğrulayıcı uygulama doğrulamasını nasıl entegre edeceğinizi öğrenmiş olmalısınız.

Ancak, bu sadece basit bir örnektir. Uygulamanız büyükse veya karmaşık hale gelmesi bekleniyorsa, yeni bir kimlik doğrulama yöntemi entegre etmek önemli maliyetlere neden olabilir.

Harika haber şu: Logto, kapsamlı bir kimlik doğrulama çözüm sağlayıcısı olarak, kimlik doğrulayıcı uygulama doğrulaması da dahil olmak üzere çok faktörlü kimlik doğrulama (MFA) desteği sunar. Logto'dan yararlanarak, MFA ile güvenli ve verimli bir kullanıcı oturum açma sürecini, sadece birkaç dakika içinde uygulamanıza sorunsuz bir şekilde entegre edebilirsiniz!