我正在使用Azure总线进行消息传递。我们正在使用适当的安全实践来配置ACS,即使用代表不同主题的不同依赖方和订阅。
我们正在使用ACS服务标识来访问总线。到目前为止,我们使用的是对称密钥,但我们正在使用具有这些身份的密码。
我未能找到设置TokenProvider(传递给MessagingFactory)来验证我的服务标识的方法。
我试过了:
var serviceUri = ServiceBusEnvironment.CreateServiceUri(
"sb",
serviceBusNamespace,
string.Empty);
var tokenProvider = TokenProvider.CreateOAuthTokenProvider(
new[] { serviceUri },
new NetworkCredential(serviceIdentityName, serviceIdentityPassword));
抛出,抱怨“在访问'https://XYZ.servicebus.windows.net/ $ STS / OAuth /'时尝试获取令牌时超时”。“我知道url不是o-auth的终点;我不知道为什么要去那里。
所以我试过了:
var tokenProvider = TokenProvider.CreateOAuthTokenProvider(
new[] { new Uri("https://XYZ-sb.accesscontrol.windows.net/v2/OAuth2-13") },
new NetworkCredential(serviceIdentityName, serviceIdentityPassword));
在访问'https://XYZ-sb.accesscontrol.windows.net/v2/OAuth2-13/ $ STS / OAuth /'时尝试获取令牌时超时“超时”。“
网址再次不好......
所以我改变了策略并尝试了:
var tokenProvider = TokenProvider.CreateSharedSecretTokenProvider(
serviceIdentityName,
serviceIdentityPassword);
接收异常“令牌提供商在访问”https://XYZ-sb.accesscontrol.windows.net/WRAPv0.9/“时无法提供安全令牌”
那么......使用密码验证服务标识的正确咒语是什么?
答案 0 :(得分:1)
你试过这个吗?
TokenProvider.CreateSimpleWebTokenProvider
)。这个doc有一些示例可以帮助您完成第1步和第2步。这有点像我猜的方式,但如果有更好的方法,我想听听它。顺便发送只是WRAP令牌似乎不起作用。