JWT tabanlı kimlik doğrulama
Patrona'yı, kişilerin kimliğini doğrulamak için JSON Web Token'ları (JWT) kullanarak kimlik sağlayıcınıza bağlayabilirsiniz.
Kimlik doğrulama akışları
Patrona, JWT ile kullanılabilecek iki kimlik doğrulama akışını destekler:
- Yetkilendirme Kodu Akışı
- PKCE ile Yetkilendirme Kodu Akışı
Patrona'nın kimlik doğrulama akışları, OAuth 2.0'dan sonra modellenmiş özel iş akışlarıdır. İsteğe bağlı olarak oluşturulan rastgele anahtarları dahil etmek için PKCE ile kimlik doğrulama akışını kullanabilirsiniz.
Şu anda Patrona'nın desteklediği tek algoritma HS256 (HMAC + SHA-256).
Patrona ile JWT tabanlı bir SSO etkileşimi için tipik akış
Sitenizin 3000 portunda hizmet veren localhost olduğunu varsayalım:
- Kişi bir soruyu görüntülemeye çalışır, örneğin
http://localhost:3000/question/1-superb-question
. - Kişi oturum açmamışsa, Patrona onları
http://localhost:3000/auth/sso
adresine yönlendirir. - Orijinal
/question/1-superb-question
URI'sini koruyarak, Patrona kişiyi SSO sağlayıcısına (kimlik doğrulama uygulaması) yönlendirir. - Kişi temel formu kullanarak oturum açar.
- Başarılı bir oturum açma durumunda, kimlik doğrulama uygulamanız, belirteç ve "geri dön" URI'si ile Patrona uç noktanıza bir GET isteği göndermelidir:
http://localhost:3000/auth/sso?jwt=TOKEN_GOES_HERE&return_to=/question/1-superb-question
. - Patrona, JSON Web Token'ı doğrular, kişinin oturumunu açar ve ardından kişiyi orijinal hedefine,
/question/1-superb-question
adresine yönlendirir.
JWT kimlik doğrulamasını etkinleştirme
Yönetici > Ayarlar bölümüne gidin, ardından Kimlik Doğrulama sekmesine tıklayın. Bu sayfanın JWT bölümündeki Yapılandır butonunu tıklayın ve şu formu göreceksiniz:
İşte her ayarın dökümü:
JWT Kimlik Sağlayıcı URI'si: Patrona'nın oturum açma isteklerini yönlendireceği yerdir. Yani, kullanıcılarınızın kimlik sağlayıcınız aracılığıyla oturum açmak için gittikleri yerdir.
JWT İmzalama Anahtarı Tarafından Kullanılan Dize: JWT mesajlarını doğrulamak için kullanılan özel anahtarı tohumlamak için kullanılan dize. Hem Patrona hem de kimlik doğrulama uygulaması aynı JWT imzalama anahtarına sahip olmalıdır.
Kullanıcı özniteliği yapılandırması (isteğe bağlı)
Bunlar, kullanıcı özniteliklerini Patrona'ya geçirmek için doldurabileceğiniz ek ayarlardır.
- E-posta özniteliği: Her JWT kullanıcısının e-posta adresini almak için anahtar.
- Ad özniteliği: Her JWT kullanıcısının adını almak için anahtar.
- Soyadı özniteliği: Eğer bunun her JWT kullanıcısının soyadını almak için anahtar olduğunu tahmin ettiyseniz, o zaman dikkatli davranıyorsunuz demektir.
JWT'nize anahtar/değer çiftleri olarak öznitelikler ekleyerek Patrona'ya ek kullanıcı öznitelikleri gönderebilirsiniz. Bu öznitelikler her oturum açmada senkronize edilecektir.
Grup eşlemelerini yapılandırma
JWT'nizi kullanarak Patrona kullanıcılarını özel gruplara atayabilirsiniz.
- JWT'nize gruplar ekleyin:
groups: ["group_name"]
. - Patrona'da, Yönetici paneline gidin ve Ayarlar > Kimlik Doğrulama sekmesine geçin.
- JWT altında Yapılandır butonunu tıklayın.
- Grup Şeması altında, Grup Üyeliklerini Senkronize Et butonunu açın.
- Yeni eşleme'ye tıklayın ve bir JWT grubu adı ekleyin.
- Görünen satırda, bunun eşlenmesi gereken Patrona grubu(larını) seçmek için açılır menüyü tıklayın.
- Eşlemek istediğiniz her grup için bunu tekrarlayın.
Alternatif olarak, JWT ve Patrona grupları arasındaki eşlemeleri ortam değişkeni MB_JWT_GROUP_MAPPINGS
kullanarak tanımlayabilirsiniz. Anahtarların JWT grupları ve değerlerin Patrona grupları kimliklerinin listeleri olduğu bir JSON nesnesi kabul eder. Örneğin:
MB_JWT_GROUP_MAPPINGS='{"extHR":[7], "extSales":[3,4]}'
extHR
, extSales
JWT gruplarının adları ve 3,4,7 Patrona gruplarının kimlikleridir.
Patrona Grup Kimliğini, grup sayfasının URL'sinde bulabilirsiniz, örneğin http://your-patrona-url/admin/people/groups/<ID>
. "Tüm Kullanıcılar" grubu 1 kimliğine ve "Yöneticiler" grubu 2 kimliğine sahiptir.
Grup senkronizasyonunu açmak veya kapatmak için ortam değişkeni MB_JWT_GROUP_SYNC
kullanabilirsiniz.
MB_JWT_GROUP_SYNC=true
SSO ile Patrona hesapları oluşturma
Ücretli planlar her ek hesap için ücret alır.
Yeni bir SSO oturumu açma, otomatik olarak yeni bir Patrona hesabı oluşturacaktır.
Dış kimlik sağlayıcı oturumu ile oluşturulan Patrona hesaplarının parolaları yoktur. Bir IdP kullanarak Patrona'ya kaydolan kişiler, Patrona'ya giriş yapmak için IdP'yi kullanmaya devam etmelidir.
Parola oturumlarını devre dışı bırakma
Patrona'nızdan kendinizi kilitlemekten kaçının! Bu ayar tüm Patrona hesapları için geçerli olacaktır, Patrona yönetici hesabınız da dahil. Parola kimlik doğrulamayı etkin tutmanızı öneririz. Bu, SSO ile ilgili herhangi bir sorun durumunda Patrona'dan kilitlenmenizi önleyecektir.
Kişilerin SSO ile oturum açmasını zorunlu kılmak için Yönetici ayarları > Kimlik Doğrulama bölümünden parola kimlik doğrulamayı devre dışı bırakın.
Azure hakkında not
Azure kullanıyorsanız, Azure AD B2C kullanmanız gerekebilir. Jetonlar genel bakış sayfasına göz atın.
JWT tabanlı kimlik doğrulama kullanan örnek kod
JWT kimlik doğrulamasını kullanan örnek kodu SSO örnekleri deposunda bulabilirsiniz.