Skip to Content
Nouvelle version 12 disponible 🎉

gRPC Web

Le Babel Licensing Service prend en charge gRPC Web, car il permet à un large éventail d’applications, notamment Xamarin et UWP, d’interagir avec des services gRPC. Avec gRPC-Web, ces applications peuvent appeler directement des services gRPC au moyen du client gRPC Web et de Protobuf.

L’intérêt de gRPC Web tient à sa compatibilité avec HTTP/1.1 et avec les navigateurs. Alors que gRPC classique repose sur des fonctionnalités de HTTP/2 que tous les navigateurs et toutes les technologies ne prennent pas en charge, gRPC Web utilise un protocole légèrement différent, qui le rend compatible avec HTTP/1. Les applications de navigateur, y compris celles créées avec Xamarin et UWP, bénéficient ainsi des performances élevées et de la faible utilisation du réseau qu’offrent les messages binaires de gRPC.

Avec gRPC Web, les clients Xamarin n’ont plus besoin de mécanismes de communication distincts ni de solutions de contournement, ce qui facilite l’intégration du Babel Licensing Service dans un large éventail d’applications, y compris celles qui ciblent les plateformes UWP.

Serveur

Pour activer gRPC-Web dans le Babel Licensing Service, apportez les modifications de configuration suivantes :

Mettre Ă  jour la configuration du point de terminaison Kestrel

Mettez à jour la configuration du point de terminaison Kestrel dans le fichier appsettings.json. Vérifiez que la propriété « Protocols » contient « Http1AndHttp2 » pour activer à la fois les protocoles HTTP/1.1 et HTTP/2 :

"Endpoints": { "gRPC": { "Url": "https://localhost:5005", "Protocols": "Http1AndHttp2" // other properties... } }

Activer gRPC-Web dans la section Application

Réglez la propriété « EnableGrpcWeb » de la section « Application » du fichier appsettings.json sur true. Cela indique que gRPC-Web doit être activé. Par exemple :

"Application": { "EnableGrpcWeb": true, // other properties... }

Activer la prise en charge de SSL/TLS

Activez la prise en charge de SSL/TLS dans le projet Babel Licensing Service pour assurer la négociation de protocole au moyen des capacités ALPN fournies par l’extension de la couche TLS.

"Endpoints": { "gRPC": { "Url": "https://localhost:5005", "Protocols": "Http1AndHttp2", "Certificate": { "AllowInvalid": true, "Path": "<cert file>.pfx", "Password": "<cert password>" } } }

En configurant le Babel Licensing Service avec ces paramètres, vous activez la prise en charge de gRPC-Web, ce qui permet aux applications clientes basées sur un navigateur, y compris les applications Xamarin et UWP, de communiquer avec le service au moyen de gRPC-Web. Les applications clientes et le Babel Licensing Service s’intègrent et communiquent ainsi efficacement, en tirant parti de gRPC pour une transmission de données sécurisée et performante.

Client

Pour activer gRPC Web dans votre application cliente afin de vous connecter au Babel Licensing Service, procédez comme suit :

  1. Ajoutez la référence de package NuGet à votre projet :
Grpc.Net.Client.Web
  1. Dans votre code, configurez le client BabelLicensing avec la méthode BabelLicensing.Configure. Réglez la propriété ServiceUrl sur l’URL du point de terminaison de votre Babel Licensing Service.
BabelLicensing.Configure(config => { config.ServiceUrl = "https://localhost:5005"; var certificate = new X509Certificate2("<cert file>.pfx", "<cert password>"); config.UseGrpc(options => { options.HttpHandler = new GrpcWebHandler(new HttpClientHandler() { ClientCertificates = { certificate }, ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator }); }); });

Dans l’extrait de code ci-dessus, remplacez <cert file>.pfx par le chemin de votre fichier de certificat SSL/TLS et <cert password> par le mot de passe du certificat.

Cette configuration met en place le client gRPC Web au moyen de la méthode de rappel UseGrpc et de GrpcWebHandler. Elle permet au client de communiquer de manière sécurisée avec le Babel Licensing Service en utilisant le protocole gRPC Web sur HTTPS. Le GrpcWebHandler est configuré avec un HttpClientHandler personnalisé, qui inclut le certificat client et accepte tout certificat de serveur à des fins de développement.

Dans un environnement de production, veillez à gérer et à protéger correctement les certificats en réglant AllowInvalid sur false et en retirant le ServerCertificateCustomValidationCallback du code client.

Avec cette configuration, votre application cliente peut se connecter au Babel Licensing Service au moyen de gRPC Web, pour une communication sécurisée et efficace entre le client et le service.

Last updated on