Skip to content

Commit 5a959ed

Browse files
committed
Merge branch 'main' into release-qumolo
2 parents 6586a78 + f01042a commit 5a959ed

File tree

174 files changed

+2633
-1072
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

174 files changed

+2633
-1072
lines changed

.openpublishing.redirection.azure-productivity.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,11 @@
8484
"source_path": "articles/lab-services/how-to-manage-vm-pool-within-canvas.md",
8585
"redirect_url": "/azure/lab-services/how-to-manage-labs-within-canvas",
8686
"redirect_document_id": false
87+
},
88+
{
89+
"source_path": "articles/lab-services/how-to-enable-nested-virtualization-template-vm.md",
90+
"redirect_url": "/azure/lab-services/concept-nested-virtualization-template-vm",
91+
"redirect_document_id": true
8792
}
8893
]
8994
}
25.8 KB
Loading
-1.07 KB
Loading
1.45 KB
Loading
6.49 KB
Loading

articles/active-directory/external-identities/self-service-sign-up-user-flow.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: active-directory
55
ms.service: active-directory
66
ms.subservice: B2B
77
ms.topic: how-to
8-
ms.date: 01/06/2023
8+
ms.date: 01/16/2023
99

1010
ms.author: mimart
1111
author: msmimart
@@ -52,7 +52,8 @@ Before you can add a self-service sign-up user flow to your applications, you ne
5252
1. Select **User settings**, and then under **External users**, select **Manage external collaboration settings**.
5353
1. Set the **Enable guest self-service sign up via user flows** toggle to **Yes**.
5454

55-
![Enable guest self-service sign-up](media/self-service-sign-up-user-flow/enable-self-service-sign-up.png)
55+
:::image type="content" source="media/self-service-sign-up-user-flow/enable-self-service-sign-up.png" alt-text="Screenshot of the enable guest self-service sign up toggle.":::
56+
5657
5. Select **Save**.
5758
## Create the user flow for self-service sign-up
5859

@@ -63,17 +64,17 @@ Next, you'll create the user flow for self-service sign-up and add it to an appl
6364
3. In the left menu, select **External Identities**.
6465
4. Select **User flows**, and then select **New user flow**.
6566

66-
![Add a new user flow button](media/self-service-sign-up-user-flow/new-user-flow.png)
67+
:::image type="content" source="media/self-service-sign-up-user-flow/new-user-flow.png" alt-text="Screenshot of the new user flow button.":::
6768

6869
5. Select the user flow type (for example, **Sign up and sign in**), and then select the version (**Recommended** or **Preview**).
69-
6. On the **Create** page, enter a **Name** for the user flow. Note that the name is automatically prefixed with **B2X_1_**.
70+
6. On the **Create** page, enter a **Name** for the user flow. The name is automatically prefixed with **B2X_1_**.
7071
7. In the **Identity providers** list, select one or more identity providers that your external users can use to log into your application. **Azure Active Directory Sign up** is selected by default. (See [Before you begin](#before-you-begin) earlier in this article to learn how to add identity providers.)
71-
8. Under **User attributes**, choose the attributes you want to collect from the user. For additional attributes, select **Show more**. For example, select **Show more**, and then choose attributes and claims for **Country/Region**, **Display Name**, and **Postal Code**. Select **OK**.
72+
8. Under **User attributes**, choose the attributes you want to collect from the user. For more attributes, select **Show more**. For example, select **Show more**, and then choose attributes and claims for **Country/Region**, **Display Name**, and **Postal Code**. Select **OK**.
7273

73-
![Create a new user flow page](media/self-service-sign-up-user-flow/create-user-flow.png)
74+
:::image type="content" source="media/self-service-sign-up-user-flow/create-user-flow.png" alt-text="Screenshot of the new user flow creation page. ":::
7475

75-
> [!NOTE]
76-
> You can only collect attributes when a user signs up for the first time. After a user signs up, they will no longer be prompted to collect attribute information, even if you change the user flow.
76+
> [!NOTE]
77+
> You can only collect attributes when a user signs up for the first time. After a user signs up, they will no longer be prompted to collect attribute information, even if you change the user flow.
7778
7879
8. Select **Create**.
7980
9. The new user flow appears in the **User flows** list. If necessary, refresh the page.
@@ -86,7 +87,7 @@ You can choose order in which the attributes are displayed on the sign-up page.
8687
2. Select **External Identities**, select **User flows**.
8788
3. Select the self-service sign-up user flow from the list.
8889
4. Under **Customize**, select **Page layouts**.
89-
5. The attributes you chose to collect are listed. To change the order of display, select an attribute, and then select **Move up**, **Move down**, **Move to the top**, or **Move to the bottom**.
90+
5. The attributes you chose to collect are listed. To change the order of display, select an attribute, and then select **Move up**, **Move down**, **Move to top**, or **Move to bottom**.
9091
6. Select **Save**.
9192

9293
## Add applications to the self-service sign-up user flow
@@ -101,7 +102,7 @@ Now you'll associate applications with the user flow to enable sign-up for those
101102
6. In the left menu, under **Use**, select **Applications**.
102103
7. Select **Add application**.
103104

104-
![Assign an application to the user flow](media/self-service-sign-up-user-flow/assign-app-to-user-flow.png)
105+
:::image type="content" source="media/self-service-sign-up-user-flow/assign-app-to-user-flow.png" alt-text="Screenshot of adding an application to the user flow.":::
105106

106107
8. Select the application from the list. Or use the search box to find the application, and then select it.
107108
9. Click **Select**.
@@ -112,4 +113,3 @@ Now you'll associate applications with the user flow to enable sign-up for those
112113
- [Add Facebook to your list of social identity providers](facebook-federation.md)
113114
- [Use API connectors to customize and extend your user flows via web APIs](api-connectors-overview.md)
114115
- [Add custom approval workflow to your user flow](self-service-sign-up-add-approvals.md)
115-
- [Learn more about initiating an OAuth 2.0 authorization code flow](../develop/v2-oauth2-auth-code-flow.md#request-an-authorization-code)

articles/api-management/api-management-howto-mutual-certificates-for-clients.md

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,57 @@ description: Learn how to secure access to APIs by using client certificates. Yo
55
services: api-management
66
documentationcenter: ''
77
author: dlepow
8-
manager: erikre
9-
editor: ''
108

119
ms.service: api-management
12-
ms.workload: mobile
13-
ms.tgt_pltfrm: na
1410
ms.topic: article
15-
ms.date: 06/01/2021
11+
ms.date: 01/12/2023
1612
ms.author: danlep
13+
ms.custom: engagement-fy23
1714
---
1815

1916
# How to secure APIs using client certificate authentication in API Management
2017

21-
API Management provides the capability to secure access to APIs (i.e., client to API Management) using client certificates. You can validate certificates presented by the connecting client and check certificate properties against desired values using policy expressions.
18+
API Management provides the capability to secure access to APIs (that is, client to API Management) using client certificates and mutual TLS authentication. You can validate certificates presented by the connecting client and check certificate properties against desired values using policy expressions.
2219

23-
For information about securing access to the back-end service of an API using client certificates (i.e., API Management to backend), see [How to secure back-end services using client certificate authentication](./api-management-howto-mutual-certificates.md).
20+
For information about securing access to the backend service of an API using client certificates (that is, API Management to backend), see [How to secure back-end services using client certificate authentication](./api-management-howto-mutual-certificates.md).
2421

2522
For a conceptual overview of API authorization, see [Authentication and authorization in API Management](authentication-authorization-overview.md#gateway-data-plane).
2623

24+
## Certificate options
2725

28-
> [!IMPORTANT]
29-
> To receive and verify client certificates over HTTP/2 in the Developer, Basic, Standard, or Premium tiers you must turn on the "Negotiate client certificate" setting on the "Custom domains" blade as shown below.
26+
For certificate validation, API Management can check against certificates managed in your API Management instance. If you choose to use API Management to manage client certificates, you have the following options:
27+
28+
* Reference a certificate managed in [Azure Key Vault](../key-vault/general/overview.md)
29+
* Add a certificate file directly in API Management
30+
31+
Using key vault certificates is recommended because it helps improve API Management security:
32+
33+
* Certificates stored in key vaults can be reused across services
34+
* Granular [access policies](../key-vault/general/security-features.md#privileged-access) can be applied to certificates stored in key vaults
35+
* Certificates updated in the key vault are automatically rotated in API Management. After update in the key vault, a certificate in API Management is updated within 4 hours. You can also manually refresh the certificate using the Azure portal or via the management REST API.
36+
37+
## Prerequisites
38+
39+
* If you have not created an API Management service instance yet, see [Create an API Management service instance](get-started-create-service-instance.md).
40+
* You need access to the certificate and the password for management in an Azure key vault or upload to the API Management service. The certificate must be in **PFX** format. Self-signed certificates are allowed.
41+
42+
If you use a self-signed certificate, also install trusted root and intermediate [CA certificates](api-management-howto-ca-certificates.md) in your API Management instance.
43+
44+
> [!NOTE]
45+
> CA certificates for certificate validation are not supported in the Consumption tier.
46+
47+
[!INCLUDE [api-management-client-certificate-key-vault](../../includes/api-management-client-certificate-key-vault.md)]
48+
49+
## Enable API Management instance to receive and verify client certificates
50+
51+
### Developer, Basic, Standard, or Premium tier
52+
53+
To receive and verify client certificates over HTTP/2 in the Developer, Basic, Standard, or Premium tiers, you must enable the **Negotiate client certificate** setting on the **Custom domain** blade as shown below.
3054

3155
![Negotiate client certificate](./media/api-management-howto-mutual-certificates-for-clients/negotiate-client-certificate.png)
3256

33-
> [!IMPORTANT]
34-
> To receive and verify client certificates in the Consumption tier you must turn on the "Request client certificate" setting on the "Custom domains" blade as shown below.
57+
### Consumption tier
58+
To receive and verify client certificates in the Consumption tier, you must enable the **Request client certificate** setting on the **Custom domains** blade as shown below.
3559

3660
![Request client certificate](./media/api-management-howto-mutual-certificates-for-clients/request-client-certificate.png)
3761

@@ -41,8 +65,6 @@ Use the [validate-client-certificate](validate-client-certificate-policy.md) pol
4165

4266
Configure the policy to validate one or more attributes including certificate issuer, subject, thumbprint, whether the certificate is validated against online revocation list, and others.
4367

44-
For more information, see [API Management access restriction policies](api-management-access-restriction-policies.md).
45-
4668
## Certificate validation with context variables
4769

4870
You can also create policy expressions with the [`context` variable](api-management-policy-expressions.md#ContextVariables) to check client certificates. Examples in the following sections show expressions using the `context.Request.Certificate` property and other `context` properties.
@@ -66,7 +88,7 @@ Below policies can be configured to check the issuer and subject of a client cer
6688
```
6789

6890
> [!NOTE]
69-
> To disable checking certificate revocation list use `context.Request.Certificate.VerifyNoRevocation()` instead of `context.Request.Certificate.Verify()`.
91+
> To disable checking certificate revocation list, use `context.Request.Certificate.VerifyNoRevocation()` instead of `context.Request.Certificate.Verify()`.
7092
> If client certificate is self-signed, root (or intermediate) CA certificate(s) must be [uploaded](api-management-howto-ca-certificates.md) to API Management for `context.Request.Certificate.Verify()` and `context.Request.Certificate.VerifyNoRevocation()` to work.
7193
7294
### Checking the thumbprint
@@ -84,7 +106,7 @@ Below policies can be configured to check the thumbprint of a client certificate
84106
```
85107

86108
> [!NOTE]
87-
> To disable checking certificate revocation list use `context.Request.Certificate.VerifyNoRevocation()` instead of `context.Request.Certificate.Verify()`.
109+
> To disable checking certificate revocation list, use `context.Request.Certificate.VerifyNoRevocation()` instead of `context.Request.Certificate.Verify()`.
88110
> If client certificate is self-signed, root (or intermediate) CA certificate(s) must be [uploaded](api-management-howto-ca-certificates.md) to API Management for `context.Request.Certificate.Verify()` and `context.Request.Certificate.VerifyNoRevocation()` to work.
89111
90112
### Checking a thumbprint against certificates uploaded to API Management
@@ -103,7 +125,7 @@ The following example shows how to check the thumbprint of a client certificate
103125
```
104126

105127
> [!NOTE]
106-
> To disable checking certificate revocation list use `context.Request.Certificate.VerifyNoRevocation()` instead of `context.Request.Certificate.Verify()`.
128+
> To disable checking certificate revocation list, use `context.Request.Certificate.VerifyNoRevocation()` instead of `context.Request.Certificate.Verify()`.
107129
> If client certificate is self-signed, root (or intermediate) CA certificate(s) must be [uploaded](api-management-howto-ca-certificates.md) to API Management for `context.Request.Certificate.Verify()` and `context.Request.Certificate.VerifyNoRevocation()` to work.
108130
109131
> [!TIP]
@@ -112,5 +134,6 @@ The following example shows how to check the thumbprint of a client certificate
112134
113135
## Next steps
114136

115-
- [How to secure back-end services using client certificate authentication](./api-management-howto-mutual-certificates.md)
116-
- [How to upload certificates](./api-management-howto-mutual-certificates.md)
137+
- [How to secure backend services using client certificate authentication](./api-management-howto-mutual-certificates.md)
138+
- [How to add a custom CA certificate in Azure API Management](./api-management-howto-ca-certificates.md)
139+
- Learn about [policies in API Management](api-management-howto-policies.md)

0 commit comments

Comments
 (0)