You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/api-management/api-management-subscriptions.md
+10-7Lines changed: 10 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,8 +5,8 @@ services: api-management
5
5
author: dlepow
6
6
7
7
ms.service: azure-api-management
8
-
ms.topic: conceptual
9
-
ms.date: 08/02/2023
8
+
ms.topic: concept-article
9
+
ms.date: 08/30/2024
10
10
ms.author: danlep
11
11
ms.custom: engagement-fy23
12
12
---
@@ -142,6 +142,8 @@ When API Management receives an API request from a client with a subscription ke
142
142
143
143
If a valid key for an active subscription at an appropriate scope is provided, access is allowed. Policies are applied depending on the configuration of the policy definition at that scope.
144
144
145
+
1. Check if the API requires a subscription. If the API doesn't require a subscription, handle the request in the context of the API and operation.
146
+
145
147
1. Otherwise, access is denied (401 Access denied error).
146
148
147
149
### API request without a subscription key
@@ -160,19 +162,20 @@ The following table summarizes how the gateway handles API requests with or with
160
162
|All products assigned to API require subscription |API requires subscription |API call with subscription key |API call without subscription key | Typical scenarios |
161
163
|---------|---------|---------|---------|----|
162
164
|✔️ | ✔️ | Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/><br/>Access denied:<br/><br/>• Other key not scoped to applicable product or API | Access denied | Protected API access using product-scoped or API-scoped subscription |
163
-
|✔️ | ❌ | Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/><br/>Access denied:<br/><br/>• Other key not scoped to applicable product or API | Access allowed (API context) | • Protected API access with product-scoped subscription<br/><br/>• Anonymous access to API. If anonymous access isn’t intended, configure API-level policies to enforce authentication and authorization. |
164
-
|❌<sup>1</sup> | ✔️ | Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/><br/>Access denied:<br/><br/>• Other key not scoped to applicable product or API| Access allowed (open product context) | • Protected API access with API-scoped subscription<br/><br/>• Anonymous access to API. If anonymous access isn’t intended, configure with product policies to enforce authentication and authorization |
165
-
|❌<sup>1</sup> | ❌ | Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/><br/>Access denied:<br/><br/>• Other key not scoped to applicable product or API | Access allowed (open product context) | Anonymous access to API. If anonymous access isn’t intended, configure with product policies to enforce authentication and authorization |
165
+
|✔️ | ❌ | Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/>• Other key not scoped to applicable API | Access allowed (API context) | • Protected API access with product-scoped subscription<br/><br/>• Anonymous access to API. If anonymous access isn't intended, configure API-level policies to enforce authentication and authorization. |
166
+
|❌<sup>1</sup> | ✔️ | Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/>• Other key not scoped to applicable product | Access allowed (open product context) | • Protected API access with API-scoped subscription<br/><br/>• Anonymous access to API. If anonymous access isn't intended, configure with product policies to enforce authentication and authorization |
167
+
|❌<sup>1</sup> | ❌ | Access allowed:<br/><br/>• Product-scoped key<br/>• API-scoped key<br/>• All APIs-scoped key<br/>• Service-scoped key<br/><br/>• Other key not scoped to applicable product or API | Access allowed (open product context) | Anonymous access to API. If anonymous access isn't intended, configure with product policies to enforce authentication and authorization |
166
168
167
169
<sup>1</sup> An open product exists that's associated with the API.
168
170
169
171
### Considerations
170
172
171
173
- API access in a product context is the same, whether the product is published or not. Unpublishing the product hides it from the developer portal, but it doesn’t invalidate new or existing subscription keys.
172
-
-Even if a product or API doesn't require a subscription, a valid key from an active subscription that enables access to the product or API can still be used.
174
+
-If a product associated with the API or the API doesn't require a subscription, any subscription key may be passed in the request and will be ignored.
173
175
- API access "context" means the policies and access controls that are applied at a particular scope (for example, API or product).
174
176
175
-
## Next steps
177
+
## Related content
178
+
176
179
Get more information on API Management:
177
180
178
181
+ Learn how API Management [policies](set-edit-policies.md#configure-policies-at-different-scopes) get applied at different scopes.
Copy file name to clipboardExpand all lines: articles/api-management/validate-content-policy.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ author: dlepow
6
6
7
7
ms.service: azure-api-management
8
8
ms.topic: article
9
-
ms.date: 07/23/2024
9
+
ms.date: 08/30/2024
10
10
ms.author: danlep
11
11
---
12
12
@@ -47,7 +47,7 @@ The policy validates the following content in the request or response against th
47
47
<content-type-mapany-content-type-value="content type string"missing-content-type-value="content type string">
48
48
<type from | when="content type string"to="content type string" />
49
49
</content-type-map>
50
-
<contenttype="content type string"validate-as="json | xml | soap"schema-id="schema id"schema-ref="#/local/reference/path"action="ignore | prevent | detect"allow-additional-properties="true | false" />
50
+
<contenttype="content type string"validate-as="json | xml | soap"schema-id="schema id"schema-ref="#/local/reference/path"action="ignore | prevent | detect"allow-additional-properties="true | false"case-insensitive-property-names="true | false"/>
51
51
</validate-content>
52
52
```
53
53
@@ -90,6 +90,7 @@ The policy validates the following content in the request or response against th
90
90
| schema-id | Name of an existing schema that was [added](#schemas-for-content-validation) to the API Management instance for content validation. If not specified, the default schema from the API definition is used. | No | N/A |
91
91
| schema-ref| For a JSON schema specified in `schema-id`, optional reference to a valid local reference path in the JSON document. Example: `#/components/schemas/address`. The attribute should return a JSON object that API Management handles as a valid JSON schema.<br/><br/> For an XML schema, `schema-ref` isn't supported, and any top-level schema element can be used as the root of the XML request or response payload. The validation checks that all elements starting from the XML request or response payload root adhere to the provided XML schema. | No | N/A |
92
92
| allow-additional-properties | Boolean. For a JSON schema, specifies whether to implement a runtime override of the `additionalProperties` value configured in the schema: <br> - `true`: allow additional properties in the request or response body, even if the JSON schema's `additionalProperties` field is configured to not allow additional properties. <br> - `false`: do not allow additional properties in the request or response body, even if the JSON schema's `additionalProperties` field is configured to allow additional properties.<br/><br/>If the attribute isn't specified, the policy validates additional properties according to configuration of the `additionalProperties` field in the schema. | No | N/A |
93
+
| case-insensitive-property-names | Boolean. For a JSON schema, specifies whether to compare property names of JSON objects without regard to case. <br> - `true`: compare property names case insensitively. <br> - `false`: compare property names case sensitively. | No | false |
Copy file name to clipboardExpand all lines: articles/api-management/validate-jwt-policy.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ author: dlepow
6
6
7
7
ms.service: azure-api-management
8
8
ms.topic: article
9
-
ms.date: 07/23/2024
9
+
ms.date: 08/30/2024
10
10
ms.author: danlep
11
11
---
12
12
@@ -119,7 +119,7 @@ The `validate-jwt` policy enforces existence and validity of a supported JSON we
119
119
* The policy supports both symmetric and asymmetric signing algorithms:
120
120
***Symmetric** - The following encryption algorithms are supported: A128CBC-HS256, A192CBC-HS384, A256CBC-HS512.
121
121
* If used in the policy, the key must be provided inline within the policy in the Base64-encoded form.
122
-
***Asymmetric** - The following encryption algortithms are supported: PS256, RS256, RS512.
122
+
***Asymmetric** - The following encryption algortithms are supported: PS256, RS256, RS512, ES256.
123
123
* If used in the policy, the key may be provided either via an OpenID configuration endpoint, or by providing the ID of an uploaded certificate (in PFX format) that contains the public key, or the modulus-exponent pair of the public key.
124
124
* To configure the policy with one or more OpenID configuration endpoints for use with a self-hosted gateway, the OpenID configuration endpoints URLs must also be reachable by the cloud gateway.
125
125
* You can use access restriction policies in different scopes for different purposes. For example, you can secure the whole API with Microsoft Entra authentication by applying the `validate-jwt` policy on the API level, or you can apply it on the API operation level and use `claims` for more granular control.
0 commit comments