在Azure的<validate-jwt>标记中,密钥,受众,声明和颁发者对OAuth2意味着什么?

时间:2018-07-30 10:08:28

标签: azure oauth-2.0 jwt

我正在尝试在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>  

由于没有在任何地方明确声明,因此任何人都可以阐明密钥,受众,索赔和发行人的价值含义以及在何处可以找到此信息吗?

1 个答案:

答案 0 :(得分:0)

似乎您在提到的文章中错过了它们。

issuer-signing-keys:用于验证签名令牌的Base64编码的安全密钥的列表。如果存在多个安全密钥,则尝试每个密钥,直到全部用尽(在这种情况下,验证失败)或直到一个成功(对令牌翻转有用)。关键元素具有可选的id属性,用于与kid声明相匹配。

audiences:包含可以在令牌上显示的可接受的受众群体声明的列表。如果存在多个受众值,则尝试每个值,直到所有值都用尽(在这种情况下,验证失败)或一个值成功为止。必须至少指定一个受众。

required-claims:包含预期在令牌上出现的声明清单,以使其被视为有效。将match属性设置为all时,令牌中必须存在策略中的每个声明值,验证才能成功。将match属性设置为any时,令牌中必须至少存在一个声明才能成功进行验证。

issuers:发出令牌的可接受主体的列表。如果存在多个发行者值,则尝试每个值,直到全部用尽(在这种情况下,验证失败)或直到一个成功为止。

有关更多详细信息,请参阅此link