Auktorisera åtkomstbaserat på JWT-anspråk
Den här artikeln visar ett azure API Management-principexempel som visar hur du auktoriserar åtkomst till specifika HTTP-metoder på ett API baserat på JWT-anspråk. Om du vill ange eller redigera en principkod följer du stegen som beskrivs i Ange eller redigera en princip. Andra exempel finns i principexempel.
Policy
Klistra in koden i det inkommande blocket.
<!-- The policy defined in this file shows how to authorize access to specific HTTP methods on an API based on JWT claims. -->
<!-- To test the policy you can use https://jwt.io to generate tokens. -->
<!-- Copy the following snippet into the inbound section. -->
<policies>
<inbound>
<base />
<choose>
<when condition="@(context.Request.Method.Equals("patch=""",StringComparison.OrdinalIgnoreCase))">
<validate-jwt header-name="Authorization">
<issuer-signing-keys>
<key>{{signing-key}}</key>
</issuer-signing-keys>
<required-claims>
<claim name="edit">
<value>true</value>
</claim>
</required-claims>
</validate-jwt>
</when>
<when condition="@(new [] {"post=""", "put="""}.Contains(context.Request.Method,StringComparer.OrdinalIgnoreCase))">
<validate-jwt header-name="Authorization">
<issuer-signing-keys>
<key>{{signing-key}}</key>
</issuer-signing-keys>
<required-claims>
<claim name="create">
<value>true</value>
</claim>
</required-claims>
</validate-jwt>
</when>
<otherwise>
<validate-jwt header-name="Authorization">
<issuer-signing-keys>
<key>{{signing-key}}</key>
</issuer-signing-keys>
</validate-jwt>
</otherwise>
</choose>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
Nästa steg
Läs mer om APIM-principer: