我正在尝试在Azure中配置API,以便它使用OAuth2来验证对该API的调用。 OAuth2服务器已经按照我在网上找到的说明进行了设置和链接。但是,在API端检查令牌时遇到了麻烦。为此,我在以下网址找到了一个在线教程:https://docs.microsoft.com/en-us/azure/api-management/api-management-access-restriction-policies
此处提供了以下模板,用于向API添加入站检查以验证JWT:
<validate-jwt
header-name="name of http header containing the token (use query-parameter-name attribute if the token is passed in the URL)"
failed-validation-httpcode="http status code to return on failure"
failed-validation-error-message="error message to return on failure"
require-expiration-time="true|false"
require-scheme="scheme"
require-signed-tokens="true|false"
clock-skew="allowed clock skew in seconds">
<issuer-signing-keys>
<key>base64 encoded signing key</key>
<!-- if there are multiple keys, then add additional key elements -->
</issuer-signing-keys>
<audiences>
<audience>audience string</audience>
<!-- if there are multiple possible audiences, then add additional audience elements -->
</audiences>
<issuers>
<issuer>issuer string</issuer>
<!-- if there are multiple possible issuers, then add additional issuer elements -->
</issuers>
<required-claims>
<claim name="name of the claim as it appears in the token" match="all|any" separator="separator character in a multi-valued claim">
<value>claim value as it is expected to appear in the token</value>
<!-- if there is more than one allowed values, then add additional value elements -->
</claim>
<!-- if there are multiple possible allowed values, then add additional value elements -->
</required-claims>
<openid-config url="full URL of the configuration endpoint, e.g. https://login.constoso.com/openid-configuration" />
<zumo-master-key id="key identifier">key value</zumo-master-key>
</validate-jwt>
由于没有在任何地方明确声明,因此任何人都可以阐明密钥,受众,索赔和发行人的价值含义以及在何处可以找到此信息吗?
答案 0 :(得分:0)
似乎您在提到的文章中错过了它们。
issuer-signing-keys
:用于验证签名令牌的Base64编码的安全密钥的列表。如果存在多个安全密钥,则尝试每个密钥,直到全部用尽(在这种情况下,验证失败)或直到一个成功(对令牌翻转有用)。关键元素具有可选的id
属性,用于与kid
声明相匹配。
audiences
:包含可以在令牌上显示的可接受的受众群体声明的列表。如果存在多个受众值,则尝试每个值,直到所有值都用尽(在这种情况下,验证失败)或一个值成功为止。必须至少指定一个受众。
required-claims
:包含预期在令牌上出现的声明清单,以使其被视为有效。将match
属性设置为all
时,令牌中必须存在策略中的每个声明值,验证才能成功。将match
属性设置为any
时,令牌中必须至少存在一个声明才能成功进行验证。
issuers
:发出令牌的可接受主体的列表。如果存在多个发行者值,则尝试每个值,直到全部用尽(在这种情况下,验证失败)或直到一个成功为止。
有关更多详细信息,请参阅此link。