Basic-auth eklentisi, HTTP Temel Kimlik Doğrulama (HTTP Basic Authentication) standardına göre istekleri kimlik doğrular ve yetkilendirir.
Eklenti türü
Kimlik doğrulama ve yetkilendirme.
Alanlar
Kimlik doğrulama yapılandırması
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
consumers içindeki alanlar:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(İsteğe bağlı) Yetkilendirme yapılandırması
|
|
|
|
|
|
|
|
|
|
|
|
Yetkilendirme ve kimlik doğrulama yapılandırmaları aynı kuralda birlikte bulunamaz.
Kimliği doğrulanmış istekler için arayanı tanımlamak amacıyla istek üstbilgisine
X-Mse-Consumeralanı eklenir.
Örnekler
Kimlik doğrulamayı genel olarak yapılandırın ve rotalar için yetkilendirmeyi yapılandırın
Bu örnekte bir ağ geçidinin belirli rotaları veya alan adları için temel kimlik doğrulama ve yetkilendirme etkinleştirilir.
Kimlik bilgisindeki kullanıcı adı ve parola iki nokta üst üste (:) ile ayrılır.
credentialdeğeri benzersiz olmalıdır.
Aşağıdaki eklenti yapılandırmalarını örnek düzeyinde uygulayın:
global_auth: false
consumers:
- credential: 'admin:123456'
name: consumer1
- credential: 'guest:abc'
name: consumer2
Aşağıdaki eklenti yapılandırmalarını route-a ve route-b rotalarına uygulayın:
allow:
- consumer1
Aşağıdaki eklenti yapılandırmasını *.example.com ve test.com alan adlarına uygulayın:
allow:
- consumer2
Bu örnekte
route-averoute-brotaları ağ geçidi rotaları oluşturulurken belirtilen rotalardır. Bir istemci isteği bu rotalardan biriyle eşleşirsenamedeğericonsumer1olan arayanın ağ geçidine erişmesine izin verilir. Diğer arayanların ağ geçidine erişmesine izin verilmez.Bu örnekte
*.example.comvetest.comalan adları isteklerdeki alan adlarıyla eşleşmek için kullanılır. Bir istemci isteği bu alan adlarından biriyle eşleşirsenamedeğericonsumer2olan arayanın ağ geçidine erişmesine izin verilir. Diğer arayanların ağ geçidine erişmesine izin verilmez.
Bu yapılandırmalar aşağıdaki isteklere izin verir:
Kullanıcı adı ve parola istekte belirtilir.
# In this example, route-a in the request is matched.
# Use the -u parameter in the curl command to specify the username and password.
curl -u admin:123456 http://xxx.hello.com/test
# You can also directly specify the Authorization request header in which the username and password are base64-encoded.
curl -H 'Authorization: Basic YWRtaW46MTIzNDU2' http://xxx.hello.com/test
Kimlik doğrulama başarılı olduktan sonra arayanı tanımlamak için istek üstbilgilerine X-Mse-Consumer alanı eklenir. Bu örnekte değer consumer1 olur.
Bu yapılandırmalar aşağıdaki istekleri reddeder:
-
İstekte kimlik bilgisi sağlanmaz ve HTTP durum kodu 401 döndürülür.
curl http://xxx.hello.com/test -
Kullanıcı adı veya parola geçersizdir ve HTTP durum kodu 401 döndürülür.
curl -u admin:abc http://xxx.hello.com/test -
Kimlik bilgileriyle eşleşen arayanın erişim izni yoktur ve HTTP durum kodu 403 döndürülür.
# The consumer named consumer2 is not in the allow list of route-a. curl -u guest:abc http://xxx.hello.com/test
Ağ geçitleri için kimlik doğrulamayı etkinleştirin
Örnek düzeyinde temel kimlik doğrulamayı etkinleştirmek için aşağıdaki yapılandırmayı uygulayın. Ardından tüm isteklerin kimliği doğrulanmalıdır.
global_auth: true
consumers:
- credential: 'admin:123456'
name: consumer1
- credential: 'guest:abc'
name: consumer2
Hata kodları
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|