使用 Azure ADB2C 令牌对 RabbitMq 进行身份验证
Using Azure ADB2C tokens to authenticate to RabbitMq
我正在使用 Azure ADB2C 对 Web 服务的用户进行身份验证。我还使用自定义策略来丰富 Azure ADB2C 生成的令牌。这很好用。
现在我想添加另一个服务,为此我想使用 RabbitMq。要对 RabbitMq 服务器的用户进行身份验证,我想使用 RabbitMq 的 oauth2 plugin.
基本上我想使用 Azure ADB2C 生成的相同 jwt 令牌来验证和授权用户访问 RabbitMq 服务器。
为此,我需要为 RabbitMq 提供我的自定义 Azure ADB2C 策略正在使用的 UAA signing key。
这是来自 RabbitMq oauth2 的示例:
[
%% ...
%% backend configuration
{rabbitmq_auth_backend_oauth2, [
{resource_server_id, <<"my_rabbit_server">>},
%% UAA signing key configuration
{key_config, [
{signing_keys, #{
<<"a-key-ID">> => {pem, <<"*-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2dP+vRn+Kj+S/oGd49kq
6+CKNAduCC1raLfTH7B3qjmZYm45yDl+XmgK9CNmHXkho9qvmhdksdzDVsdeDlhK
IdcIWadhqDzdtn1hj/22iUwrhH0bd475hlKcsiZ+oy/sdgGgAzvmmTQmdMqEXqV2
B9q9KFBmo4Ahh/6+d4wM1rH9kxl0RvMAKLe+daoIHIjok8hCO4cKQQEw/ErBe4SF
2cr3wQwCfF1qVu4eAVNVfxfy/uEvG3Q7x005P3TcK+QcYgJxav3lictSi5dyWLgG
QAvkknWitpRK8KVLypEj5WKej6CF8nq30utn15FQg0JkHoqzwiCqqeen8GIPteI7
VwIDAQAB
-----END PUBLIC KEY-----*">>}
}}
]}
]}
].
但是我找不到这个“PUBLIC KEY”。
例如,查看此 demo key,没有 PUBLIC RabbitMq oauth2 身份验证器所需的 KEY。
在哪里可以找到我要使用的 Azure ADB2C 自定义策略的 PUBLIC KEY?
转到 Azure 门户,AAD B2C Blade。找到您的自定义策略或用户流程。单击“运行 立即”按钮。
在窗格中,您将找到 Open ID Connect Metadata document.
https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/your-policy-id/v2.0/.well-known/openid-configuration
在本文档中,您将找到一个 JWKS URI。打开 JWKS URI。在 JWKS URI 中,您将找到用于生成签名密钥的参数 - 模数 (n) 和指数 (e)。
您需要组合这些值(二进制编码字节)来重新创建您正在寻找的 public 证书。
我正在使用 Azure ADB2C 对 Web 服务的用户进行身份验证。我还使用自定义策略来丰富 Azure ADB2C 生成的令牌。这很好用。
现在我想添加另一个服务,为此我想使用 RabbitMq。要对 RabbitMq 服务器的用户进行身份验证,我想使用 RabbitMq 的 oauth2 plugin.
基本上我想使用 Azure ADB2C 生成的相同 jwt 令牌来验证和授权用户访问 RabbitMq 服务器。
为此,我需要为 RabbitMq 提供我的自定义 Azure ADB2C 策略正在使用的 UAA signing key。
这是来自 RabbitMq oauth2 的示例:
[
%% ...
%% backend configuration
{rabbitmq_auth_backend_oauth2, [
{resource_server_id, <<"my_rabbit_server">>},
%% UAA signing key configuration
{key_config, [
{signing_keys, #{
<<"a-key-ID">> => {pem, <<"*-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2dP+vRn+Kj+S/oGd49kq
6+CKNAduCC1raLfTH7B3qjmZYm45yDl+XmgK9CNmHXkho9qvmhdksdzDVsdeDlhK
IdcIWadhqDzdtn1hj/22iUwrhH0bd475hlKcsiZ+oy/sdgGgAzvmmTQmdMqEXqV2
B9q9KFBmo4Ahh/6+d4wM1rH9kxl0RvMAKLe+daoIHIjok8hCO4cKQQEw/ErBe4SF
2cr3wQwCfF1qVu4eAVNVfxfy/uEvG3Q7x005P3TcK+QcYgJxav3lictSi5dyWLgG
QAvkknWitpRK8KVLypEj5WKej6CF8nq30utn15FQg0JkHoqzwiCqqeen8GIPteI7
VwIDAQAB
-----END PUBLIC KEY-----*">>}
}}
]}
]}
].
但是我找不到这个“PUBLIC KEY”。
例如,查看此 demo key,没有 PUBLIC RabbitMq oauth2 身份验证器所需的 KEY。
在哪里可以找到我要使用的 Azure ADB2C 自定义策略的 PUBLIC KEY?
转到 Azure 门户,AAD B2C Blade。找到您的自定义策略或用户流程。单击“运行 立即”按钮。 在窗格中,您将找到 Open ID Connect Metadata document.
https://fabrikamb2c.b2clogin.com/fabrikamb2c.onmicrosoft.com/your-policy-id/v2.0/.well-known/openid-configuration
在本文档中,您将找到一个 JWKS URI。打开 JWKS URI。在 JWKS URI 中,您将找到用于生成签名密钥的参数 - 模数 (n) 和指数 (e)。
您需要组合这些值(二进制编码字节)来重新创建您正在寻找的 public 证书。