【问题标题】:Azure Bus, TokenProvider with ACS Service Identity, using passwordAzure 总线,具有 ACS 服务标识的 TokenProvider,使用密码
【发布时间】: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


    【解决方案1】:

    你试过了吗

    1. 使用 serviceid/password 从 ACS 获取 Wrap Token
    2. 再次使用您在第一步中从 ACS 获得的 Wrap Token 获取 Signed SWT
    3. 使用您在第 2 步中获得的 SWT 令牌 (TokenProvider.CreateSimpleWebTokenProvider) 创建一个 SimpleTokenProvider。

    这个doc 有示例可以帮助您完成第 1 步和第 2 步。我猜这有点绕圈子,但如果有更好的方法,我想听听。顺便说一句,仅发送 WRAP 令牌似乎不起作用。

    【讨论】:

    • 嗯...事实是我不知道如何处理 TokenProvider.CreateSimpleWebTokenProvider。只接受一个令牌的令牌提供者让我感到困惑......服务总线的原理是每个实体(队列、主题和订阅)都被建模为不同的依赖方,因此您需要为每个实体使用不同的令牌。不过,我确实有获取 oAuth 令牌的代码……我可以试试。
    • 因此您需要为每个令牌使用不同的令牌,如果在实体级别完成身份验证,或者您只想获得一个令牌并在所有实体上使用它,这就是您无论如何都需要做的事情,我猜猜可以将命名空间添加为 RP 吗?对不起,我不明白你的问题。
    猜你喜欢
    • 2022-01-18
    • 2014-11-06
    • 2017-12-07
    • 2021-08-25
    • 2022-09-24
    • 2022-12-19
    • 1970-01-01
    • 2021-08-08
    • 2021-01-24
    相关资源
    最近更新 更多