Pertanyaan HTTP Dasar dan Otentikasi Token Pembawa


Saat ini saya mengembangkan REST-API yang dilindungi HTTP-Basic untuk lingkungan pengembangan. Karena otentikasi yang sebenarnya dilakukan melalui token, saya masih mencoba untuk mencari tahu, bagaimana cara mengirimkan dua header otorisasi.

Saya sudah mencoba yang ini:

curl -i http://dev.myapp.com/api/users \
  -H "Authorization: Basic Ym9zY236Ym9zY28=" \
  -H "Authorization: Bearer mytoken123"

Saya bisa misalnya menonaktifkan HTTP-Authentication untuk IP saya tetapi karena saya biasanya bekerja di lingkungan yang berbeda dengan IP dinamis, ini bukan solusi yang baik. Jadi saya kehilangan sesuatu?


76
2018-03-06 16:16


asal


Jawaban:


Coba yang ini untuk mendorong otentikasi dasar di url:

curl -i http://username:password@dev.myapp.com/api/users -H "Authorization: Bearer mytoken123"
               ^^^^^^^^^^^^^^^^^^

Jika di atas tidak berhasil, maka Anda tidak ada hubungannya dengan itu. Jadi cobalah alternatif berikut.

Anda dapat meneruskan token dengan nama lain. Karena Anda menangani otorisasi dari Aplikasi Anda. Jadi Anda dapat dengan mudah menggunakan fleksibilitas ini untuk tujuan khusus ini.

curl -i http://dev.myapp.com/api/users \
  -H "Authorization: Basic Ym9zY236Ym9zY28=" \
  -H "Application-Authorization: mytoken123"

Perhatikan saya telah mengubah header menjadi Application-Authorization. Jadi dari aplikasi Anda, tangkap token di bawah tajuk itu dan proses apa yang perlu Anda lakukan.

Hal lain yang bisa Anda lakukan adalah, untuk lulus token melalui POST parameter dan ambil nilai parameter dari sisi Server. Misalnya lewat token dengan parameter posting curl:

-d "auth-token=mytoken123"

42
2018-03-21 17:04



Standarhttps://tools.ietf.org/html/rfc6750) mengatakan Anda dapat menggunakan:

  • Form-Encoded Body Parameter: Otorisasi: Bearer mytoken123
  • Parameter Kueri URI: access_token = mytoken123

Jadi mungkin untuk memberikan banyak Token Pembawa dengan URI, tetapi melakukan hal ini tidak disarankan (lihat bagian 5 dalam standar).


26
2017-08-12 07:36



ikal --anyauth

Memberi tahu ikal untuk mencari tahu metode otentikasi dengan sendirinya, dan menggunakan   paling aman yang diklaim oleh situs remote untuk mendukung. Ini dilakukan oleh   pertama melakukan permintaan dan memeriksa header tanggapan, dengan demikian   mungkin mendorong perjalanan pulang-pergi jaringan tambahan. Ini digunakan   alih-alih menetapkan metode otentikasi khusus, yang Anda bisa   lakukan dengan --basic, --digest, --ntlm, dan   --negosiasi.


1
2018-03-26 20:30



Jika Anda menggunakan proxy terbalik seperti nginx di antaranya, Anda dapat menentukan token khusus, seperti X-API-Token.

Dalam nginx Anda akan menulis ulang untuk proksi hulu (api istirahat Anda) menjadi hanya auth:

proxy_set_header Authorization $http_x_api_token;

... sementara nginx dapat menggunakan header Otorisasi asli untuk memeriksa HTTP AUth.


1
2018-06-21 14:35



Saya memiliki masalah yang sama - mengotentikasi perangkat dan pengguna di perangkat. Saya menggunakan a Cookie tajuk bersama sebuah Authorization: Bearer... tajuk.


0
2018-04-10 00:43