可通过两种方法对Azure SignalR 服务资源进行身份验证:Microsoft Entra ID和访问密钥。 与访问密钥方法相比,Microsoft Entra ID提供卓越的安全性和易用性。
使用 Microsoft Entra ID,无需在代码中存储令牌,从而降低潜在安全漏洞的风险。 强烈建议尽可能为Azure SignalR 服务资源使用Microsoft Entra ID。
重要
禁用本地身份验证可能会产生以下后果:
- 当前访问密钥集会被永久删除。
- 使用当前访问密钥集签名的令牌将变得不可用。
使用Azure门户
本部分介绍如何使用Azure门户禁用本地身份验证。
在 Azure 门户中,转到 Azure SignalR 服务 资源。
在菜单边栏的“设置”部分,选择“密钥”。
对于“访问密钥”,请选择“禁用”。
选择“保存”按钮。
使用Azure 资源管理器模板
可以通过将 disableLocalAuth 属性设置为 true来禁用本地身份验证,如以下Azure 资源管理器模板所示:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"resource_name": {
"defaultValue": "test-for-disable-aad",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.SignalRService/SignalR",
"apiVersion": "2022-08-01-preview",
"name": "[parameters('resource_name')]",
"location": "chinanorth3",
"sku": {
"name": "Premium_P1",
"tier": "Premium",
"size": "P1",
"capacity": 1
},
"kind": "SignalR",
"properties": {
"tls": {
"clientCertEnabled": false
},
"features": [
{
"flag": "ServiceMode",
"value": "Default",
"properties": {}
},
{
"flag": "EnableConnectivityLogs",
"value": "True",
"properties": {}
}
],
"cors": {
"allowedOrigins": ["*"]
},
"serverless": {
"connectionTimeoutInSeconds": 30
},
"upstream": {},
"networkACLs": {
"defaultAction": "Deny",
"publicNetwork": {
"allow": [
"ServerConnection",
"ClientConnection",
"RESTAPI",
"Trace"
]
},
"privateEndpoints": []
},
"publicNetworkAccess": "Enabled",
"disableLocalAuth": true,
"disableAadAuth": false
}
}
]
}
使用Azure策略
若要对Azure订阅或资源组中的所有Azure SignalR 服务资源强制禁用本地身份验证,可以分配以下Azure策略:Azure SignalR 服务应禁用本地身份验证方法。
后续步骤
请参阅以下文档,了解身份验证方法: