Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Warning
Den här versionen av ASP.NET Core stöds inte längre. Mer information finns i supportpolicyn för .NET och .NET Core. För den nuvarande utgåvan, se .NET 9-versionen av den här artikeln .
Important
Den här informationen gäller en förhandsversionsprodukt som kan ändras avsevärt innan den släpps kommersiellt. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, med avseende på den information som tillhandahålls här.
För den nuvarande utgåvan, se .NET 9-versionen av den här artikeln .
Den här artikeln innehåller information om hur du skyddar gRPC med .NET.
Transport security
gRPC-meddelanden skickas och tas emot med HTTP/2. We recommend:
- TLS (Transport Layer Security) används för att skydda meddelanden i GRPC-appar för produktion.
- gRPC-tjänster bör bara lyssna och svara via skyddade portar.
TLS har konfigurerats i Kestrel. Mer information om hur du konfigurerar slutpunkter finns i Kestrel av slutpunkter.
TLS har konfigurerats i Kestrel. Mer information om hur du konfigurerar slutpunkter finns i Kestrel av slutpunkter.
En TLS-avslutningsproxy kan kombineras med TLS. Fördelarna med att använda TLS-avslutning bör beaktas mot säkerhetsriskerna med att skicka oskyddade HTTP-begäranden mellan appar i det privata nätverket.
Exceptions
Undantagsmeddelanden betraktas vanligtvis som känsliga data som inte ska visas för en klient. Som standard skickar gRPC inte information om ett undantag som genereras av en gRPC-tjänst till klienten. I stället får klienten ett allmänt meddelande som anger att ett fel har uppstått. Undantagsmeddelandeleverans till klienten kan åsidosättas (till exempel under utveckling eller test) med EnableDetailedErrors. Undantagsmeddelanden ska inte exponeras för klienten i produktionsappar.
Storleksgränser för meddelanden
Inkommande meddelanden till gRPC-klienter och -tjänster läses in i minnet. Storleksbegränsningar för meddelanden är en mekanism för att förhindra att gRPC förbrukar överdrivna resurser.
gRPC använder storleksgränser per meddelande för att hantera inkommande och utgående meddelanden. Som standard begränsar gRPC inkommande meddelanden till 4 MB. Det finns ingen gräns för utgående meddelanden.
På servern kan gRPC-meddelandegränser konfigureras för alla tjänster i en app med AddGrpc:
public void ConfigureServices(IServiceCollection services)
{
services.AddGrpc(options =>
{
options.MaxReceiveMessageSize = 1 * 1024 * 1024; // 1 MB
options.MaxSendMessageSize = 1 * 1024 * 1024; // 1 MB
});
}
Gränser kan också konfigureras för en enskild tjänst med hjälp av AddServiceOptions<TService>. Mer information om hur du konfigurerar storleksbegränsningar för meddelanden finns i gRPC-konfiguration.
Verifiering av klientcertifikat
Klientcertifikat verifieras initialt när anslutningen upprättas. Utför som standard Kestrel inte ytterligare verifiering av en anslutnings klientcertifikat.
Vi rekommenderar att gRPC-tjänster som skyddas av klientcertifikat använder paketet Microsoft.AspNetCore.Authentication.Certificate . ASP.NET Core-certifieringsautentisering utför ytterligare validering på ett klientcertifikat, inklusive:
- Certifikatet har en giltig utökad nyckelanvändning (EKU)
- Är inom dess giltighetsperiod
- Kontrollera återkallande av certifikat
ASP.NET Core