• Buradasın

    Quarkus'ta JWT ile Otantikasyon ve Otorization Eğitimi

    youtube.com/watch?v=Mo6jHsThuYg

    Yapay zekadan makale özeti

    • Bu video, Java User Group İstanbul tarafından düzenlenen bir teknik eğitim etkinliğidir. Hayrettin ve Hüseyin Baba tarafından yönetilen sunumda, bir eğitmen izleyicilere Quarkus framework'ünde JWT (JSON Web Token) kullanarak otantikasyon ve yetkilendirme uygulamalarını anlatmaktadır.
    • Etkinlik, Quarkus'ta JWT kullanımı için gerekli extension'ların nasıl ekleneceği, tokenların nasıl oluşturulacağı ve doğrulanacağı adım adım gösterilmektedir. Ayrıca, JAX-RS ile güvenlik yapılandırması, rol tabanlı erişim kontrolü ve filtreler gibi konular detaylı olarak ele alınmaktadır.
    • Sunumda, Spring Security'in yanı sıra Jakarta ve JAX-RS gibi alternatif teknolojilerin de önemi vurgulanmakta, Quarkus'un avantajları ve popülerliği hakkında bilgiler verilmektedir. Etkinliğin sonunda katılımcılara önümüzdeki etkinlikler hakkında bilgi verilmekte ve iyi bayramlar dilekleriyle sunum sonlandırılmaktadır.
    00:37Java User Group İstanbul Tanıtımı
    • Java User Group İstanbul, Türkiye'deki en aktif ve yön veren topluluklardan biridir.
    • Topluluk webinar, metap, hackathon, code retreat organizasyonları ve yıllık Java de İstanbul etkinliğini gerçekleştiriyor.
    • Topluluk 6300 civarında üyesi ve 104 etkinliği gerçekleştiriyor.
    01:57Topluluk Aktiviteleri
    • Topluluk Spotify ve iTunes üzerinden yayın yapan bir podcast sahibi.
    • Java Community Process'e ve Eclipse Foundation'a katkıda bulunuyor.
    • Önümüzdeki etkinlikler arasında Hüseyin Baba'nın Screen Food'la Restful Uygulama Geliştirme ve Stevenage'nin Jakarta Conquency hakkında konuşmaları bulunuyor.
    04:02Sponsorlar ve Etkinlik Bilgileri
    • Etkinliklerin sponsorları arasında Definex, J-Frog, Ezel, Cast, God, Webinar ve JetBrains bulunuyor.
    • Etkinlikte paylaşım yapan ilk üç kişiye lisans kodu dağıtılacak.
    • Ağustos ayı içinde 21 Ağustos'ta ilk defa Türkçe gerçekleşecek Jakarta Day etkinliği planlanıyor.
    07:30Quarkus ve JWT Konusu
    • Etkinliğin konusu, otantikasyon ve otorization için JSON Web Token'ı Quarkus'ta nasıl kullanabileceğimizdir.
    • Örnek uygulama bir veritabanı bağımlılığına sahip ve kullanıcılar tablosu ile rol bazlı erişim kontrolü gerektiriyor.
    • Quarkus, MicroProfile JSON Web Token (JWT) spesifikasyonunu kullanıyor ve bu özellikler için extensions mekanizması üzerinden eklentiler ekleniyor.
    15:53JWT Eklentisi ve Anahtar Çiftleri
    • JWT (JSON Web Token) için anahtar çifti gereklidir; bu anahtarlar token doğrulaması için ve token üretimi için kullanılır.
    • Small Ray JWT eklentisi ve Quercus yapılandırılması gerekmektedir.
    • Public key location değeri, sistemin token doğrulaması için kullanabileceği anahtarın lokasyonunu belirtir.
    17:32Anahtar Üretimi ve Yapılandırma
    • Anahtar üretmek için bir script kullanılır ve bu script hem private key hem de public key üretir.
    • Anahtarlar resources dizininde oluşturulmalı ve konfigürasyonda doğru lokasyon belirtilmelidir.
    • JWT için bir iş tanımlaması gerekir, bu iş aslında JWT düzenleyicisinin adıdır.
    20:18JWT Oluşturma ve Özellikleri
    • JWT oluşturmak için Quercus'un microprofile config apisi kullanılabilir.
    • JWT içinde UPN (User Principal Name) veya subject olarak kullanıcıyı benzersiz şekilde tanımlayan bir alan bulunur.
    • JWT'e grup bilgisi, expiration süresi ve isteğe bağlı claim'ler (örneğin user id) eklenebilir.
    25:22Quercus'un Günlük Özellikleri
    • Quercus, uygulama ayağa kalkarken veritabanı servisleri sağlar ve data source konfigürasyonu gerektirmez.
    • Dev services özelliği, uygulama için uygun veritabanı servislerini otomatik olarak sağlar.
    • JWT üretimi sırasında "iss" (issuer) değeri, tokenun hangi domain veya uygulama için üretildiğini belirtir.
    32:15JWT Yapısı
    • JWT üç bölümden oluşur: header, claim ve signature.
    • Header kısmında token türü ve kullanılan imzalama algoritması bulunur.
    • Claim kısmı, kullanıcı ile ilgili bilgileri (user id, e-posta, doğum tarihi vb.) içerir.
    • Signature kısmı, tokenın hangi proje veya domain için üretildiğini belirten benzersiz bir değer içerir.
    33:53Quarkus ve JWT Yetkilendirme
    • Token ile ilgili basit ve hızlı bir yöntem gösterilecek.
    • JS 250 ile gelen permit ve rol notasyonları kullanılarak birden fazla rol tanımlanabilir.
    • Sistemde admin ve user olmak üzere iki rol bulunmakta ve Jack Ares bağlamı ile Quarcus ilgili header'da otantikasyon kontrolü yapılıyor.
    35:07JAX-RS ve Güvenlik Kontrolleri
    • JAX-RS'in kompleks notasyonu çeşitli resourceları enjekte etmeyi sağlıyor.
    • Security kompleks notasyonu kullanılarak principal (kullanıcı) bilgilerine erişilebiliyor.
    • Otantik olmayan kullanıcılar için "anonim" kullanıcı adı döndürülebiliyor.
    38:54Güvenlik Filtreleri
    • Güvenlik notasyonu class seviyesinde de kullanılabilir.
    • JAX'in sağladığı naming binding özelliği ile belirli rollerle ilgili eşleştirmeler yapılabilir.
    • RequestFilter arayüzü implement edilerek istek kontrolleri yapılabilir.
    40:57Güvenlik Filtresi Örneği
    • Güvenlik filtresinde otantik olmayan kullanıcıları kontrol edebilir ve refüze edebilirsiniz.
    • Global filtre kullanılarak tüm endpointler için geçerli kontroller uygulanabilir.
    • Path ve HTTP metodu gibi bilgiler request context üzerinden alınabilir.
    46:02Güvenlik Anotasyonları ve Quarkus Hakkında
    • Güvenlik anotasyonları ile belirli endpointlere erişim kontrolü yapılabilir.
    • Güvenlik filtresi debug modunda test edilebilir ve otantik olmayan kullanıcılar için 401 hata döndürülebilir.
    • Quarkus, Java dünyasında popüler bir platform olup, Docker gibi platformlarla entegre olabilir ve hızlı bir açılış hızı sunar.
    51:44Extensions'ın Production Ortamında Kullanımı
    • Extensions'ı production ortamında kullanırken özel yapılandırmalar gerekebilir, örneğin profile linki, datasource, user name gibi bilgileri girmek gerekebilir.
    • Open source bir proje olduğu için Quarkus geliştiricileri ve komünite tarafından extensions ile ilgili support alınabilir.
    • Postgres SQL, MySQL ve Apache Spring ile ilgili extensions'lar oldukça kararlı ve sağlamdır.
    53:19Alternatif Çözümler ve Farkındalık
    • Dünya sadece Spring'ten ibaret değildir, dilin kendi standartlarının sağladığı altyapılar da bulunmaktadır.
    • Bazı durumlarda Spring Security yerine JAX-RS gibi alternatiflerle güvenlik kontrolü yapılabilir, bu da gereksiz bir katman eklemeyi önler.
    • Farklı teknoloji ve altyapılar hakkında bilgi sahibi olmak geliştiricileri zenginleştirir.
    55:19Etkinliğin Kapanışı
    • Etkinliğin kaydı Crowcast tarafından otomatik olarak erişilebilir hale getirilmiş ve tekrar izlenebilir.
    • Önümüzdeki etkinlikler 27 Temmuz ve 5 Ağustos'ta gerçekleşecek.
    • Jakarta Live Stream etkinliğinde Core Jakarta teknolojisine odaklanılacağı için bugün gösterilenlerden daha fazlası görülebilir.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor