.NET Implémentation de l'authentification OAuth2 pour le service PDND avec la génération d'assertion client.
Le Piattaforma digitale Nazionale Dati (PDND) est une infrastructure numérique italienne conçue pour faciliter l'interopérabilité des données et l'échange entre les administrations publiques et les entités privées. La plate-forme vise à simplifier le partage des données publiques en fournissant un système sécurisé, standardisé et centralisé pour l'intégration, l'accès et la gestion des données. Le PDND favorise la transformation numérique dans le secteur public en garantissant que les données sont accessibles, fiables et réutilisables, permettant des services publics plus efficaces, améliorant la transparence et soutenant la prise de décision basée sur les données pour le gouvernement et les citoyens.
Les bons sont des jetons JWT simples. Le flux d'authentification implémenté est OAuth 2.0, qui fait référence à RFC6750 pour l'utilisation de jetons de support et à RFC7521 pour l'autorisation du client via l'affirmation du client.
Pour obtenir un bon valide, vous devez d'abord télécharger au moins une clé publique à un client API Interop. La première étape consiste à créer une affirmation client valide et à le signer avec votre clé privée (qui doit correspondre à la clé publique enregistrée auprès du client sur PDND Interoperabilità). L'affirmation du client se compose d'un en-tête et d'une charge utile.
L'utilisateur demande un bon. Une fois obtenus, ils l'incluent comme en-tête d'autorisation dans les appels ultérieurs aux API d'interopérabilité PDND.
Pour configurer et utiliser correctement le générateur d'assertion client dans votre application ASP.NET Core, suivez ces étapes:
"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 ( ) ; Ensuite, vous pouvez utiliser ClientAssertionGeneratorService , qui fournit les méthodes suivantes:
GetClientAssertionAsyncGetTokenAsync(clientAssertion)Ce projet comprend une application de test, pdndClientAssertionGenerator.API , conçue pour vous aider à tester le logiciel avec votre propre configuration. Cette application agit comme un bac à sable où vous pouvez valider le comportement des composants PdndClientAssertionGenerator.
Configuration: Mettez à jour les paramètres de configuration dans le fichier appsettings.json ou via des variables d'environnement pour correspondre à votre cas d'utilisation spécifique et à votre environnement.
Exécution de l'application de test:
dotnet run --project src/PDNDClientAssertionGenerator.Api/PDNDClientAssertionGenerator.Api.csproj Scénarios de test: une fois l'application en cours d'exécution, vous pouvez utiliser divers GetClientAssertion et GetToken pour tester la fonctionnalité du logiciel dans différentes configurations.
Merci d'avoir envisagé d'aider avec le code source! Si vous souhaitez contribuer, veuillez fourrer, réparer, commettre et envoyer une demande de traction pour que les mainteneurs examinent et fusionnent dans la base de code principale.
Le code source du référentiel est disponible sous licence MIT, voir Licence dans la source.
Veuillez contacter à Francesco.delre.87 [à] gmail.com pour tout détail.