Azure API 管理 - Validate-JWT - 禁用证书验证
Azure API Management - Validate-JWT - disable certificate validation
是否有人有使用 Azure API 管理的经验,尤其是使用策略模型验证发送给它的 JWT 令牌?
我已经正确配置了 <validate-jwt>
标签,但是我的令牌是非对称签名的,所以我需要使用 <openid-config>
标签让系统知道从哪里获得 public关键。
在这样做时,系统将通过 SSL/TLS 调用 url,但在我的例子中,主机配置为提供 SSL/TLS 和自签名证书。
有什么方法可以禁用它吗?我知道官方文档提到在调用后端 API 时禁用证书验证,但这是一个前置 API。并且设置似乎不起作用。
我还尝试滥用策略的声明模型,以某种方式 运行 C# 代码禁用它,但无济于事。
有人知道这样做的其他方法吗?要么禁用验证,要么强制信任自签名证书。
谢谢,祝你玩得开心
编辑:我的配置是这样的:
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized" require-expiration-time="true" require-scheme="https" require-signed-tokens="true">
<openid-config url="https://identityserverhost/.well-known/openid-configuration" />
<audiences>
<audience>audience</audience>
</audiences>
<issuers>
<issuer>issuer</issuer>
</issuers>
</validate-jwt>
https://identityserverhost 通过 https 提供服务,但使用自签名证书,如果这样更清楚的话。
我认为目前还不可能,不过这会是一个很好的功能。如果您愿意,可以在 openid-config 中切换到 http 而不是 https。
如果您有证书,可以将其加载到 API 管理
并通过以下策略验证令牌
<issuer-signing-keys>
<key certificate-id="my-rsa-cert" />
</issuer-signing-keys>
是否有人有使用 Azure API 管理的经验,尤其是使用策略模型验证发送给它的 JWT 令牌?
我已经正确配置了 <validate-jwt>
标签,但是我的令牌是非对称签名的,所以我需要使用 <openid-config>
标签让系统知道从哪里获得 public关键。
在这样做时,系统将通过 SSL/TLS 调用 url,但在我的例子中,主机配置为提供 SSL/TLS 和自签名证书。
有什么方法可以禁用它吗?我知道官方文档提到在调用后端 API 时禁用证书验证,但这是一个前置 API。并且设置似乎不起作用。
我还尝试滥用策略的声明模型,以某种方式 运行 C# 代码禁用它,但无济于事。
有人知道这样做的其他方法吗?要么禁用验证,要么强制信任自签名证书。
谢谢,祝你玩得开心
编辑:我的配置是这样的:
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized" require-expiration-time="true" require-scheme="https" require-signed-tokens="true">
<openid-config url="https://identityserverhost/.well-known/openid-configuration" />
<audiences>
<audience>audience</audience>
</audiences>
<issuers>
<issuer>issuer</issuer>
</issuers>
</validate-jwt>
https://identityserverhost 通过 https 提供服务,但使用自签名证书,如果这样更清楚的话。
我认为目前还不可能,不过这会是一个很好的功能。如果您愿意,可以在 openid-config 中切换到 http 而不是 https。
如果您有证书,可以将其加载到 API 管理 并通过以下策略验证令牌
<issuer-signing-keys>
<key certificate-id="my-rsa-cert" />
</issuer-signing-keys>