. NET Implementasi otentikasi OAuth2 untuk layanan PDND dengan pembuatan pernyataan klien.
Piattaforma Digitale Nazionale DATI (PDND) adalah infrastruktur digital Italia yang dirancang untuk memfasilitasi interoperabilitas data dan pertukaran antara administrasi publik dan entitas swasta. Platform ini bertujuan untuk menyederhanakan berbagi data publik dengan memberikan sistem yang aman, terstandarisasi, dan terpusat untuk integrasi, akses, dan manajemen data. PDND mempromosikan transformasi digital dalam sektor publik dengan memastikan data dapat diakses, andal, dan dapat digunakan kembali, memungkinkan layanan publik yang lebih efisien, meningkatkan transparansi, dan mendukung pengambilan keputusan yang didorong oleh data untuk pemerintah dan warga negara.
Voucher adalah token JWT sederhana. Aliran otentikasi yang diimplementasikan adalah OAuth 2.0, yang mengacu pada RFC6750 untuk penggunaan token pembawa dan ke RFC7521 untuk otorisasi klien melalui pernyataan klien.
Untuk mendapatkan voucher yang valid, Anda harus terlebih dahulu mengunggah setidaknya satu kunci publik ke klien API Interop. Langkah pertama adalah membuat pernyataan klien yang valid dan menandatanganinya dengan kunci pribadi Anda (yang harus cocok dengan kunci publik yang terdaftar dengan klien di PDND Interoperabilità). Pernyataan klien terdiri dari header dan muatan.
Pengguna meminta voucher. Setelah diperoleh, mereka memasukkannya sebagai header otorisasi dalam panggilan berikutnya ke API interoperabilitas PDND.
Untuk mengatur dengan benar dan menggunakan generator pernyataan klien di aplikasi inti ASP.NET Anda, ikuti langkah -langkah ini:
"ClientAssertionConfig": {
"ServerUrl": "https://test-server-url.com",
"KeyId": "ZmYxZGE2YjQtMzY2Yy00NWI5LThjNGItMDJmYmQyZGIyMmZh",
"Algorithm": "RS256",
"Type": "at+jwt",
"ClientId": "9b361d49-33f4-4f1e-a88b-4e12661f2309",
"Issuer": "interop.pagopa.it",
"Subject": "9b361d49-33f4-4f1e-a88b-4e12661f2309",
"Audience": "https://erogatore.example/ente-example/v1",
"PurposeId": "1b361d49-33f4-4f1e-a88b-4e12661f2300",
"KeyPath": "C:/Keys/private.pem",
"Duration": "600"
}, builder . Services . AddPDNDClientAssertionServices ( ) ; Kemudian Anda dapat menggunakan ClientAssertionGeneratorService , yang menyediakan metode berikut:
GetClientAssertionAsyncGetTokenAsync(clientAssertion)Proyek ini mencakup aplikasi pengujian, PDNDClientAssertionGenerator.API , yang dirancang untuk membantu Anda menguji perangkat lunak dengan konfigurasi Anda sendiri. Aplikasi ini bertindak sebagai kotak pasir di mana Anda dapat memvalidasi perilaku komponen PDNDClientAserSersionerator.
Konfigurasi: Perbarui pengaturan konfigurasi di file appsettings.json atau melalui variabel lingkungan agar sesuai dengan kasus penggunaan dan lingkungan spesifik Anda.
Menjalankan aplikasi pengujian:
dotnet run --project src/PDNDClientAssertionGenerator.Api/PDNDClientAssertionGenerator.Api.csproj Skenario Pengujian: Setelah aplikasi berjalan, Anda dapat menggunakan berbagai GetClientAssertion dan GetToken untuk menguji fungsionalitas perangkat lunak dalam konfigurasi yang berbeda.
Terima kasih telah mempertimbangkan untuk membantu dengan kode sumber! Jika Anda ingin berkontribusi, silakan garpu, perbaiki, komit, dan kirim permintaan tarik untuk pemelihara untuk meninjau dan bergabung ke basis kode utama.
Kode sumber repositori tersedia di bawah lisensi MIT, lihat lisensi di sumbernya.
Silakan hubungi di francesco.delre.87 [at] gmail.com untuk detailnya.