REST API'sinde Yetkilendirme başlığının özel kullanımı


10

İstemcilerin istemci sertifikaları kullanılarak kimliğinin doğrulandığı bir REST API'si oluşturuyorum. Bu durumda bir istemci bireysel bir kullanıcı değil, bir çeşit sunum katmanıdır. Kullanıcılar özel bir yaklaşım kullanarak doğrulanır ve bunun düzgün bir şekilde yapıldığını görmek sunum katmanının sorumluluğundadır (not: Bunun doğru bir yaklaşım olmadığını, ancak API'nin kamuya açık olmadığını biliyorum).

Her istek için kullanıcı adını (parola değil) iletmek istiyorum, ancak bunu nerede yapacağımdan emin değilim. Yetkilendirme başlığını kullanmak iyi bir fikir olur mu?

Yanıtlar:


21

Yetkilendirme başlığını kullanmak, yapılacak doğru şey gibi görünüyor. Yetkilendirme başlığının tüm amacı budur.

Http://tools.ietf.org/html/rfc7235#section-4.2 adresinden :

"Yetkilendirme" üstbilgisi alanı, bir kullanıcı aracının, genellikle, ancak zorunlu olarak, bir 401 (Yetkisiz) yanıtı aldıktan sonra, kimlik doğrulaması yapmasını sağlar. Değeri, talep edilen kaynağın alanı için kullanıcı aracısının kimlik doğrulama bilgilerini içeren kimlik bilgilerinden oluşur.

Kendi kimlik doğrulama düzeniniz varsa, ancak tekerleği yeniden keşfetmeye gerek yoktur.


3
Sadece değil gibi görünüyor o doğru şey gibi olduğunu Doğru olanı. (Bunu bütün gün araştırıyorum) RFC 7235'teki Bölüm 4.1 , müşterinin her iki plandan birini seçmesine izin veren standart bir "Temel" şema ile birlikte "Örneğin" de "Newauth" özel şemasının kullanımını açıkça göstermektedir. . Bununla birlikte, bir "standart" şema kullanıyorsanız, bunu doğru bir şekilde kullanmanız gerekir. Zach'in yanıtı doğru ve Filipin yanıtı yanlış .
Stephen P

3

Standart bir HTTP üstbilgisinin standart olmayan kullanımını kullanmanızı önermem. Öncelikle, Authoriziationüstbilginin HTTP kimlik doğrulamasında nasıl kullanıldığını bilen diğer geliştiricilere yanıltıcı olabileceği için , aynı zamanda yığınızın diğer bölümleriyle aynı istek üstbilgisinin çakışan farkındalığına sahip olabilecek olası sorunlardan kaçınmak da yanıltıcı olabilir .

Durum ne olursa olsun, özel, standart dışı bir X-Authorization-Userbaşlık, özellikle amaçlarınız için kullanmanızı engelleyen hiçbir şey yoktur .


% 100 kabul etti. Özel bir şey yapmak istiyorsanız, önceden X-eklenmiş başlıkların amacı budur . Standart bir başlık kullanacaksanız, alışılmadık veya beklenmedik bir şey için kullanmayın.
Carson63000

2
Sadece "X-" in kullanımdan kaldırıldığını belirtmem gerektiğini düşündüm: stackoverflow.com/questions/3561381/…
Matsen75

Bu cevap başına, Amazon S3'ün yanlış yaptığı anlamına mı geliyor? docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
Tom Lianza

4
-1. Zach Dennis'in belirttiği gibi, diğer HTTP başlıklarının çoğundan farklı olarak, Yetkilendirme başlığı genişletilecek şekilde tasarlanmıştır ve kendi yetkilendirme planınızı nasıl tanımlayacağınız konusunda açık bir şekilde belirlenmiş bir yol vardır. Bir somun kabuğunda, özel bir yetkilendirme şeması adı kullandığınızdan emin olun.
Yalan Ryan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.