Udostępnij za pośrednictwem


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:

  1. W witrynie Azure Portal wyszukaj i wybierz pozycję Microsoft Entra ID.

  2. W obszarze Zarządzaj wybierz pozycję Rejestracje aplikacji.

  3. Wybierz Nowa rejestracja. Zostanie otwarte okienko Rejestrowanie aplikacji .

    Zrzut ekranu przedstawiający okienko służące do rejestrowania aplikacji.

  4. W polu Nazwa wprowadź nazwę wyświetlaną aplikacji.

  5. 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.

Zrzut ekranu przedstawiający informacje o przeglądach zarejestrowanej aplikacji.

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:

  1. W obszarze Zarządzanie wybierz pozycję Certyfikaty i wpisy tajne.

  2. Na karcie Wpisy tajne klienta wybierz pozycję Nowy klucz tajny klienta.

    Zrzut ekranu przedstawiający opcje tworzenia wpisu tajnego klienta.

  3. Wprowadź opis wpisu tajnego klienta i wybierz czas wygaśnięcia.

  4. 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.

Zrzut ekranu przedstawiający opcje przekazywania certyfikatu.

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.

  1. W witrynie Azure Portal przejdź do zasobu usługi Azure SignalR Service.

  2. Wybierz pozycję Kontrola dostępu (IAM).

  3. Wybierz pozycję Dodaj>Dodaj przypisanie roli.

    Zrzut ekranu przedstawiający stronę kontroli dostępu i wyborów dotyczących dodawania przypisania roli.

  4. Na karcie Rola wybierz pozycję SignalR App Server.

  5. Na karcie Członkowie wybierz pozycję Użytkownik, grupa lub jednostka usługi, a następnie wybierz pozycję Wybierz członków.

  6. Wyszukaj i wybierz aplikację, do której chcesz przypisać rolę.

  7. 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:

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 AzureSignalRConnectionStringwartość ) 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 ConnectionStringSettingpowią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: