azure - 使用 SoapUI 测试 Azure 混合连接
问题描述
我有一个 Azure 混合连接,它应该连接到一些本地服务并将其公开给我的应用程序服务。但是,设置在某处失败,我正试图缩小问题的确切范围。
作为这个过程的一部分(并且因为它在将来对我有用)我正在尝试使用 SoapUI 调用底层的本地服务,但是应该给我 WSDL 的初始 GET 请求是给我一个身份验证错误:
GET https://my-relay.servicebus.windows.net/my-endpoint/my-service.svc?wsdl
{
"error": {
"code": "TokenMissingOrInvalid",
"message": "MissingToken: Relay security token is required. TrackingId:b58c004c-e0e6-4dd0-a233-e0d304795e4e_G21, SystemTracker:my-relay.servicebus.windows.net:my-endpoint/my-service.svc, Timestamp:2019-03-05T10:17:26"
}
}
我从哪里获得 Relay 安全令牌,以及如何告诉 SoapUI?
解决方案
您需要创建一个安全令牌并将其传递到请求的标头中。
像这样的东西:
var tokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(KeyName, Key);
var uri = new Uri(string.Format("https://{0}/{1}", RelayNamespace, ConnectionName));
var token = (await tokenProvider.GetTokenAsync(uri.AbsoluteUri, TimeSpan.FromHours(1))).TokenString;
var client = new HttpClient();
var request = new HttpRequestMessage()
{
RequestUri = uri,
Method = HttpMethod.Get,
};
request.Headers.Add("ServiceBusAuthorization", token);
var response = await client.SendAsync(request);
对于 SOAPUI,您将在名为“ServiceBusAuthorization”的标头中添加生成的令牌值。
推荐阅读
- uml - PlantUML序列图中的主题如何排序?
- flutter - Flutter 类对象在没有 getter 的情况下访问私有字段
- python - 如何在 python 中导入“umap”包?
- oracle-nosql - Oracle NoSQL 存储节点
- python - Pyqt5情节没有更新?
- postgresql - 在简单的 PostgresSQL 查询中使用变量
- angular - Angular 11 默认 TypeScript 配置:target 'es2015',lib 'es2018',但没有 polyfill?
- coinbase-api - 如果客户使用 2 因素身份验证,结帐按钮回调不起作用
- javascript - Accessbility bar - 如何允许用户使用 JavaScript、CSS、Flask、Jinja 将样式应用到整个网站
- sql - 在sql server中使用值时如何在sql select中设置标志是或否