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:
Na webu Azure Portal vyhledejte a vyberte ID Microsoft Entra.
Pod Spravovat vyberte Registrace aplikací.
Vyberte Nová registrace. Otevře se podokno Registrace aplikace .
Do pole Název zadejte zobrazovaný název aplikace.
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.
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:
V části Spravovat vyberte Certifikáty a tajné kódy.
Na kartě Tajné kódy klienta vyberte Nový tajný klíč klienta.
Zadejte popis tajného klíče klienta a zvolte čas vypršení platnosti.
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.
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.
Na webu Azure Portal přejděte k prostředku služby Azure SignalR.
Vyberte Řízení přístupu (IAM) .
Vyberte Přidat>Přidat přiřazení role.
Na kartě Role vyberte SignalR App Server.
Na kartě Členové vyberte Uživatel, skupina nebo instanční objekt a pak zvolte Vybrat členy.
Vyhledejte a vyberte aplikaci, ke které chcete roli přiřadit.
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:
- Přiřazování rolí Azure s využitím webu Azure Portal
- Přiřazení rolí Azure pomocí rozhraní REST API
- Přiřazení rolí Azure pomocí Azure PowerShellu
- Přiřazení rolí Azure pomocí Azure CLI
- Přiřazení rolí Azure pomocí šablon Azure Resource Manageru
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 ConnectionStringSetting
vazby . 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: