OAuth: perihalan protokol dalam bahasa yang mudah dan boleh difahami. Alternatif kepada akaun perkhidmatan. Akses dan muat semula token

Terdapat banyak cara untuk mengedarkan spam berniat jahat di VKontakte. Tetapi perosak tidak tidur, semakin banyak yang masuk ke dalam kepala mereka idea yang menarik. Dan ternyata ia sangat berguna. Penipu telah belajar menggunakannya untuk memintas halaman amaran tentang tapak berniat jahat.

Dan semuanya bermula apabila satu hari mesej berikut muncul di dinding saya:


Kerana ingin tahu, saya mengikuti pautan itu dan berakhir di tapak pancingan data yang lain. Tetapi pautan itu sendiri kelihatan pelik kepada saya, ia kelihatan seperti (separuh aksara dalam ASCII):
vkontakte.ru/away.php ? kepada=http%3A%2F%2FApi.vKontakte.Ru%2F%2Fo%2561u%2574%…

Di sinilah keseronokan bermula...
Mari lihat pautan kedua dalam bahagian:

Apakah maksud setiap parameter:

  • client_id - ID aplikasi yang memerlukan kebenaran;
  • redirect_uri - alamat yang akan dihantar access_token (melalui ubah hala);
  • paparan - jenis tetingkap kebenaran (halaman, pop timbul, sentuh dan wap).
Sebenarnya, redirect_uri mengandungi alamat tapak pancingan data. Memandangkan terdapat ralat dalam parameter paparan (ia mengandungi sampah "?390852"), tetingkap kebenaran tidak dipaparkan, tetapi segera dialihkan ke tapak pancingan data dengan parameter berikut: error=invalid_request&error_description=Tidak sah+paparan+lulus

Ini adalah titik keseluruhan untuk memintas senarai hitam tapak VKontakte yang berniat jahat. Hanya makluman tentang peralihan kepada api.vk.com muncul. Dan sebagai hasil daripada peralihan, kami pergi terus ke tapak pancingan data yang berada dalam senarai hitam. Apabila anda mengikuti pautan vkontakte.ru/away.php?to=vgostivk.dyndns**:

Ternyata, aplikasi yang sepatutnya memerlukan kebenaran tergantung pada pengguna yang digodam:

Dan tapak pancingan data itu sendiri direka dengan agak menarik. Reka bentuk, seperti biasa, adalah gaya kenalan dan diminta untuk log masuk. Saya log masuk menggunakan e-mel dan kata laluan rawak, dan saya menelan yang palsu dengan baik. Apa yang berlaku seterusnya adalah lebih menarik; berita dari "Pavel Durov" muncul di halaman utama:

Selepas mengklik pada butang "Buat kaunter peribadi", bar kemajuan yang menarik diikuti. Kemudian anda diminta untuk menunjukkan nombor anda dan menghantar SMS:

Secara teorinya, selepas berjaya "pengaktifan" ia sepatutnya dialihkan ke halaman activ.php, tetapi saya tidak dapat ke sana. Petikan daripada skrip JS tapak pancingan data:

...
jika (req.status == 200) (
// jika status adalah 200 (OK) - berikan respons kepada pengguna
if (req.responseText == "ok" ) (
//statusElem.innerHTML = "Semuanya berdengung!";
get_activation();
}
if (req.responseText == "not") (statusElem.innerHTML = "Kod pengaktifan tidak sah";}
//statusElem.innerHTML = "Respons pelayan: "+req.responseText;
...
fungsi get_activation() (
document .location="activ.php" ;
}

* Kod sumber ini telah diserlahkan dengan Penyerlah Kod Sumber.


Pokoknya: Penipu menggunakan OAuth 2.0 untuk memintas amaran, mendapatkan kata laluan dan e-mel pengguna, malah cuba menipu menghantar sms(kemungkinan besar menggunakan sistem langganan).
  1. Membuka penyemak imbas terbina dalam dengan halaman log masuk
  2. Pengguna diminta untuk mengesahkan bahawa hak telah diberikan.
  3. Jika pengguna bersetuju, penyemak imbas dialihkan ke halaman rintisan dalam serpihan (selepas #) yang URLnya ditambahkan token akses
  4. Aplikasi memintas ubah hala dan menerima token akses daripada alamat halaman
Pilihan ini memerlukan menaikkan tetingkap penyemak imbas dalam aplikasi, tetapi tidak memerlukan bahagian pelayan dan panggilan tambahan pelayan-ke-pelayan untuk pertukaran kod kebenaran pada token akses.
Contoh
Buka penyemak imbas dengan halaman log masuk:
> DAPATKAN /oauth/authorize?response_type=token&client_id=464119 HTTP/1.1 > Hos: connect.mail.ru

Selepas pengguna memberikan kebenaran, ubah hala berlaku ke halaman rintisan standard, untuk Mail.Ru ini adalah connect.mail.ru/oauth/success.html:
< HTTP/1.1 302 Found < Location: http://connect.mail.ru/oauth/success.html#access_token=FJQbwq9&token_type=bearer& expires_in=86400&refresh_token=yaeFa0gu

Permohonan mesti memintas ubah hala terakhir dan mendapatkan daripada alamat token akses dan menggunakannya untuk mengakses sumber yang dilindungi.

Keizinan melalui log masuk dan kata laluan

Keizinan melalui log masuk dan kata laluan adalah permintaan POST yang mudah, akibatnya ia dikembalikan token akses. Skim ini bukanlah sesuatu yang baharu, tetapi disertakan dalam piawaian untuk keluasan dan disyorkan untuk digunakan hanya apabila pilihan kebenaran lain tidak tersedia.
Contoh
> POST /oauth/token HTTP/1.1 > Hos: connect.mail.ru > Content-Type: application/x-www-form-urlencoded > > grant_type=password&client_id=31337&client_secret=deadbeef&username=api@corp.mail.ru& password= qwerty< HTTP/1.1 200 OK < Content-Type: application/json < < { < "access_token":"SlAV32hkKG", < "token_type":"bearer", < "expires_in":86400, < "refresh_token":"8xLOxBtZp8", < }
Penerangan dalam spesifikasi

Memulihkan kebenaran sebelumnya

Biasanya, token akses mempunyai jangka hayat yang terhad. Ini boleh berguna, sebagai contoh, jika ia dihantar saluran terbuka. Untuk mengelak daripada memaksa pengguna untuk log masuk selepas tamat tempoh token akses"dan, dalam semua pilihan di atas, sebagai tambahan kepada token akses"boleh balik lagi token muat semula. Anda boleh menggunakannya untuk mendapatkan token akses menggunakan permintaan HTTP, sama seperti kebenaran menggunakan log masuk dan kata laluan.
Contoh
> POST /oauth/token HTTP/1.1 > Hos: connect.mail.ru > Content-Type: application/x-www-form-urlencoded > > grant_type=refresh_token&client_id=31337&client_secret=deadbeef&refresh_token=8xLOxBtZp8< HTTP/1.1 200 OK < Content-Type: application/json < < { < "access_token":"Uu8oor1i", < "token_type":"bearer", < "expires_in":86400, < "refresh_token":"ohWo1ohr", < }

Akibatnya permohonan pelanggan menggunakan API AdWords boleh mengakses akaun AdWords anda tanpa alamat E-mel dan kata laluan pengguna.

Mencipta Bukti Kelayakan OAuth2

Untuk membuat bukti kelayakan OAuth2, ikut langkah di bawah.

Menentukan Jenis Permohonan

Pertama, anda perlu menentukan jenis permohonan, yang anda ingin buat. Terdapat dua jenis aplikasi dalam API AdWords:

  • aplikasi yang boleh dipasang(disyorkan);
  • aplikasi sesawang.

Dengan menggunakan jadual di bawah, tentukan jenis yang dikehendaki aplikasi.

Apa yang perlu dipilih Situasi
Aplikasi yang boleh dipasang(disyorkan)
  • Anda mengurus semua akaun AdWords dengan satu akaun pengurus tingkat atas.
  • Adakah anda baru bermula atau mahu bermula dengan cepat?
  • Aplikasi anda akan berfungsi dengan satu set akaun AdWords dengan berbilang pengguna.
aplikasi sesawang
  • Adakah anda ingin mengesahkan untuk menyediakan pengguna yang berbeza hak akses yang berbeza kepada data akaun AdWords.
  • Anda perlu membuat beberapa set bukti kelayakan, contohnya untuk mengurus akaun pihak ketiga.
  • Aplikasi anda memerlukan URL panggil balik yang tidak disokong dalam aplikasi yang dipasang.
Perhatian!Walaupun anda sedang membangunkan aplikasi web, anda masih boleh memilih aplikasi yang hendak dipasang. Perbezaan utama ialah sama ada panggilan balik perlu dilakukan selepas token dikeluarkan. Contohnya, jika anda menggunakan satu akaun pengurus peringkat atas untuk mengurus semua akaun AdWords anda, aplikasi yang anda pasang mesti didaftarkan, walaupun jika aplikasi pelanggan boleh diakses melalui Internet. Catatan.dibincangkan di bawah. Jika anda tidak memerlukan kefungsian akaun perkhidmatan, kami amat mengesyorkan anda menggunakan proses kebenaran untuk aplikasi yang boleh dipasang atau web.

Mencipta ID pelanggan dan kod rahsia

Sebaik sahaja anda telah menentukan jenis permohonan anda, klik pada tab yang sesuai di bawah dan ikut arahan untuk membuat ID dan kod rahsia pelanggan.

Aplikasi yang boleh dipasang

  1. Buka
  2. Buat projek Buat.
  3. Cipta Bukti Kelayakan, dan kemudian - ID Pelanggan OAuth.
  4. Jimat
  5. Dalam bab Jenis permohonan pilih Jenis lain dan memberikan maklumat yang diperlukan.
  6. klik Buat.
  7. pengecam Dan Kunci rahsia
aplikasi sesawang
  1. Buka
  2. Daripada menu lungsur turun projek, pilih Buat projek, kemudian nyatakan nama projek dan tukar IDnya jika perlu, kemudian klik butang Buat.
  3. Pada halaman Bukti kelayakan, pilih Cipta Bukti Kelayakan, dan kemudian - ID Pelanggan OAuth.
  4. Anda mungkin diminta untuk memberikan nama produk. Dalam kes ini, klik Sesuaikan tetingkap permintaan akses, masukkan maklumat yang diminta dan klik Jimat untuk kembali ke skrin Bukti kelayakan.
  5. Dalam bab Jenis permohonan pilih aplikasi sesawang. Ikut arahan untuk menentukan sumber JavaScript dan/atau ubah hala URI.
  6. klik Buat.
  7. Pada halaman yang muncul, salin pengecam Dan Kunci rahsia klien - anda memerlukannya semasa menyediakan perpustakaan klien.

Ikut arahan di bawah untuk mengkonfigurasi penggunaan bukti kelayakan OAuth2 dengan pustaka klien bahasa anda.

Catatan.Jika anda memilih untuk tidak menggunakan salah satu perpustakaan pelanggan kami, anda perlu melaksanakan proses untuk atau diri anda sendiri.

Taman Permainan OAuth2

Pilihan alternatif untuk membuat bukti kelayakan OAuth2 ialah menggunakan Taman Permainan OAuth2. Digabungkan dengan Google API Console, sistem ini membolehkan anda membuat token OAuth2 sendiri.

Sistem OAuth2 Playground direka untuk pengguna yang memerlukan akses kepada akaun sahaja satu akaun pengurus atau pengguna AdWords. Jika anda perlu meminta bukti kelayakan untuk berbilang pengguna, maka lebih baik menggunakan perpustakaan klien seperti yang diterangkan di atas.

tetapan

Amaran.Untuk menggunakan Taman Permainan OAuth2, anda perlu buat id pelanggan Untuk . ini hanya satu sejenis aplikasi yang berfungsi dengan OAuth2 Playground. Baca lebih lanjut dalam bahagian di atas.

Bagaimana untuk mendapatkan ID pelanggan dan kunci rahsia

  1. Buka
  2. Pilih projek sedia ada daripada menu lungsur atau buat projek baharu.
  3. Pada halaman Bukti kelayakan, pilih Cipta Bukti Kelayakan, dan kemudian - ID Pelanggan OAuth.
  4. Dalam bab Jenis permohonan pilih aplikasi sesawang.
  5. Dalam bahagian tambah baris seterusnya: https://site/oauthplayground
  6. klik Buat.
  7. Tuliskannya pengecam Dan Kunci rahsia pelanggan yang ditunjukkan pada halaman yang muncul. Anda akan memerlukannya dalam langkah seterusnya.

Cara membuat token

Amaran.Dari apa akaun Google Anda telah log masuk ke penyemak imbas anda, ia bergantung pada akaun AdWords yang boleh anda akses menggunakan bukti kelayakan OAuth2 yang anda buat. Mungkin lebih baik anda melengkapkan langkah ini dalam mod inkognito atau tanpa log masuk ke Akaun Google anda. Kemungkinan besar anda perlu menggunakan bukti kelayakan yang berbeza daripada akaun yang anda gunakan semasa anda menerima ID Pelanggan dan Kunci Rahsia.

Bagaimana untuk mengalih keluar Taman Permainan OAuth2 daripada ID Pelanggan

Memandangkan anda sudah mempunyai token muat semula, anda tidak perlu lagi menggunakan OAuth2 Playground sebagai URI ubah hala anda yang telah diselesaikan. Untuk mengalih keluar sistem ini daripada senarai, ikuti langkah berikut:

  1. Pergi ke .
  2. Pilih projek anda daripada menu lungsur.
  3. Pada halaman Bukti kelayakan, pilih nama ID pelanggan.
  4. Alih keluar https://site/oauthplayground daripada medan URI ubah hala yang dibenarkan. Sila ambil perhatian bahawa anda mesti meninggalkan sekurang-kurangnya satu Ubah hala URI.
  5. klik Jimat.

Jadi anda mempunyai bukti kelayakan OAuth anda. Anda kini boleh menanyakan API AdWords dan menggunakannya terhadap pustaka pelanggan yang diperlukan.

Akaun perkhidmatan OAuth2

Bahagian ini menerangkan cara untuk mengakses API AdWords menggunakan akaun perkhidmatan.

Akaun perkhidmatan ialah akaun yang dimiliki oleh aplikasi, bukan akaun yang berasingan. pengguna akhir. Akaun perkhidmatan menyediakan interaksi antara aplikasi web dan perkhidmatan Google. Aplikasi anda memanggil API bagi pihak akaun perkhidmatan tanpa melibatkan pengguna secara langsung.

API AdWords membenarkan akses akaun perkhidmatan merentas domain G Suite.

Akaun perkhidmatan melaksanakan proses OAuth2, yang bukannya membenarkan pengguna menggunakan fail utama yang hanya boleh diakses oleh aplikasi anda.

Menggunakan akaun perkhidmatan memberikan dua kelebihan penting:

  • Membenarkan akses aplikasi kepada API Google dijalankan pada peringkat persediaan. Ini mengelakkan kerumitan memerlukan campur tangan pengguna atau menyimpan token dalam aliran OAuth2 lain.
  • Penyamaran pengguna lain dalam aplikasi, jika perlu, dilakukan sebagai sebahagian daripada proses kelulusan OAuth2.
Catatan. Jika anda tidak menggunakan fungsi khas domain, seperti penyamaran, bukannya akaun perkhidmatan, adalah sangat disyorkan untuk menggunakan proses untuk . Sebagai sebahagian daripada proses pemasangan dan aplikasi web OAuth2, penyertaan pengguna diperlukan sekali sahaja - pada masa memberikan akses kepada akaun.

Alternatif kepada akaun perkhidmatan

Akaun perkhidmatan digunakan secara meluas untuk menyediakan akses perisian kepada API melalui protokol OAuth2 tanpa campur tangan pengguna.

Walau bagaimanapun, menyediakan akaun sedemikian untuk berfungsi dengan API AdWords bukanlah mudah. Alternatif yang lebih mudah adalah dengan token penyegaran berterusan. Pendekatan ini membolehkan aplikasi meminta token akses baharu pada bila-bila masa.

Sebagai sebahagian daripada proses ini, anda perlu mengkonfigurasi kebenaran aplikasi melalui pustaka klien seperti yang diterangkan di atas. Ini hanya perlu dilakukan sekali, kerana token tamat tempoh kemas kini Google OAuth2 tidak terhad.

Keperluan

  • Domain G Suite yang anda miliki, seperti mydomain.com atau mybusiness.com.
  • Token pembangun API AdWords dan sebaik-baiknya akaun ujian.
  • untuk bahasa yang digunakan.

Menyediakan akses untuk akaun pelanggan

Mula-mula, anda perlu membuat kunci akaun perkhidmatan dalam Konsol API Google.

  1. Log masuk ke akaun G Suite anda, buka .
  2. Daripada menu lungsur turun projek, pilih Buat projek, kemudian berikan maklumat yang diperlukan dan klik butang Buat. Projek baru akan muncul dalam senarai aktif.
  3. Dalam menu di sebelah kiri bucu atas pilih IAM dan pentadbiran, dan kemudian - Akaun perkhidmatan dalam menu di sebelah kiri.
  4. klik Buat akaun perkhidmatan di bahagian atas halaman.
  5. Masukkan nama akaun perkhidmatan.
  6. Semak kotak Buat baru kunci peribadi dan pilih jenis kunci JSON.
  7. Semak kotak Dayakan perwakilan akses data dalam domain G Suite anda dan berikan nama produk untuk tetingkap permintaan akses.
  8. klik Buat. Fail kunci JSON akan mula dimuat turun. Simpan fail di tempat yang selamat di mana hanya anda mempunyai akses.
  9. Pada halaman Akaun perkhidmatan akaun perkhidmatan baharu akan muncul.
Catatan. Kerana penyamaran pengguna boleh dikawal sahaja di peringkat domain, untuk menggunakan akaun perkhidmatan dan proses kelulusan dengan perkhidmatan Google OAuth2, anda memerlukan domain anda sendiri yang didaftarkan dengan G Suite. Semua pengguna domain yang menggunakan akaun perkhidmatan dengan kebenaran yang sesuai boleh menyamar sebagai mana-mana pengguna domain.

Isu keselamatan

Oleh kerana G Suite diurus pada peringkat domain, anda mesti melindungi fail kunci yang membolehkan akaun yang dibenarkan mengakses dengan selamat perkhidmatan Google. Ini amat penting kerana kami menyediakan akaun perkhidmatan dengan keupayaan untuk menyamar sebagai pengguna domain.

Di samping itu, adalah disyorkan bahawa setiap akaun perkhidmatan mempunyai akses kepada hanya satu API Google. Medan digunakan untuk ini skop, yang diterangkan dalam bahagian seterusnya. begitu langkah pencegahan membolehkan anda mengehadkan jumlah data yang dibuka kepada akses tanpa kebenaran sekiranya fail utama dikompromi.

Cara menyediakan keupayaan penyamaran

Untuk memberikan keupayaan penyamaran kepada akaun perkhidmatan, ikut langkah berikut:

Anda kini boleh mengakses akaun AdWords anda menggunakan akaun perkhidmatan anda sebagai sebahagian daripada proses kelulusan OAuth2.

Menyediakan perpustakaan pelanggan

Pilih bahasa untuk melihat arahan untuk menyediakan pustaka klien.

Catatan.Jika anda memilih untuk tidak menggunakan salah satu perpustakaan pelanggan kami, anda perlu melaksanakan proses itu sendiri.

Mengoptimumkan permintaan OAuth2

Jika apl anda tidak menggunakan perkongsian bukti kelayakan, ia boleh meningkatkan bilangan permintaan yang dihantar kepada Google dengan ketara. Akibatnya, pelayan kami mungkin mengenakan sekatan ke atas aplikasi sedemikian, yang akan mengurangkan kelajuan operasinya.

Bahagian ini menerangkan cara mengoptimumkan pengurusan bukti kelayakan OAuth2 supaya aplikasi anda berinteraksi dengan lebih berkesan dengan API AdWords.

Perhatian!Di bawah istilah kelayakan Ini merujuk kepada keseluruhan set atribut bukti kelayakan OAuth2, termasuk token akses dan tarikh tamat tempohnya.

Strategi pengedaran kelayakan

Mengedarkan bukti kelayakan merentas permintaan API meningkatkan prestasi dan juga mengelakkan overhed dan ralat akibat pelanggaran kekangan.

Strategi pengedaran kelayakan bergantung pada reka bentuk aplikasi.

Dalam aplikasi berbilang benang, anda mesti menggunakan bukti kelayakan yang sama untuk setiap sesi urutan.

Dalam pelbagai proses dan aplikasi yang diedarkan Ia adalah perlu untuk melaksanakan beberapa infrastruktur untuk lulus kelayakan antara proses. Di samping itu, anda mesti memastikan bahawa benang tidak disekat dan keadaan perlumbaan berlaku.

Dalam aplikasi yang berbilang proses/edar dan berbilang benang, setiap proses perlu menggabungkan kedua-dua strategi.

Berikut ialah strategi untuk mengesahkan satu akaun AdWords, seperti akaun pengurus peringkat atas dalam hierarki.

Ia kemudian menerangkan cara menyesuaikan strategi ini untuk .

Aplikasi Berbilang Benang

Dalam aplikasi berbilang benang, bukti kelayakan mesti tersedia untuk urutan yang berbeza. Kemas kini kelayakan mesti dilakukan secara serentak untuk mengelakkan keadaan perlumbaan.

Gambar rajah ini menunjukkan urutan yang menghantar permintaan kepada API AdWords pada masa jalan. Kumpulan sesi kongsi (pengguna) digunakan. Ambil perhatian bahawa setiap sesi mesti menggunakan objek bukti kelayakan yang sama. Sebagai tindak balas kepada setiap permintaan API, urutan menerima sesi yang sepadan (pengguna). Jika token akses perlu dimuat semula, ia mesti dilakukan secara serentak untuk mengelakkan keadaan perlumbaan. Dalam erti kata lain, objek bukti kelayakan mestilah selamat untuk benang.

Pustaka pelanggan memudahkan untuk menghantar bukti kelayakan antara benang. Setiap pustaka pelanggan mempunyai objek sesi (atau pengguna) dengan bukti kelayakan yang digunakan semula sepanjang keseluruhannya kitaran hidup. Untuk menggunakan bukti kelayakan merentas sesi, anda mesti menggunakannya semasa membuat setiap sesi. Dalam semua pustaka pelanggan, bukti kelayakan ialah objek selamat benang yang dikemas kini secara serentak apabila token akses tamat tempoh.

Sebagai contoh, dalam pustaka klien Java anda akan mencipta kelas Kredensial tunggal dan menggunakannya untuk semua sesi.

Aplikasi berbilang proses dan diedarkan

Dalam aplikasi berbilang proses dan diedarkan, pengedaran kelayakan mesti berterusan. Untuk mengelakkan keadaan perlumbaan di mana berbilang pelayan cuba mengemas kini bukti kelayakan pada masa yang sama (mengakibatkan permintaan kemas kini yang berlebihan), adalah disyorkan untuk memaksa kemas kini dan memberikan bukti kelayakan yang dikemas kini kepada semua proses dan pelayan.

Contohnya, satu tugas atau perkhidmatan mungkin mengemas kini bukti kelayakan secara berkala dan menolaknya ke stor data di mana ia akan digunakan oleh pelayan yang berbeza.

Rajah menunjukkan pengemaskinian berkala kelayakan dan merekodkan sifatnya dalam stor data. Semua pelayan kemudian menerima bukti kelayakan sebelum membuat permintaan kepada API.

Kemas kini tugas

Tugas kemas kini mengemas kini bukti kelayakan secara berkala dan menghantarnya ke stor data. Tugasan ini tidak seharusnya menunggu bukti kelayakan semasa tamat tempoh, kerana ini akan menyebabkan aplikasi tidak berfungsi untuk beberapa lama kerana kekurangan bukti kelayakan yang sah.

Alternatif terbaik adalah berkala kemas kini paksa, yang mana bukti kelayakan dalam stor data digantikan dengan yang baharu setiap kali. Tugas kemas kini harus dilakukan dengan baik sebelum kelayakan semasa tamat tempoh supaya terdapat masa yang mencukupi sekiranya ralat sementara berlaku. Anda boleh mula dengan melakukan kemas kini setiap 15 minit.

Catatan.Jika token akses bukti kelayakan tamat tempoh semasa permintaan API sedang diproses, permintaan itu masih akan dilaksanakan. Sebagai contoh, jika anda membuat pertanyaan yang berjalan lama dan mempunyai kurang daripada satu minit untuk mengakses, keputusan masih akan dikembalikan.

Simpanan data

Penyimpan data digunakan untuk menyediakan kelayakan proses yang berbeza dan pelayan.

Untuk melakukan ini, anda boleh menggunakan gudang data sedia ada atau mencipta gudang khusus yang melaluinya pelayan akan menerima bukti kelayakan. Sebagai penyelesaian yang mungkin anda boleh menggunakan pelayan caching (contohnya, Memcached atau Infinispan) dan stor data NoSQL (contohnya, MongoDB).

Tujuan utama gudang data adalah untuk menyediakan antara muka yang boleh dipercayai kepada semua pelayan yang mengakses API. Operasinya perlu dioptimumkan untuk membaca data dengan cepat: pelayan dan proses akan membaca bukti kelayakan lebih kerap daripada dikemas kini.

Ingat untuk memastikan kelayakan anda selamat.

Apabila menyimpan bukti kelayakan, anda mesti menyimpan sifat expiry_time ( masa semasa+ expires_in) dan refresh_token bersama-sama dengan sifat access_token. Sifat expiry_time (tarikh tamat tempoh token) dikira menggunakan formula berikut: masa permintaan kemas kini access_token + expires_in time (tarikh tamat tempoh token).

Kolam pelayan

Setiap pelayan dalam kumpulan mendapatkan bukti kelayakan terkini daripada stor data sebelum menghantar permintaan. Selagi tugas kemas kini berjalan dengan jayanya, bukti kelayakan akan sah. Walau bagaimanapun, jika tugas kemas kini atau stor data gagal, mesti ada mekanisme sandaran.

Jika pelayan atau proses tidak dapat mendapatkan bukti kelayakan daripada stor data, atau jika bukti kelayakan telah tamat tempoh, pelayan mesti mengemas kini bukti kelayakannya untuk membolehkan aplikasi terus bekerja dengan API sehingga masalah diselesaikan.

DALAM proses berbilang benang strategi yang sama untuk mengedarkan bukti kelayakan antara benang mesti digunakan.

Pengesahan Akaun Berbilang

Bukti kelayakan yang anda buat untuk akaun pengurus AdWords anda boleh digunakan untuk mengakses semua akaun anak. Pengguna yang mempunyai satu akaun pengurus biasanya hanya perlu membuat bukti kelayakan untuk akaun pengurus peringkat atas untuk membenarkan permohonan untuk semua akaun AdWords bawahan.

Dalam kes lain, aplikasi memerlukan akses kepada akaun AdWords yang tidak berkaitan antara satu sama lain dalam hierarki akaun pengurus. Dalam situasi ini, anda perlu membuat dan mengekalkan berbilang bukti kelayakan untuk akaun yang berbeza, sebagai contoh, untuk setiap akaun pelanggan AdWords yang anda boleh akses atau untuk setiap akaun pengurus peringkat atas dalam hierarki bebas.

Anda boleh mengikuti strategi ini untuk kedua-dua aplikasi dengan perubahan yang minimum. menggunakan storan kongsi Bukti kelayakan mesti diindeks oleh ID pelanggan ID akaun untuk memastikan bukti kelayakan dikaitkan dengan akaun yang diperlukan. Di samping itu, tugas kemas kini mesti mengemas kininya tepat pada masanya. Selepas menyambungkan akaun baharu, anda mungkin perlu melancarkannya.

Akhir sekali, dalam aplikasi berbilang benang, anda perlu mengedarkan objek bukti kelayakan hanya antara utas yang berjalan dalam akaun yang dikaitkan dengannya.

Cara OAuth2 berfungsi

Catatan. API AdWords belum lagi menyokong log masuk serentak melalui permintaan akses data (reka bentuk hibrid) atau perwakilan kuasa peringkat domain (2LO).

Skop

Token akses boleh memberikan darjah yang berbeza-beza akses kepada data. Parameter boleh ubah skop mentakrifkan set sumber dan operasi yang token menyediakan akses. Apabila meminta token akses, aplikasi anda menghantar satu atau lebih nilai ke parameter skop.

Di bawah ialah skop semasa dan lama untuk API AdWords.

Akses luar talian

Aplikasi pelanggan yang menggunakan API AdWords biasanya meminta akses luar talian. Ini boleh berlaku jika aplikasi anda perlu menjalankan kerja kelompok semasa pengguna menyemak imbas tapak anda tanpa sambungan Internet.

Apl yang dipasang menggunakan akses luar talian secara lalai.

Pengepala permintaan HTTP

Pengepala HTTP dalam setiap permintaan kepada pelayan AdWords API mesti mengandungi borang berikut:

Keizinan: Pembawa THE_ACCESS_TOKEN

POST ... Hos HTTP/1.1: ... Keizinan: Pembawa 1/fFAGRNJru1FTz70BzhT3Zg Jenis Kandungan: text/xml;charset=UTF-8 Panjang Kandungan: ...

Akses dan muat semula token

Dalam kebanyakan kes, token muat semula perlu disimpan di tempat yang selamat kerana ia mungkin diperlukan kemudian. Untuk mendapatkan maklumat lanjut tentang meminta akses dan muat semula token, lihat panduan berikut:

Apabila token akses tamat tempoh

Token akses mempunyai tarikh tamat tempoh yang bergantung pada nilai expires_in . Token akses yang telah tamat tempoh boleh dimuat semula menggunakan token muat semula, tetapi perpustakaan pelanggan kami melakukannya secara automatik.

Kecuali seperti yang dinyatakan sebaliknya, kandungan halaman ini dilesenkan di bawah Lesen Creative Commons Attribution 3.0 dan sampel kod dilesenkan di bawah Lesen Apache 2.0. Untuk butiran, lihat kami. Java ialah tanda dagangan berdaftar Oracle dan/atau sekutunya.

Dikemas kini pada 24 September 2018