首页 文章

Azure Bus,具有ACS服务标识的TokenProvider,使用密码

提问于
浏览
0

我正在使用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 / '.". I know that url isn' t o-auth的 endpoints 时尝试获取令牌时超时;我不想试图去那里 .

所以我试过了:

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/'时无法提供安全令牌”

那么......使用密码验证服务标识的正确咒语是什么?

1 回答

  • 1

    你试过这个吗?

    • 使用serviceid / password从ACS获取包装令牌

    • 使用您在ACS的第一步中再次获得的Wrap Token获取签名SWT

    • 使用您在步骤2中获得的SWT令牌创建SimpleTokenProvider( TokenProvider.CreateSimpleWebTokenProvider ) .

    这个doc有一些示例可以帮助您完成第1步和第2步 . 这有点像我猜的方式,但如果有更好的方法,我想听听它 . 顺便发送只是WRAP令牌似乎不起作用 .

相关问题