Autoryzowanie żądań do zasobów usługi Azure SignalR Service za pomocą aplikacji firmy Microsoft Entra
Usługa Azure SignalR Service obsługuje identyfikator Entra firmy Microsoft na potrzeby autoryzowania żądań z aplikacji Firmy Microsoft Entra.
W tym artykule pokazano, jak skonfigurować zasób i kody usługi Azure SignalR Service w celu autoryzowania żądań do zasobu z aplikacji Firmy Microsoft Entra.
Rejestrowanie aplikacji
Pierwszym krokiem jest zarejestrowanie aplikacji Firmy Microsoft Entra:
W witrynie Azure Portal wyszukaj i wybierz pozycję Microsoft Entra ID.
W obszarze Zarządzaj wybierz pozycję Rejestracje aplikacji.
Wybierz Nowa rejestracja. Zostanie otwarte okienko Rejestrowanie aplikacji .
W polu Nazwa wprowadź nazwę wyświetlaną aplikacji.
Wybierz pozycję Zarejestruj, aby potwierdzić rejestrację.
Po zarejestrowaniu aplikacji można znaleźć wartości Identyfikator aplikacji (klienta) i Identyfikator katalogu (dzierżawy) na stronie przeglądu aplikacji. Te identyfikatory GUID mogą być przydatne w poniższych krokach.
Aby dowiedzieć się więcej na temat rejestrowania aplikacji, zobacz Szybki start: rejestrowanie aplikacji przy użyciu Platforma tożsamości Microsoft.
Dodaj poświadczenia
Możesz dodać zarówno certyfikaty, jak i wpisy tajne klienta (ciąg) jako poświadczenia do poufnej rejestracji aplikacji klienckiej.
Klucz tajny klienta
Aplikacja wymaga klucza tajnego klienta, aby udowodnić swoją tożsamość podczas żądania tokenu. Aby utworzyć klucz tajny klienta, wykonaj następujące kroki:
W obszarze Zarządzanie wybierz pozycję Certyfikaty i wpisy tajne.
Na karcie Wpisy tajne klienta wybierz pozycję Nowy klucz tajny klienta.
Wprowadź opis wpisu tajnego klienta i wybierz czas wygaśnięcia.
Skopiuj wartość wpisu tajnego klienta, a następnie wklej ją w bezpiecznej lokalizacji.
Uwaga
Wpis tajny jest wyświetlany tylko raz.
Certyfikat
Certyfikat można przekazać zamiast tworzyć klucz tajny klienta.
Aby dowiedzieć się więcej na temat dodawania poświadczeń, zobacz Dodawanie poświadczeń.
Dodawanie przypisań ról w witrynie Azure Portal
W poniższych krokach opisano sposób przypisywania roli serwera aplikacji SignalR do jednostki usługi (aplikacji) za pośrednictwem zasobu usługi Azure SignalR Service. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.
Uwaga
Rolę można przypisać do dowolnego zakresu, w tym grupy zarządzania, subskrypcji, grupy zasobów lub pojedynczego zasobu. Aby dowiedzieć się więcej na temat zakresu, zobacz Omówienie zakresu kontroli dostępu opartej na rolach platformy Azure.
W witrynie Azure Portal przejdź do zasobu usługi Azure SignalR Service.
Wybierz pozycję Kontrola dostępu (IAM).
Wybierz pozycję Dodaj>Dodaj przypisanie roli.
Na karcie Rola wybierz pozycję SignalR App Server.
Na karcie Członkowie wybierz pozycję Użytkownik, grupa lub jednostka usługi, a następnie wybierz pozycję Wybierz członków.
Wyszukaj i wybierz aplikację, do której chcesz przypisać rolę.
Na karcie Przeglądanie i przypisywanie wybierz pozycję Przejrzyj i przypisz, aby przypisać rolę.
Ważne
Propagowanie przypisań ról platformy Azure może potrwać do 30 minut.
Aby dowiedzieć się więcej na temat przypisywania ról platformy Azure i zarządzania nimi, zobacz następujące artykuły:
- Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal
- Przypisywanie ról platformy Azure przy użyciu interfejs API Rest
- Przypisywanie ról platformy Azure przy użyciu Azure PowerShell
- Przypisywanie ról platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure
- Przypisywanie ról platformy Azure przy użyciu szablonów usługi Azure Resource Manager
Konfigurowanie aplikacji
Serwer aplikacji
Najlepszym rozwiązaniem jest skonfigurowanie tożsamości i poświadczeń w zmiennych środowiskowych:
Zmienna | opis |
---|---|
AZURE_TENANT_ID |
Identyfikator dzierżawy firmy Microsoft Entra. |
AZURE_CLIENT_ID |
Identyfikator klienta (aplikacji) rejestracji aplikacji w dzierżawie. |
AZURE_CLIENT_SECRET |
Wpis tajny klienta wygenerowany na potrzeby rejestracji aplikacji. |
AZURE_CLIENT_CERTIFICATE_PATH |
Ścieżka do pary certyfikatu i klucza prywatnego w formacie PEM lub PFX, który może uwierzytelnić rejestrację aplikacji. |
AZURE_USERNAME |
Nazwa użytkownika, znana również jako główna nazwa użytkownika (UPN) konta użytkownika Microsoft Entra. |
AZURE_PASSWORD |
Hasło konta użytkownika Microsoft Entra. Hasło nie jest obsługiwane w przypadku kont z włączonym uwierzytelnianiem wieloskładnikowym. |
Do skonfigurowania punktów końcowych usługi Azure SignalR Service można użyć wartości DefaultAzureCredential lub EnvironmentCredential . Oto kod dla elementu DefaultAzureCredential
:
services.AddSignalR().AddAzureSignalR(option =>
{
option.Endpoints = new ServiceEndpoint[]
{
new ServiceEndpoint(new Uri("https://<resource-name>.service.signalr.net"), new DefaultAzureCredential())
};
});
Oto kod dla elementu EnvironmentCredential
:
services.AddSignalR().AddAzureSignalR(option =>
{
option.Endpoints = new ServiceEndpoint[]
{
new ServiceEndpoint(new Uri("https://<resource-name>.service.signalr.net"), new EnvironmentCredential())
};
});
Aby dowiedzieć się, jak DefaultAzureCredential
działa, zobacz DefaultAzureCredential, klasa.
Używanie poświadczeń specyficznych dla punktu końcowego
W organizacji możesz użyć różnych poświadczeń dla różnych punktów końcowych.
W tym scenariuszu można użyć parametru ClientSecretCredential lub ClientCertificateCredential:
services.AddSignalR().AddAzureSignalR(option =>
{
var credential1 = new ClientSecretCredential("tenantId", "clientId", "clientSecret");
var credential2 = new ClientCertificateCredential("tenantId", "clientId", "pathToCert");
option.Endpoints = new ServiceEndpoint[]
{
new ServiceEndpoint(new Uri("https://<resource1>.service.signalr.net"), credential1),
new ServiceEndpoint(new Uri("https://<resource2>.service.signalr.net"), credential2),
};
});
Powiązania usługi Azure SignalR Service w usłudze Azure Functions
Powiązania usługi Azure SignalR Service w usłudze Azure Functions używają ustawień aplikacji w portalu lub local.settings.json lokalnie w celu skonfigurowania tożsamości aplikacji Microsoft Entra w celu uzyskania dostępu do zasobów usługi Azure SignalR Service.
Najpierw należy określić identyfikator URI usługi azure SignalR Service. Kluczem identyfikatora URI usługi jest serviceUri
. Zaczyna się od prefiksu nazwy połączenia (który domyślnie ma AzureSignalRConnectionString
wartość ) i separatora. Separator to podkreślenie (__
) w witrynie Azure Portal i dwukropek (:
) w pliku local.settings.json . Nazwę połączenia można dostosować przy użyciu właściwości ConnectionStringSetting
powiązania . Kontynuuj czytanie, aby znaleźć przykład.
Następnie należy wybrać, czy skonfigurować tożsamość aplikacji Microsoft Entra w wstępnie zdefiniowanych zmiennych środowiskowych, czy w zmiennych określonych przez signalR.
Konfigurowanie tożsamości w wstępnie zdefiniowanych zmiennych środowiskowych
Zobacz Zmienne środowiskowe , aby uzyskać listę wstępnie zdefiniowanych zmiennych środowiskowych. Jeśli masz wiele usług, zalecamy użycie tej samej tożsamości aplikacji, aby nie trzeba było konfigurować tożsamości dla każdej usługi. Inne usługi mogą również używać tych zmiennych środowiskowych na podstawie ustawień tych usług.
Aby na przykład użyć poświadczeń wpisu tajnego klienta, skonfiguruj tożsamość w następujący sposób w pliku local.settings.json :
{
"Values": {
"<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net",
"AZURE_CLIENT_ID": "...",
"AZURE_CLIENT_SECRET": "...",
"AZURE_TENANT_ID": "..."
}
}
W witrynie Azure Portal dodaj ustawienia w następujący sposób:
<CONNECTION_NAME_PREFIX>__serviceUri=https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
AZURE_CLIENT_ID = ...
AZURE_TENANT_ID = ...
AZURE_CLIENT_SECRET = ...
Konfigurowanie tożsamości w zmiennych określonych przez usługę SignalR
Zmienne określone przez usługę SignalR współdzielą ten sam prefiks klucza z kluczem serviceUri
. Oto lista zmiennych, których można użyć:
clientId
clientSecret
tenantId
Poniżej przedstawiono przykłady używania poświadczeń wpisów tajnych klienta w pliku local.settings.json :
{
"Values": {
"<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net",
"<CONNECTION_NAME_PREFIX>:clientId": "...",
"<CONNECTION_NAME_PREFIX>:clientSecret": "...",
"<CONNECTION_NAME_PREFIX>:tenantId": "..."
}
}
W witrynie Azure Portal dodaj ustawienia w następujący sposób:
<CONNECTION_NAME_PREFIX>__serviceUri = https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
<CONNECTION_NAME_PREFIX>__clientId = ...
<CONNECTION_NAME_PREFIX>__clientSecret = ...
<CONNECTION_NAME_PREFIX>__tenantId = ...
Następne kroki
Zobacz następujące powiązane artykuły: