Hizmetler Temel Kimlik Doğrulaması nasıl kullanılır?


10

Hizmetler Temel Kimlik Doğrulama modülü nasıl kullanılır ?

Hizmetime http temel yetki eklemek istiyorum. Yükledim ve bitiş noktası yapılandırmamda etkinleştirdim. Bitiş noktası yapılandırmamda bu "HTTP temel kimlik doğrulaması Services_basic_auth hiçbir ayarı yok" var. ayar sayfası nerede?

Yanıtlar:


11

Modül, drupal hesaplara karşı bir web hizmeti çağrısının kimliğini doğrular.

  1. Modülü etkinleştir
  2. Drupal kullanıcı kurma
  3. Web servisini kullanıcının kimlik bilgileriyle arayın.

Temel kimlik doğrulamada SSL kullanılmazsa kimlik bilgisinin ele geçirilebileceğini unutmayın.

Modül, standart PHP kimlik doğrulama başlıklarını kullanır ve belirli rolleri veya izinleri kontrol etmeden standart drupal giriş formunu gönderir. Böylece herhangi bir drupal kullanıcı çalışacaktır.

Kıvırmak veya test etmek için wget ile bir test web hizmeti çağrısı yapın . Ayrıca, curl stackoverflow yanıtıyla çağrıda PHP ile nasıl çağrılacağına dair talimatlar da vardır .


Bu, tek bir URL çağrısında bu yapıyı kullanmaktan tamamen farklı mı? myusername:
mypassword@example.com/callback

@Citricguy farklı değil. Bu sözdizimi URI şeması en.wikipedia.org/wiki/URI_scheme tarafından sağlanır . Ben öyle yapmazdım. Bazı REST hizmetleri bir tarayıcıda test edilebilir ve kimlik bilgilerinin tarayıcı geçmişine girmesinden endişelenirim. Https ile kimlik bilgileri şifrelenir. Ayrıca http kütüphanesine de bağlı olacaktır, php http iyi olabilir php.net/manual/tr/features.http-auth.php#44686 açıklamasına bakın . Microsoft tarayıcıları artık sözdizimini desteklemediğinden, arama yapmak için javascript kullanırsanız çalışmayabilir. Bazı API'lar bu yöntemi kullanır goo.gl/eS9mqv
Araya Giren

Maalesef, çağrıyı uygulama şeklinizin çağrı üzerinde hiçbir etkisi yoktur. Bu yüzden u: p@host.com ile çalışıp çalışmadığını test etmek sorun değildir. Diyorum ki böyle bir uygulama olabilir. Testleri kolaylaştırmak için URL'leri mümkün olduğunca erken değil, üstbilgiler olarak düşünürdüm.
Aralık

4

Yukarıdaki modül Temel erişim kimlik doğrulama tekniğini kullanarak servis çağrılarının kimliğini doğrulamak için kullanılır . Servis çağrısına Yetkilendirme başlığı ekleyerek aşağıdaki gibi servis çağrılarının kimliğini doğrulamak için Drupal Kullanıcı Adınızı ve şifrenizi kullanacaksınız.

Kullanıcı aracısı sunucu kimlik doğrulama bilgilerini göndermek istediğinde Yetkilendirme başlığını kullanabilir.

Yetkilendirme başlığı aşağıdaki gibi oluşturulur:

Kullanıcı adı ve şifre "username: password" dizesinde birleştirilir

Sonuçta elde edilen dize değişmez değeri daha sonra 76 karakter / satır ile sınırlı olmamak üzere Base64'ün RFC2045-MIME varyantı kullanılarak kodlanır.

Örneğin, kullanıcı aracısı kullanıcı adı olarak 'Aladdin' ve şifre olarak 'open susam' kullanıyorsa başlık aşağıdaki gibi oluşturulur:

Yetkilendirme: Temel QWxhZGRpbjpvcGVuIHNlc2FtZQ ==

Aşağıdaki örnek curl kullanan çağrıdır.

curl -H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" http://www.example.com/endpoint/yourservice

2
evet, zaten okudum, ama hala nasıl uygulanacağını bilmiyor musunuz? modülü kurduktan sonra ne yapmalı? herhangi bir yardım çok iyi olurdu. teşekkürler
Rijalul fikri

2
  1. Modül etkinleştirildikten sonra Yapı> Hizmetler'e gidin
  2. Bitiş Noktanızı seçin ve Düzenle'yi tıklayın resim açıklamasını buraya girin

  3. İstemcinizi test etmek için https://addons.mozilla.org/fr/firefox/addon/restclient/ gibi bir araç kullanın :

resim açıklamasını buraya girin

Not: HTTP temel kimlik doğrulaması seçeneği , bu son noktanın bir kaynağını çağırarak işaretlenmiş olsa bile , 401 yerine 200 döndürüyor gibi sorun yaşıyorum . Şunu söylemek gerekirse, modül uç noktamın güvenliğini sağlayamadı.

Sorun şurada görünür:

https://www.drupal.org/project/services_basic_auth
version: 7.x-1.4

Modül için bir yama yaparak çözdüm:

https://www.drupal.org/node/2734207


1

Sorun ne olabilir: Tüm ayarları yaptıktan sonra:

  1. hizmetler temel kimlik doğrulama modülünü etkinleştir
  2. hizmetler oluşturmak api bitiş noktası, örneğin: tüm düğümleri al
  3. düzenleme sayfasında "HTTP temel kimlik doğrulaması" onay kutusunu ayarla
  4. kullanıcı oluştur

"Yayınlanmış içeriği görüntüle" iznini devre dışı bırakmazsanız, herhangi bir kullanıcının, döndürülen sonuçla hizmet api bitiş noktasına erişebileceğini fark ettiniz.


0

Services Basic AuthenticationModülü kurduktan sonra sunucunuzun REST ayarlarına gidin:

/admin/structure/services

Enter Editseçeneği ve altta bir onay kutusu var:

HTTP basic authentication

Etkinleştirin ve Kaydet düğmesine basın.


HTTP temel kimlik doğrulaması için hangi kullanıcı: şifreyi kullanacağım?
AshwinP

-1

İçerik erişim modülünü kullanmayı unutmayın.

MPD'nin talebi üzerine ek ayrıntılar ekleme.

İçerik erişim modülünü kullanmıyorsanız, kullanıcı, başkaları tarafından oluşturulan ve görmemesi gereken tüm içeriği görür. Örneğin, A kullanıcısı, B kullanıcısının görmemesi ya da tam tersi kişisel verileri depolamıştır. Hizmetler Temel Kimlik Doğrulama modülü kimlik doğrulamayı etkinleştirir, ancak içerik erişimini zorlamaz. İçerik Erişim modülü bunu zorunlu kılar. İçerik erişim denetimini kullanmıyorsanız, kullanıcının kimliğini doğrulamanın bir anlamı yoktur.


Bu modülün kullanıcının ihtiyaçlarını nasıl çözebileceğini genişletebilir misiniz?
mpdonadio

Lütfen orijinal cevaptaki güncellememe bakın.
techwestcoastsfosea
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.