it-swarm-id.com

Teknik otentikasi api web

Kami memiliki kerangka kerja layanan web asp.net MVC untuk melayani xml/json untuk orang-orang. Dapatkan permintaan tetapi berjuang untuk mencari tahu cara terbaik (cepat, mudah, sepele untuk pengguna yang mengkode dengan javascript atau OO = bahasa) untuk mengautentikasi pengguna. Bukan karena data kami sensitif atau apa pun, kami hanya ingin pengguna mendaftar sehingga kami dapat memiliki alamat email mereka untuk memberi tahu mereka tentang perubahan dan melacak penggunaan.

Dalam upaya kami sebelumnya, kami memiliki nama pengguna di URI dan akan memastikan bahwa nama pengguna ada dan menambah tabel db dengan penggunaan. Ini sangat mendasar tetapi kami akan melihat orang menggunakan demo sebagai nama pengguna, dll. Jadi kami membutuhkannya agar sedikit lebih canggih.

Apa teknik otentikasi yang tersedia? Apa yang para pemain utama gunakan/lakukan.

26
Steve

Saya menanyakan pertanyaan itu pada StackOverflow dan Anda dapat baca di sini . Lihat juga jawaban saya untuk pertanyaan saya sendiri. Yaitu tentang otentikasi tepatnya tanpa harus memasukkan kata sandi untuk setiap permintaan, dan tanpa SSL atau Enkripsi. Hanya hashing sederhana.

10
user2567

Video ini adalah cara menarik menggunakan kunci API dengan layanan WCF/REST Anda. kode .

3
Tangurena

Saya bawa Anda menggunakan studio visual. Jika Anda menggunakan vs 2010 dengan kerangka kerja 4.0, Anda bisa memeriksa templat "WCF REST Layanan Dengan Verifikasi Kunci API" di vs. 2010.

0
KinGBin

Saya selalu menggunakan otentikasi HTTP untuk layanan web. Otentikasi itu sendiri akan ditangani oleh server web Anda, kemungkinan IIS dalam kasus Anda. Anda kemudian akan mengkonfigurasi IIS untuk mengautentikasi terhadap database Anda, toko LDAP, atau serupa.

Anda kemudian akan mengakses nama pengguna melalui properti User.Identity.Name

EDIT : Contoh otentikasi JQuery:

/* I found that providing the username and password both in the
   the arguments and in the url parameter seems to have better compatibility,
   if it works well for you, it is highly advisable to remove the 
   user/pass from the url */

function doLogin (){
  $.ajax({
    username: $('#username').val(),
    password: $('#password').val(),
    url: 'https://'+$('#username').val()+':'+$('#password').val()+'@api.example.com',
    dataType: 'jsonp',
    context: $('#result'),
    success: function(d) { $(this).html(d); $(location).attr('href','https://api.example.com/success'); }
    });
    return false;
}
0
ewindisch