0Pricing
C# Academy · Pelajaran

Otorisasi Berbasis Kebijakan

Definisikan kebijakan otorisasi yang dapat digunakan kembali.

Otorisasi Berbasis Kebijakan adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.

Model Kebijakan

Dalam ASP.NET Core, setiap pemeriksaan otorisasi pada akhirnya berjalan melalui sebuah kebijakan. Atribut peran dan klaim adalah bentuk singkat yang membangun kebijakan di balik layar.

Mendefinisikan kebijakan bernama memusatkan aturan Anda dan menjaga pengontrol tetap rapi.

[Authorize(Policy = "CanManageOrders")]

AddAuthorization

Daftarkan kebijakan di dalam wadah layanan dengan AddAuthorization. Setiap kebijakan diberi nama yang unik.

builder.Services.AddAuthorization(options =>
{
    options.AddPolicy("CanManageOrders", policy =>
        policy.RequireRole("admin", "sales"));
});

RequireAuthenticatedUser

Persyaratan paling dasar adalah pengguna telah masuk. RequireAuthenticatedUser menolak pemanggil anonim.

options.AddPolicy("SignedIn", policy =>
    policy.RequireAuthenticatedUser());

Menggabungkan Persyaratan

Pembangun kebijakan merangkai beberapa persyaratan; kebijakan hanya berhasil jika semuanya terpenuhi.

options.AddPolicy("SeniorEditor", policy =>
    policy
        .RequireAuthenticatedUser()
        .RequireRole("editor")
        .RequireClaim("seniority", "senior"));

Kebijakan Bawaan

[Authorize] tanpa argumen menggunakan kebijakan bawaan, yang secara langsung hanya mengharuskan pengguna terautentikasi. Anda dapat menggantinya.

options.DefaultPolicy = new AuthorizationPolicyBuilder()
    .RequireAuthenticatedUser()
    .RequireClaim("email_verified", "true")
    .Build();

Kebijakan Cadangan

Kebijakan cadangan berlaku untuk titik akhir yang sama sekali tidak memiliki atribut otorisasi — cara yang ampuh untuk mengamankan sistem secara bawaan.

options.FallbackPolicy = new AuthorizationPolicyBuilder()
    .RequireAuthenticatedUser()
    .Build();
// Now every endpoint requires auth unless marked [AllowAnonymous]

Memilih Tidak Menggunakan dengan AllowAnonymous

Ketika kebijakan cadangan mengunci semuanya, gunakan [AllowAnonymous] untuk membuka titik akhir publik seperti masuk atau pemeriksaan kesehatan.

[AllowAnonymous]
[HttpGet("health")]
public IActionResult Health() => Ok("healthy");

Menerapkan Kebijakan ke Titik Akhir

Referensikan kebijakan berdasarkan nama di dalam atribut atau ekstensi API Minimal.

// Controller
[Authorize(Policy = "SeniorEditor")]
public IActionResult Publish() => Ok();

// Minimal API
app.MapPost("/publish", () => Results.Ok())
   .RequireAuthorization("SeniorEditor");

Mengelompokkan Titik Akhir

Terapkan kebijakan ke seluruh kelompok rute agar setiap titik akhir di dalamnya mewarisinya.

var admin = app.MapGroup("/admin")
               .RequireAuthorization("CanManageOrders");

admin.MapGet("/stats", () => Results.Ok());
admin.MapDelete("/{id}", (int id) => Results.NoContent());

Persyaratan di Balik Layar

Setiap pemanggilan Require* menambahkan IAuthorizationRequirement ke kebijakan. Penangan yang sesuai mengevaluasi setiap persyaratan. Untuk fitur bawaan, proses ini berlangsung otomatis; aturan khusus memerlukan penangan khusus (pelajaran berikutnya).

// RequireRole("admin") adds a RolesAuthorizationRequirement
// RequireClaim(...) adds a ClaimsAuthorizationRequirement

Tempat Mendefinisikan Kebijakan

Simpan semua definisi kebijakan di dalam satu metode ekstensi agar mudah ditemukan dan diuji.

public static IServiceCollection AddAppPolicies(
    this IServiceCollection services)
{
    services.AddAuthorization(o =>
    {
        o.AddPolicy("SignedIn", p => p.RequireAuthenticatedUser());
        o.AddPolicy("CanManageOrders", p => p.RequireRole("admin"));
    });
    return services;
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang kebijakan bawaan dan kebijakan cadangan.

Ringkasan

Anda telah mempelajari otorisasi berbasis kebijakan:

  • AddPolicy mendefinisikan aturan bernama yang dapat digunakan kembali.
  • RequireAuthenticatedUser, RequireRole, dan RequireClaim dapat dikombinasikan dengan semantik AND.
  • DefaultPolicy menjadi dasar bagi [Authorize] tanpa argumen; FallbackPolicy mengamankan titik akhir tanpa penanda.
  • [AllowAnonymous] memilih untuk tidak menggunakan kebijakan.

Berikutnya: persyaratan dan penangan otorisasi khusus.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Otorisasi Berbasis Kebijakan” gratis?

Ya — teks lengkap “Otorisasi Berbasis Kebijakan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Otorisasi Berbasis Kebijakan”?

Definisikan kebijakan otorisasi yang dapat digunakan kembali. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Otorisasi Berbasis Kebijakan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Otorisasi Berbasis Peran
  2. Otorisasi Berbasis Klaim
  3. Otorisasi Berbasis Kebijakan
  4. Requirement Otorisasi Kustom
← Kembali ke C# Academy