Sdílet prostřednictvím


Autorizace požadavků na prostředky služby Azure SignalR Pomocí aplikací Microsoft Entra

Azure SignalR Service podporuje ID Microsoft Entra pro autorizaci požadavků z aplikací Microsoft Entra.

Tento článek ukazuje, jak nakonfigurovat prostředek a kódy služby Azure SignalR pro autorizaci požadavků na prostředek z aplikace Microsoft Entra.

Registrace aplikace

Prvním krokem je registrace aplikace Microsoft Entra:

  1. Na webu Azure Portal vyhledejte a vyberte ID Microsoft Entra.

  2. Pod Spravovat vyberte Registrace aplikací.

  3. Vyberte Nová registrace. Otevře se podokno Registrace aplikace .

    Snímek obrazovky s podoknem pro registraci aplikace

  4. Do pole Název zadejte zobrazovaný název aplikace.

  5. Výběrem možnosti Zaregistrovat potvrďte registraci.

Po registraci aplikace najdete hodnoty ID aplikace (klienta) a ID adresáře (tenanta) na stránce přehledu aplikace. Tyto identifikátory GUID můžou být užitečné v následujících krocích.

Snímek obrazovky s přehledem informací o zaregistrované aplikaci

Další informace o registraci aplikace najdete v tématu Rychlý start: Registrace aplikace na platformě Microsoft Identity Platform.

Přidat přihlašovací údaje

Jako přihlašovací údaje k registraci důvěrné klientské aplikace můžete přidat certifikáty i tajné klíče klienta (řetězec).

Tajný klíč klienta

Aplikace vyžaduje, aby tajný klíč klienta prokázal svou identitu, když požaduje token. Pokud chcete vytvořit tajný klíč klienta, postupujte takto:

  1. V části Spravovat vyberte Certifikáty a tajné kódy.

  2. Na kartě Tajné kódy klienta vyberte Nový tajný klíč klienta.

    Snímek obrazovky s výběrem pro vytvoření tajného klíče klienta

  3. Zadejte popis tajného klíče klienta a zvolte čas vypršení platnosti.

  4. Zkopírujte hodnotu tajného klíče klienta a vložte ji do zabezpečeného umístění.

    Poznámka:

    Tajný kód se zobrazí jenom jednou.

Certifikát

Místo vytvoření tajného klíče klienta můžete nahrát certifikát.

Snímek obrazovky s výběrem pro nahrání certifikátu

Další informace o přidávání přihlašovacích údajů najdete v tématu Přidání přihlašovacích údajů.

Přidání přiřazení rolí na webu Azure Portal

Následující kroky popisují, jak přiřadit roli SignalR App Serveru k instančnímu objektu (aplikaci) přes prostředek služby Azure SignalR. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

Poznámka:

Roli je možné přiřadit k libovolnému oboru, včetně skupiny pro správu, předplatného, skupiny prostředků nebo jednoho prostředku. Další informace o oboru najdete v tématu Vysvětlení oboru pro Azure RBAC.

  1. Na webu Azure Portal přejděte k prostředku služby Azure SignalR.

  2. Vyberte Řízení přístupu (IAM) .

  3. Vyberte Přidat>Přidat přiřazení role.

    Snímek obrazovky znázorňující stránku pro řízení přístupu a výběry pro přidání přiřazení role

  4. Na kartě Role vyberte SignalR App Server.

  5. Na kartě Členové vyberte Uživatel, skupina nebo instanční objekt a pak zvolte Vybrat členy.

  6. Vyhledejte a vyberte aplikaci, ke které chcete roli přiřadit.

  7. Na kartě Zkontrolovat a přiřadit vyberte možnost Zkontrolovat a přiřadit a přiřaďte roli.

Důležité

Rozšíření přiřazení rolí Azure může trvat až 30 minut.

Další informace o přiřazování a správě rolí Azure najdete v těchto článcích:

Konfigurace aplikace

Aplikační server

Osvědčeným postupem je nakonfigurovat identitu a přihlašovací údaje v proměnných prostředí:

Proměnná Popis
AZURE_TENANT_ID ID tenanta Microsoft Entra.
AZURE_CLIENT_ID ID klienta (aplikace) registrace aplikace v tenantovi.
AZURE_CLIENT_SECRET Tajný klíč klienta vygenerovaný pro registraci aplikace.
AZURE_CLIENT_CERTIFICATE_PATH Cesta k páru certifikátů a privátních klíčů ve formátu PEM nebo PFX, která může ověřit registraci aplikace.
AZURE_USERNAME Uživatelské jméno, označované také jako hlavní název uživatele (UPN) uživatelského účtu Microsoft Entra.
AZURE_PASSWORD Heslo uživatelského účtu Microsoft Entra. Pro účty s povoleným vícefaktorovým ověřováním se nepodporuje heslo.

