【发布时间】:2013-12-05 15:49:28
【问题描述】:
我正在使用 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/'时无法提供安全令牌”
那么...使用密码验证服务身份的正确咒语是什么?
【问题讨论】:
标签: authentication azure oauth swt servicebus