Konfiguracja pulpitu nawigacyjnego
Pulpit nawigacyjny jest konfigurowany podczas uruchamiania. Konfiguracja obejmuje adresy frontonu i protokołu OpenTelemetry (OTLP), punkt końcowy usługi zasobów, uwierzytelnianie, limity telemetrii i inne.
Po uruchomieniu pulpitu nawigacyjnego przy użyciu projektu hosta aplikacji .NET.NET Aspire jest on automatycznie skonfigurowany do wyświetlania zasobów i telemetrii aplikacji. Konfiguracja jest udostępniana podczas uruchamiania pulpitu nawigacyjnego w trybie autonomicznym .
Istnieje wiele sposobów zapewnienia konfiguracji:
- Argumenty wiersza polecenia.
- Zmienne środowiskowe. Ogranicznik
:
należy zastąpić podwójnym podkreśleniem (__
) w nazwach zmiennych środowiskowych. - Opcjonalny plik konfiguracji JSON. Ustawienie
DOTNET_DASHBOARD_CONFIG_FILE_PATH
może służyć do określania pliku konfiguracji JSON.
Rozważmy poniższy przykład pokazujący sposób konfigurowania pulpitu nawigacyjnego podczas uruchamiania z kontenera Docker:
docker run --rm -it -p 18888:18888 -p 4317:18889 -d --name aspire-dashboard \
-e DASHBOARD__TELEMETRYLIMITS__MAXLOGCOUNT='1000' \
-e DASHBOARD__TELEMETRYLIMITS__MAXTRACECOUNT='1000' \
-e DASHBOARD__TELEMETRYLIMITS__MAXMETRICSCOUNT='1000' \
mcr.microsoft.com/dotnet/aspire-dashboard:9.0
Alternatywnie można skonfigurować te same wartości przy użyciu pliku konfiguracji JSON określonego przy użyciu DOTNET_DASHBOARD_CONFIG_FILE_PATH
:
{
"Dashboard": {
"TelemetryLimits": {
"MaxLogCount": 1000,
"MaxTraceCount": 1000,
"MaxMetricsCount": 1000
}
}
}
Ważny
Na pulpicie nawigacyjnym są wyświetlane informacje o zasobach, w tym ich konfiguracja, dzienniki konsoli i szczegółowe dane telemetryczne.
Dane wyświetlane na pulpicie nawigacyjnym mogą być poufne. Na przykład wpisy tajne w zmiennych środowiskowych i poufne dane środowiska uruchomieniowego w telemetrii. Należy zadbać o skonfigurowanie pulpitu nawigacyjnego w celu zabezpieczenia dostępu.
Aby uzyskać więcej informacji, zobacz zabezpieczenia pulpitu nawigacyjnego .
Nuta
Konfiguracja opisana na tej stronie dotyczy autonomicznego pulpitu nawigacyjnego. Aby skonfigurować projekt hosta aplikacji .NET.NET Aspire, zobacz Konfiguracja hosta aplikacji.
Typowa konfiguracja
Opcja | Wartość domyślna | Opis |
---|---|---|
ASPNETCORE_URLS |
http://localhost:18888 |
Co najmniej jeden punkt końcowy HTTP, za pośrednictwem którego jest obsługiwany fronton pulpitu nawigacyjnego. Punkt końcowy frontonu służy do wyświetlania pulpitu nawigacyjnego w przeglądarce. Po uruchomieniu pulpitu nawigacyjnego przez host aplikacji .NET.NET Aspire ten adres jest zabezpieczony przy użyciu protokołu HTTPS. Zalecane jest zabezpieczanie pulpitu nawigacyjnego przy użyciu protokołu HTTPS. |
DOTNET_DASHBOARD_OTLP_ENDPOINT_URL |
http://localhost:18889 |
Punkt końcowy |
DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL |
http://localhost:18890 |
Punkt końcowy OTLP/HTTP. Ten punkt końcowy hostuje usługę OTLP i odbiera dane telemetryczne przy użyciu protokołu Protobuf za pośrednictwem protokołu HTTP. Po uruchomieniu pulpitu nawigacyjnego przez aplikację .NET.NET Aspire hostem punktu końcowego OTLP/HTTP nie jest domyślnie skonfigurowany. Aby skonfigurować punkt końcowy OTLP/HTTP przy użyciu hosta aplikacji, ustaw DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL env var wartość w launchSettings.json. Zalecane jest zabezpieczanie pulpitu nawigacyjnego przy użyciu protokołu HTTPS. |
DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS |
false |
Konfiguruje pulpit nawigacyjny tak, aby nie używał uwierzytelniania i akceptuje dostęp anonimowy. To ustawienie jest skrótem do konfigurowania Dashboard:Frontend:AuthMode i Dashboard:Otlp:AuthMode w celu Unsecured . |
DOTNET_DASHBOARD_CONFIG_FILE_PATH |
null |
Ścieżka pliku konfiguracji JSON. Jeśli pulpit nawigacyjny jest uruchamiany w kontenerze Docker, jest to ścieżka do pliku konfiguracji w zainstalowanym woluminie. Ta wartość jest opcjonalna. |
DOTNET_RESOURCE_SERVICE_ENDPOINT_URL |
null |
Punkt końcowy gRPC, z którym pulpit nawigacyjny łączy się ze swoimi danymi. Jeśli ta wartość jest nieokreślona, na pulpicie nawigacyjnym są wyświetlane dane telemetryczne, ale nie ma listy zasobów ani dzienników konsoli. To ustawienie jest skrótem do Dashboard:ResourceServiceClient:Url . |
Uwierzytelnianie frontonu
Uwierzytelnianie punktu końcowego frontonu pulpitu nawigacyjnego jest konfigurowane przy użyciu Dashboard:Frontend:AuthMode
. Fronton można zabezpieczyć za pomocą uwierzytelniania tokenu OpenID Connect (OIDC) lub przeglądarki.
Uwierzytelnianie tokenu przeglądarki działa przez fronton z prośbą o token. Token można wprowadzić w interfejsie użytkownika lub podać jako wartość ciągu zapytania na stronie logowania. Na przykład https://localhost:1234/login?t=TheToken
. Gdy token zostanie pomyślnie uwierzytelniony, cookie uwierzytelniania zostanie utrwalone w przeglądarce, a przeglądarka zostanie przekierowana do aplikacji.
Opcja | Wartość domyślna | Opis |
---|---|---|
Dashboard:Frontend:AuthMode |
BrowserToken |
Można ustawić na BrowserToken , OpenIdConnect lub Unsecured .
Unsecured należy używać tylko podczas programowania lokalnego. Nie zaleca się hostowania pulpitu nawigacyjnego publicznie lub w innych ustawieniach. |
Dashboard:Frontend:BrowserToken |
null |
Określa token przeglądarki. Jeśli token przeglądarki nie zostanie określony, zostanie wygenerowany przez pulpit nawigacyjny. Narzędzia, które chcą zautomatyzować logowanie za pomocą uwierzytelniania tokenu przeglądarki, mogą określić token i otworzyć przeglądarkę przy użyciu tokenu w ciągu zapytania. Przy każdym uruchomieniu pulpitu nawigacyjnego należy wygenerować nowy token. |
Dashboard:Frontend:OpenIdConnect:NameClaimType |
name |
Określa jeden lub więcej typów oświadczeń, które powinny być używane do wyświetlania pełnej nazwy uwierzytelnionego użytkownika. Może być pojedynczym typem oświadczenia lub rozdzielaną przecinkami listą typów oświadczeń. |
Dashboard:Frontend:OpenIdConnect:UsernameClaimType |
preferred_username |
Określa jeden lub więcej typów oświadczeń, które powinny być używane do wyświetlania nazwy użytkownika uwierzytelnionego użytkownika. Może być pojedynczym typem oświadczenia lub rozdzielaną przecinkami listą typów oświadczeń. |
Dashboard:Frontend:OpenIdConnect:RequiredClaimType |
null |
Określa oświadczenie, które musi być obecne dla autoryzowanych użytkowników. Autoryzacja kończy się niepowodzeniem bez tego oświadczenia. Ta wartość jest opcjonalna. |
Dashboard:Frontend:OpenIdConnect:RequiredClaimValue |
null |
Określa wartość wymaganego oświadczenia. Używane tylko wtedy, gdy określono Dashboard:Frontend:OpenIdConnect:RequireClaimType . Ta wartość jest opcjonalna. |
Authentication:Schemes:OpenIdConnect:Authority |
null |
Adres URL dostawcy tożsamości (IdP). |
Authentication:Schemes:OpenIdConnect:ClientId |
null |
Tożsamość jednostki uzależnionej (RP). |
Authentication:Schemes:OpenIdConnect:ClientSecret |
null |
Sekret, który wiedziałby tylko prawdziwy RP. |
Inne właściwości OpenIdConnectOptions | null |
Wartości w sekcji konfiguracji Authentication:Schemes:OpenIdConnect:* są powiązane z OpenIdConnectOptions , takimi jak Scope . |
Nuta
Dodatkowa konfiguracja może być wymagana w przypadku korzystania z OpenIdConnect
jako trybu uwierzytelniania za zwrotnym serwerem proxy, który przerywa protokół SSL. Sprawdź, czy chcesz ustawić ASPNETCORE_FORWARDEDHEADERS_ENABLED
na true
.
Aby uzyskać więcej informacji, zobacz Konfigurowanie ASP.NET Core do pracy z serwerami proxy i modułami równoważenia obciążenia.
Uwierzytelnianie OTLP
Uwierzytelnianie punktu końcowego OTLP jest konfigurowane przy użyciu Dashboard:Otlp:AuthMode
. Punkt końcowy OTLP można zabezpieczyć za pomocą klucza interfejsu API lub certyfikatu klienta uwierzytelniania.
Uwierzytelnianie klucza interfejsu API działa, wymagając, aby każde żądanie OTLP miało prawidłową wartość nagłówka x-otlp-api-key
. Musi być zgodny z kluczem podstawowym lub pomocniczym.
Opcja | Wartość domyślna | Opis |
---|---|---|
Dashboard:Otlp:AuthMode |
Unsecured |
Można ustawić na ApiKey , Certificate lub Unsecured .
Unsecured należy używać tylko podczas programowania lokalnego. Nie zaleca się hostowania pulpitu nawigacyjnego publicznie lub w innych ustawieniach. |
Dashboard:Otlp:PrimaryApiKey |
null |
Określa podstawowy klucz interfejsu API. Klucz interfejsu API może być dowolnym tekstem, ale zalecana jest wartość z co najmniej 128 bitami entropii. Ta wartość jest wymagana, jeśli tryb uwierzytelniania jest kluczem interfejsu API. |
Dashboard:Otlp:SecondaryApiKey |
null |
Określa pomocniczy klucz interfejsu API. Klucz interfejsu API może być dowolnym tekstem, ale zalecana jest wartość z co najmniej 128 bitami entropii. Ta wartość jest opcjonalna. Jeśli określono drugi klucz interfejsu API, wartość nagłówka przychodzącego x-otlp-api-key może być zgodna z kluczem podstawowym lub pomocniczym. |
OTLP CORS
Współużytkowanie zasobów między źródłami (CORS) można skonfigurować tak, aby umożliwić aplikacjom przeglądarki wysyłanie danych telemetrycznych do pulpitu nawigacyjnego.
Domyślnie aplikacje przeglądarki są ograniczone do wykonywania wywołań interfejsu API między domenami. Ma to wpływ na wysyłanie danych telemetrycznych do pulpitu nawigacyjnego, ponieważ pulpit nawigacyjny i aplikacja przeglądarki są zawsze w różnych domenach. Aby skonfigurować mechanizm CORS, użyj sekcji Dashboard:Otlp:Cors
i określ dozwolone źródła i nagłówki:
{
"Dashboard": {
"Otlp": {
"Cors": {
"AllowedOrigins": "http://localhost:5000,https://localhost:5001"
}
}
}
}
Rozważ następujące opcje konfiguracji:
Opcja | Wartość domyślna | Opis |
---|---|---|
Dashboard:Otlp:Cors:AllowedOrigins |
null |
Określa dozwolone źródła mechanizmu CORS. Jest to ciąg rozdzielany przecinkami i może zawierać symbol wieloznaczny * , aby zezwolić na dowolną domenę. Ta opcja jest opcjonalna i można ustawić przy użyciu zmiennej środowiskowej DASHBOARD__OTLP__CORS__ALLOWEDORIGINS . |
Dashboard:Otlp:Cors:AllowedHeaders |
null |
Ciąg rozdzielany przecinkami reprezentujący dozwolone nagłówki dla mechanizmu CORS. To ustawienie jest opcjonalne i można je ustawić przy użyciu zmiennej środowiskowej DASHBOARD__OTLP__CORS__ALLOWEDHEADERS . |
Nuta
Pulpit nawigacyjny obsługuje tylko metodę POST
wysyłania danych telemetrycznych i nie zezwala na konfigurację dozwolonych metod (Access-Control-Allow-Methods
) dla mechanizmu CORS.
Zasoby
Pulpit nawigacyjny łączy się z usługą zasobów w celu załadowania i wyświetlenia informacji o zasobach. Klient jest skonfigurowany na pulpicie nawigacyjnym w celu nawiązania połączenia z usługą.
Uwierzytelnianie klienta usługi zasobów jest konfigurowane przy użyciu Dashboard:ResourceServiceClient:AuthMode
. Klienta można skonfigurować do obsługi klucza interfejsu API lub uwierzytelniania certyfikatu klienta.
Opcja | Wartość domyślna | Opis |
---|---|---|
Dashboard:ResourceServiceClient:Url |
null |
Punkt końcowy gRPC, z którym pulpit nawigacyjny łączy się ze swoimi danymi. Jeśli ta wartość jest nieokreślona, na pulpicie nawigacyjnym są wyświetlane dane telemetryczne, ale nie ma listy zasobów ani dzienników konsoli. |
Dashboard:ResourceServiceClient:AuthMode |
null |
Można ustawić na ApiKey , Certificate lub Unsecured .
Unsecured należy używać tylko podczas programowania lokalnego. Nie zaleca się hostowania pulpitu nawigacyjnego publicznie lub w innych ustawieniach. Ta wartość jest wymagana, jeśli określono adres URL usługi zasobów. |
Dashboard:ResourceServiceClient:ApiKey |
null |
Interfejs API do wysłania do usługi zasobów w nagłówku x-resource-service-api-key . Ta wartość jest wymagana, jeśli tryb uwierzytelniania jest kluczem interfejsu API. |
Dashboard:ResourceServiceClient:ClientCertificate:Source |
null |
Można ustawić na File lub KeyStore . Ta wartość jest wymagana, jeśli tryb uwierzytelniania to certyfikat klienta. |
Dashboard:ResourceServiceClient:ClientCertificate:FilePath |
null |
Ścieżka pliku certyfikatu. Ta wartość jest wymagana, jeśli źródło jest File . |
Dashboard:ResourceServiceClient:ClientCertificate:Password |
null |
Hasło do pliku certyfikatu. Ta wartość jest opcjonalna. |
Dashboard:ResourceServiceClient:ClientCertificate:Subject |
null |
Podmiot certyfikatu. Ta wartość jest wymagana, jeśli źródło jest KeyStore . |
Dashboard:ResourceServiceClient:ClientCertificate:Store |
My |
Certyfikat StoreName. |
Dashboard:ResourceServiceClient:ClientCertificate:Location |
CurrentUser |
Certyfikat StoreLocation. |
Limity telemetrii
Dane telemetryczne są przechowywane w pamięci. Aby uniknąć nadmiernego użycia pamięci, pulpit nawigacyjny ma limity liczby i rozmiaru przechowywanych danych telemetrycznych. Po osiągnięciu limitu liczby zostanie dodana nowa telemetria, a najstarsza telemetria zostanie usunięta. Po osiągnięciu limitu rozmiaru dane są obcinane do limitu.
Limity telemetrii mają różne zakresy w zależności od typu telemetrii:
-
MaxLogCount
iMaxTraceCount
są współużytkowane między zasobami. Na przykład wartośćMaxLogCount
5000 konfiguruje pulpit nawigacyjny do przechowywania maksymalnie 5000 wpisów dziennika dla wszystkich zasobów. -
MaxMetricsCount
to zasób. Na przykład wartośćMaxMetricsCount
10 000 konfiguruje pulpit nawigacyjny do przechowywania maksymalnie 10 000 punktów danych metryk na zasób.
Opcja | Wartość domyślna | Opis |
---|---|---|
Dashboard:TelemetryLimits:MaxLogCount |
10,000 | Maksymalna liczba wpisów dziennika. Limit jest współużytkowany między zasobami. |
Dashboard:TelemetryLimits:MaxTraceCount |
10,000 | Maksymalna liczba śladów dziennika. Limit jest współużytkowany między zasobami. |
Dashboard:TelemetryLimits:MaxMetricsCount |
50,000 | Maksymalna liczba punktów danych metryk. Limit to zasób. |
Dashboard:TelemetryLimits:MaxAttributeCount |
128 | Maksymalna liczba atrybutów telemetrii. |
Dashboard:TelemetryLimits:MaxAttributeLength |
null |
Maksymalna długość atrybutów. |
Dashboard:TelemetryLimits:MaxSpanEventCount |
null |
Maksymalna liczba zdarzeń dla atrybutów span. |
Inny
Opcja | Wartość domyślna | Opis |
---|---|---|
Dashboard:ApplicationName |
Aspire |
Nazwa aplikacji, która ma być wyświetlana w interfejsie użytkownika. Ma to zastosowanie tylko wtedy, gdy nie określono żadnego adresu URL usługi zasobów. Gdy usługa zasobów istnieje, usługa określa nazwę aplikacji. |