禁止将本地(访问密钥)身份验证与 Azure SignalR 服务配合使用
可通过以下两种方式向 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 服务应禁用本地身份验证方法。
后续步骤
请参阅以下文档,了解身份验证方法: