OAuth2 & OpenID Connect secara Mendalam · Pelajaran

Keselamatan Perkhidmatan Mikro dan Gerbang API

Lindungi seni bina perkhidmatan mikro dan gerbang API menggunakan OAuth2 untuk keizinan serta pengesahan token di pinggir rangkaian.

Pelajaran 2 daripada 411 langkah

Keselamatan Perkhidmatan Mikro dan Gerbang API ialah pelajaran OAuth2 & OpenID Connect secara Mendalam percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran OAuth2 & OpenID Connect secara Mendalam, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus OAuth2 & OpenID Connect secara Mendalam merangkumi sejumlah 4 pelajaran.

Asas Perkhidmatan Mikro & Gerbang

Aplikasi moden sering menggunakan perkhidmatan mikro: perkhidmatan kecil dan bebas yang berkomunikasi melalui rangkaian. Pendekatan ini menawarkan fleksibiliti dan kebolehskalaan.

Gerbang API bertindak sebagai titik kemasukan tunggal untuk semua permintaan klien dan menghalakannya kepada perkhidmatan mikro yang betul. Ia ibarat pengawal trafik untuk API anda.

Memusatkan Keselamatan di Pinggir

Dalam seni bina perkhidmatan mikro, anda mungkin mempunyai berpuluh-puluh atau beratus-ratus perkhidmatan. Melindungi setiap perkhidmatan secara individu boleh menjadi rumit dan terdedah kepada kesilapan.

Gerbang API menyediakan tempat yang sesuai untuk memusatkan perkara keselamatan umum, seperti pengesahan dan kebenaran awal. Pendekatan ini sering dipanggil "keselamatan di pinggir".

OAuth2 untuk Kebenaran Teragih

OAuth2 amat sesuai untuk perkhidmatan mikro kerana ia menyediakan cara piawai untuk mengeluarkan dan mengesahkan token akses. Token ini ialah kelayakan yang mewakili kebenaran pengguna untuk mengakses sumber.

Apabila klien meminta sesuatu sumber, klien terlebih dahulu mendapatkan token akses daripada Pelayan Kebenaran. Token ini kemudiannya diberikan kepada Gerbang API.

Gerbang sebagai Titik Penguatkuasaan

Gerbang API bertindak sebagai Titik Penguatkuasaan Dasar (PEP). Gerbang ini memintas permintaan masuk dan melakukan pemeriksaan keselamatan penting sebelum memajukannya kepada perkhidmatan mikro bahagian belakang.

Peranan keselamatan utamanya ialah mengesahkan token akses OAuth2 yang masuk. Jika token itu tidak sah, telah tamat tempoh atau tiada, gerbang akan menolak permintaan tersebut.

Langkah Pengesahan Token

Apabila permintaan sampai ke Gerbang API bersama token akses, berikut ialah urutan pengesahan yang lazim:

  • Semak Kehadiran Token: Adakah terdapat pengepala Authorization: Bearer?
  • Sahkan Format: Adakah token itu JWT yang dibentuk dengan betul?
  • Sahkan Tandatangan: Adakah token itu ditandatangani oleh Pelayan Kebenaran yang dipercayai?
  • Semak Tamat Tempoh: Adakah token itu masih aktif (belum tamat tempoh)?
  • Sahkan Penerbit & Khalayak: Adakah token itu daripada penerbit yang betul dan ditujukan untuk sumber ini?
  • Semak Skop: Adakah token itu mempunyai kebenaran yang diperlukan (skop) untuk operasi yang diminta?

Logik Pengesahan Token Gerbang

Berikut ialah gambaran konsep tentang cara Gerbang API mungkin mengesahkan token akses JWT yang masuk. Logik ini dijalankan sebelum sebarang permintaan sampai ke perkhidmatan mikro anda.

/* Pseudo-code for API Gateway Token Validation */
function validateAccessToken(request) {
  const token = extractToken(request.headers);
  if (!token) {
    return deny("Missing token");
  }

  try {
    const decodedToken = decodeJwt(token); // Header.Payload.Signature
    const publicKey = getPublicKey(decodedToken.header.kid); // From JWKS endpoint

    if (!verifySignature(token, publicKey)) {
      return deny("Invalid signature");
    }
    if (decodedToken.payload.exp < currentTime()) {
      return deny("Token expired");
    }
    if (decodedToken.payload.iss !== "your-auth-server") {
      return deny("Untrusted issuer");
    }
    if (!checkScopes(decodedToken.payload.scope, request.path)) {
      return deny("Insufficient scopes");
    }

    // Token is valid, attach claims for downstream
    request.context.userClaims = decodedToken.payload;
    return allow();

  } catch (error) {
    return deny("Token processing error");
  }
}

Menyebarkan Identiti Pengguna

Selepas Gerbang API mengesahkan token akses, gerbang itu biasanya perlu menghantar identiti pengguna dan konteks kebenaran kepada perkhidmatan mikro hiliran.

Hal ini biasanya dilakukan dengan menyuntik tuntutan berkaitan daripada token yang disahkan (contohnya, ID pengguna, peranan dan kebenaran khusus) ke dalam pengepala HTTP tersuai atau token dalaman baharu sebelum memajukan permintaan.

Pengesahan Antara Perkhidmatan Mikro

Bagaimana pula jika perkhidmatan mikro perlu berkomunikasi secara langsung antara satu sama lain tanpa melibatkan pengguna? Ini dikenali sebagai kebenaran antara perkhidmatan.

  • Aliran Kelayakan Klien: Perkhidmatan boleh menggunakan ID klien dan rahsia klien mereka sendiri untuk mendapatkan token akses daripada Pelayan Kebenaran.
  • mTLS (TLS Salingan): Pilihan lain ialah menggunakan Transport Layer Security salingan, yang membolehkan klien dan pelayan kedua-duanya mengemukakan sijil untuk mengesahkan satu sama lain.

Kebenaran Berbutir Halus

Walaupun Gerbang API mengendalikan kebenaran awal, perkhidmatan mikro individu mungkin perlu melakukan pemeriksaan yang lebih terperinci berdasarkan sumber khusus yang sedang diakses.

Contohnya, perkhidmatan "profil pengguna" mungkin menyemak sama ada pengguna yang disahkan sedang meminta profil mereka sendiri atau mempunyai peranan "pentadbir" untuk melihat mana-mana profil. Pemeriksaan ini menggunakan tuntutan yang disebarkan daripada gerbang.

Peranan Keselamatan Gerbang

Gerbang API memainkan peranan penting dalam melindungi perkhidmatan mikro.

Imbas Kembali: Keselamatan Perkhidmatan Mikro

Dalam pelajaran ini, kita meneroka cara melindungi perkhidmatan mikro menggunakan OAuth2 dan Gerbang API.

  • Gerbang API bertindak sebagai Titik Penguatkuasaan Dasar pusat untuk pengesahan token awal.
  • Gerbang ini menyebarkan tuntutan identiti yang telah disahkan kepada perkhidmatan hiliran.
  • Kita juga menyentuh kebenaran antara perkhidmatan dan kebenaran berbutir halus dalam perkhidmatan mikro individu.
Percuma untuk bermula

Pelajari OAuth2 & OpenID Connect secara Mendalam dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Keselamatan Perkhidmatan Mikro dan Gerbang API” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran OAuth2 & OpenID Connect secara Mendalam, termasuk “Keselamatan Perkhidmatan Mikro dan Gerbang API”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus OAuth2 & OpenID Connect secara Mendalam merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Keselamatan Perkhidmatan Mikro dan Gerbang API”?

Lindungi seni bina perkhidmatan mikro dan gerbang API menggunakan OAuth2 untuk keizinan serta pengesahan token di pinggir rangkaian. Anda berlatih OAuth2 & OpenID Connect secara Mendalam menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan OAuth2 & OpenID Connect secara Mendalam?

Tiada pengalaman terdahulu diperlukan. Pembelajaran OAuth2 & OpenID Connect secara Mendalam di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Keselamatan Perkhidmatan Mikro dan Gerbang API” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran OAuth2 & OpenID Connect secara Mendalam ini?

Ya. Setiap pelajaran OAuth2 & OpenID Connect secara Mendalam menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Integrasi dengan Pembekal Identiti
  2. Keselamatan Perkhidmatan Mikro dan Gerbang API
  3. Pengesahan Berbilang Faktor (MFA)
  4. Log Masuk Tunggal Merentas Aplikasi
← Kembali ke OAuth2 & OpenID Connect secara Mendalam