Ke konfiguraci koncových bodů služby Azure SignalR můžete použít defaultAzureCredential nebo EnvironmentCredential . Tady je kód pro DefaultAzureCredential:

services.AddSignalR().AddAzureSignalR(option =>
{
    option.Endpoints = new ServiceEndpoint[]
    {
        new ServiceEndpoint(new Uri("https://<resource-name>.service.signalr.net"), new DefaultAzureCredential())
    };
});

Tady je kód pro EnvironmentCredential:

services.AddSignalR().AddAzureSignalR(option =>
{
    option.Endpoints = new ServiceEndpoint[]
    {
        new ServiceEndpoint(new Uri("https://<resource-name>.service.signalr.net"), new EnvironmentCredential())
    };
});

Informace o tom, jak DefaultAzureCredential funguje, najdete v tématu DefaultAzureCredential – třída.

Použití přihlašovacích údajů specifických pro koncový bod

Ve vaší organizaci můžete chtít pro různé koncové body použít jiné přihlašovací údaje.

V tomto scénáři můžete použít ClientSecretCredential nebo 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),
    };
});

Vazby služby Azure SignalR Ve službě Azure Functions

Vazby služby Azure SignalR ve službě Azure Functions používají nastavení aplikace na portálu nebo local.settings.json místně ke konfiguraci identit aplikací Microsoft Entra pro přístup k prostředkům služby Azure SignalR.

Nejprve musíte zadat identifikátor URI služby služby Azure SignalR Service. Klíč identifikátoru URI služby je serviceUri. Začíná předponou názvu připojení (výchozí hodnotou AzureSignalRConnectionString) a oddělovačem. Oddělovač je podtržítko (__) na webu Azure Portal a dvojtečka (:) v souboru local.settings.json . Název připojení můžete přizpůsobit pomocí vlastnosti ConnectionStringSettingvazby . Pokračujte ve čtení a najděte ukázku.

Pak se rozhodnete, jestli chcete nakonfigurovat identitu aplikace Microsoft Entra v předdefinovaných proměnných prostředí nebo v proměnných zadaných službou SignalR.

Konfigurace identity v předdefinovaných proměnných prostředí

Seznam předdefinovaných proměnných prostředí najdete v tématu Proměnné prostředí. Pokud máte více služeb, doporučujeme použít stejnou identitu aplikace, abyste nemuseli konfigurovat identitu pro každou službu. Jiné služby můžou tyto proměnné prostředí používat také na základě nastavení těchto služeb.

Pokud například chcete použít přihlašovací údaje pro tajný klíč klienta, nakonfigurujte identitu následujícím způsobem v souboru local.settings.json :

{
  "Values": {
    "<CONNECTION_NAME_PREFIX>:serviceUri": "https://<SIGNALR_RESOURCE_NAME>.service.signalr.net",
    "AZURE_CLIENT_ID": "...",
    "AZURE_CLIENT_SECRET": "...",
    "AZURE_TENANT_ID": "..."
  }
}

Na webu Azure Portal přidejte nastavení následujícím způsobem:

 <CONNECTION_NAME_PREFIX>__serviceUri=https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
AZURE_CLIENT_ID = ...
AZURE_TENANT_ID = ...
AZURE_CLIENT_SECRET = ...

Konfigurace identity v proměnných zadaných službou SignalR

Proměnné zadané službou SignalR sdílejí stejnou předponu serviceUri klíče s klíčem. Tady je seznam proměnných, které můžete použít:

  • clientId
  • clientSecret
  • tenantId

Tady jsou ukázky pro použití přihlašovacích údajů ke tajným klíčům klienta v souboru 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": "..."
  }
}

Na webu Azure Portal přidejte nastavení následujícím způsobem:

<CONNECTION_NAME_PREFIX>__serviceUri = https://<SIGNALR_RESOURCE_NAME>.service.signalr.net
<CONNECTION_NAME_PREFIX>__clientId = ...
<CONNECTION_NAME_PREFIX>__clientSecret = ...
<CONNECTION_NAME_PREFIX>__tenantId = ...

Další kroky

Projděte si následující související články: