Kami sedang mengerjakan layanan baru - layanan ini berpotensi akan dipanggil langsung dari aplikasi di perangkat pengguna. Aplikasi ini akan dikembangkan dan didukung oleh beberapa tim pengembangan dari seluruh organisasi, semua tergantung pada data yang kami berikan.
Kami ingin mengidentifikasi aplikasi mana yang mengirim permintaan mana, sehingga kami dapat mengidentifikasi pola penggunaan dan pengembang yang bertanggung jawab. (Untuk menghindari keraguan, otentikasi pengguna ditangani secara terpisah.)
Solusi kami adalah memerlukan kunci API, satu per aplikasi - maka kami memiliki detail kontak untuk tim pengembangan.
Kami tidak ingin menjadikan kunci API sebagai sumber gesekan, tetapi kami khawatir bahwa pengembang akan membagikannya kepada kolega di tim lain, artinya kami tidak lagi dapat mengidentifikasi lalu lintas untuk hanya satu aplikasi.
Bagaimana kita bisa mendorong pengembang untuk tidak membagikan kunci API secara internal?
Jawaban:
Untuk membagikan kunci-kunci itu di antara tim, tim harus berbicara satu sama lain, setuju untuk berbagi, lalu membagikannya. Ini butuh waktu. Jadi, jika suatu tim dapat meminta kunci API dari Anda lebih cepat dan lebih mudah, tidak ada insentif untuk dibagikan.
Dan cara termudah bagi mereka untuk meminta kunci-kunci itu adalah bagi Anda untuk melakukan pre-empt. Dengan asumsi Anda tahu semua tim lain yang membutuhkan kunci API, buat mereka dan bagikan sebelum membuat layanan tersedia bagi mereka.
Ada satu insentif lain yang dapat Anda tawarkan: dukungan debugging. Tim-tim itu akan membutuhkan bantuan Anda ketika segala sesuatunya tidak berjalan dengan baik ketika mereka mengintegrasikan pekerjaan mereka dengan layanan Anda. Kunci API tersebut memungkinkan Anda untuk melacak permintaan spesifik mereka dan dengan demikian membantu dalam men-debug apa yang salah. Jadi, jual itu sebagai alasan kunci, alih-alih " mengidentifikasi pola penggunaan dan pengembang yang bertanggung jawab ", yang sepertinya Anda memata-matai aktivitas mereka.
sumber
Jawaban yang bagus sudah, saya hanya memikirkan pendekatan yang berbeda yang mungkin atau mungkin tidak bekerja untuk Anda.
Daripada mengeluarkan kunci untuk disertakan, Anda dapat meminta tajuk permintaan untuk menyertakan nama aplikasi ujung depan, untuk dibuat dan diformat oleh pengembang aplikasi ujung depan, seperti yang dilakukan browser web. Dengan begitu ujung depan masih bisa berpura-pura menjadi aplikasi yang berbeda tetapi tidak akan ada manfaat untuk melakukan itu sehingga sepertinya tidak mungkin. Biarkan ujung depan mengidentifikasi dirinya dan menerima string yang tidak kosong.
sumber
Pendeknya:
Pertama: fasilitasi dan manfaat; Jika perlu: gesekan dan polisi.
Beberapa kata lagi
Fasilitasi : Pertama, buat tim mudah mendapatkan kunci API baru. Misalnya menambahkan pengingat dalam prosedur perusahaan untuk meluncurkan proyek baru, dan menawarkan layanan yang mudah digunakan untuk meminta kunci baru, tanpa meminta pembenaran.
Manfaat : Membuat penggunaan kunci API sendiri menjadi manfaat bagi tim atau pemilik produk. Misalnya, usulkan beberapa umpan balik tentang penggunaan aplikasi berdasarkan kunci itu.
Gesekan : Bergantung pada fitur kunci, Anda dapat membuat gesekan, misalnya jika kunci ditautkan ke domain yang ditentukan aplikasi (mis. Menggunakan kembali kunci tidak selalu memberikan akses ke semua layanan yang diinginkan).
Pemolisian : Akhirnya, Anda mungkin perlu melihat beberapa langkah pemolisian. Misalnya, Anda dapat memantau penggunaan fungsi api dengan kunci api dan setelah waktu tertentu untuk menetapkan garis dasar, penyelidikan tentang penggunaan bagian api yang tidak diharapkan mengingat garis dasar. Atau jika ini tidak realistis, cukup sertakan dalam daftar periksa tinjauan proyek perusahaan verifikasi bahwa kunci yang valid digunakan.
Catatan : Anda mungkin harus sangat jelas tentang kebijakan kunci API Anda: Apakah versi utama barumemerlukan kunci API sendiri? Apa dengan garpu, atau jika aplikasi terpecah? bagaimana jika tim lain bertanggung jawab, dll ...
sumber
Umumnya cara termudah untuk membuat pengembang "melakukan hal yang benar", adalah membuatnya mudah bagi mereka untuk melakukannya.
Untuk itu saya sarankan membangun halaman web / situs kunci API. Dalam bentuknya yang paling sederhana, itu bisa berupa login (idealnya terkait dengan AD / LDAP perusahaan Anda) dan halaman yang hanya menanyakan nama aplikasi dan mengeluarkan kunci.
Pada akhirnya, Anda selalu dapat mencabut kunci nanti, jadi yang Anda perlukan hanyalah situs untuk merekam siapa (nama pengguna) yang meminta kunci dan apa (Nama Aplikasi) yang ingin mereka lakukan dengannya - bersama dengan info apa pun yang diperlukan untuk cabut kunci nanti.
Anda dapat melakukan sesuatu yang mirip dengan sistem tiket, tetapi pada akhirnya sangat mudah bagi saya untuk menyalin dan menempelkan kunci dari satu aplikasi ke aplikasi lain, jadi sangat mudah untuk meminta kunci baru, untuk menghindari kesalahan tingkah laku.
sumber
Bersikaplah proaktif.
Identifikasi pengembang yang mungkin dan berikan kunci API unik di saluran yang aman, sebelumnya. Berikan cara mudah untuk meminta kunci API baru. Berikan cara mudah bagi orang baru yang meminta kunci API baru. Ketika pekerja magang atau karyawan baru bergabung dengan tim, berikan mereka tiket JIRA atau "Minta kunci API" yang serupa dengan langkah-langkah dalam deskripsi.
Melacak kunci API mana yang telah digunakan, dan mana yang belum. Jika Bob telah mengirimkan tiket dalam proyek tetapi belum menggunakan kunci API-nya, maka ia mungkin meminjam milik orang lain.
Dapatkan Dukungan Manajemen. Jangan menjadi usil Nancy yang membuat aturan yang tidak penting. Secara harfiah meyakinkan Manajemen bahwa itu penting, dan kemudian mereka yang meyakinkan kelompok bahwa itu penting. Jangan berusaha meyakinkan semua orang.
Dan saran yang paling menjengkelkan dan rawan tirani: Waspadai penyalahgunaan, dan lakukan tindakan keras pada hari yang sama. Jam yang sama adalah yang terbaik. Jangan katakan "Pengembang Nakal Buruk" katakan "Ini langkah yang tepat." Jika mereka melakukannya berulang kali, nonaktifkan kunci yang disalahgunakan. Ini mengacaukan Sharer dan Seseorang yang Meminjam, dan pembagi akan mengatakan "Tidak, lakukan dengan benar" di masa depan. Hindari menonaktifkan kunci yang ada di proyek langsung.
sumber
Anda juga harus menerapkan pembatasan tingkat . Ini dengan sendirinya dapat mencegah berbagi kunci. Ini melindungi sistem Anda sampai batas tertentu terhadap aplikasi yang kasar. (Dan yang benar-benar jahat.) Dan, itu memastikan Anda akan mendapat informasi sebelum peningkatan besar-besaran lalu lintas yang dapat diperbaiki. (Memberi Anda waktu untuk menambah kapasitas, saya harap!)
Dan, dengan pembatasan tingkat, ketika suatu aplikasi membutuhkan batas yang lebih tinggi, ia membuka dialog dengan POC yang terdaftar untuk kunci tersebut. Anda mendapatkan kesempatan untuk bertanya apakah kunci dibagikan, menjelaskan mengapa itu berbahaya dan sebagainya, dan Anda dapat menawarkan kunci tambahan jika perlu alih-alih perubahan batas tarif yang diminta. Dll
sumber
Salah satu cara untuk melakukan hal-hal, terutama jika tim menggunakan sistem build bersama (atau setidaknya yang cukup umum) adalah dengan mengatur server internal yang membuat dan mengeluarkan kunci API (diberi beberapa bit informasi dasar tentang produk yang menggunakannya) ). Kemudian gunakan skrip yang mengambil kunci API baru dari server untuk setiap build, atau untuk setiap pembaruan versi. Biarkan devs menjalankan skrip untuk mendapatkan kunci yang berbeda untuk build lokal mereka juga. (Jika memungkinkan, otomatiskan ini sebagai bagian dari build sehingga mereka bahkan tidak perlu memikirkannya.)
Ini akan membuat Anda tahu apakah itu sesuatu dalam produksi, QA, atau dev, dan pada versi apa / masalah mulai dibangun.
sumber
Hal pertama dan terbaik yang dapat Anda lakukan adalah memformat tombol sehingga mereka memasukkan nama aplikasi dalam bentuk yang mudah dibaca, dan tidak berfungsi jika Anda mengubahnya.
Jika itu jelas ketika tim menggunakan kunci yang salah, maka mereka akan berusaha untuk tidak melakukannya.
Kemudian, secara berkala berakhir kunci. Anda harus tetap melakukan ini , dan ketika kunci hampir kedaluwarsa, Anda dapat mengirim yang baru ke tim pemiliknya. Tim yang menggunakan kunci kemudian akan termotivasi untuk memastikan bahwa mereka adalah tim yang memilikinya, sehingga mereka akan mendapatkan yang baru saat kedaluwarsa.
sumber