Skip to content

Commit 4931254

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into azure-data-factory-quickstarts
2 parents 0577df7 + a9b43fa commit 4931254

File tree

198 files changed

+2680
-2071
lines changed

Some content is hidden

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

198 files changed

+2680
-2071
lines changed

.openpublishing.redirection.json

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6753,6 +6753,36 @@
67536753
"source_path": "articles/defender-for-iot/organizations/extra-deploy-enterprise-iot.md",
67546754
"redirect_url": "/azure/defender-for-iot/organizations/eiot-defender-for-endpoint",
67556755
"redirect_document_id": false
6756-
}
6756+
},
6757+
{
6758+
"source_path": "articles/sentinel/work-with-styx-objects-indicators.md",
6759+
"redirect_url": "/azure/sentinel/work-with-stix-objects-indicators",
6760+
"redirect_document_id": false
6761+
},
6762+
{
6763+
"source_path_from_root": "/articles/azure-functions/migration.md",
6764+
"redirect_url": "/azure/azure-functions/migration/migrate-lambda-workloads-overview",
6765+
"redirect_document_id": false
6766+
},
6767+
{
6768+
"source_path": "articles/azure-functions/migration/lambda-functions-migration-assess.md",
6769+
"redirect_url": "/azure/azure-functions/migration/assess-lambda-workloads",
6770+
"redirect_document_id": false
6771+
},
6772+
{
6773+
"source_path": "articles/azure-functions/migration/lambda-functions-migration-discover.md",
6774+
"redirect_url": "/azure/azure-functions/migration/discover-lambda-workloads",
6775+
"redirect_document_id": false
6776+
},
6777+
{
6778+
"source_path": "articles/azure-functions/migration/lambda-functions-migration-migrate.md",
6779+
"redirect_url": "/azure/azure-functions/migration/migrate-lambda-workloads",
6780+
"redirect_document_id": false
6781+
},
6782+
{
6783+
"source_path": "articles/azure-functions/migration/lambda-functions-migration-overview.md",
6784+
"redirect_url": "/azure/azure-functions/migration/migrate-lambda-workloads-overview",
6785+
"redirect_document_id": false
6786+
},
67576787
]
67586788
}
-5.55 KB
Loading
-23.7 KB
Loading
-939 Bytes
Loading

articles/api-management/mock-api-responses.md

Lines changed: 63 additions & 71 deletions
Large diffs are not rendered by default.

articles/app-service/app-service-key-vault-references.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ If your vault is configured with [network restrictions](/azure/key-vault/general
5656
5757
2. Make sure that the vault's configuration allows the network or subnet that your app uses to access it.
5858
59+
Note that even if you have correctly configured the vault to accept traffic from your virtual network the vault's audit logs may still show a failed (403 - Forbidden) SecretGet event from the app's public outbound IP. This will be followed by a successful SecretGet event from the app's private IP, and is by design.
60+
5961
### Access vaults with a user-assigned identity
6062
6163
Some apps need to reference secrets at creation time, when a system-assigned identity isn't available yet. In these cases, you can create a user-assigned identity and give it access to the vault in advance.

articles/app-service/configure-authentication-customize-sign-in-out.md

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
title: Customize Sign-ins and Sign-outs
33
description: Use the built-in authentication and authorization in Azure App Service and at the same time customize the sign-in and sign-out behavior.
44
ms.topic: how-to
5-
ms.date: 07/08/2024
5+
ms.date: 04/03/2025
66
ms.custom: AppServiceIdentity
77
author: cephalin
88
ms.author: cephalin
9+
#customer intent: As an app developer, I want to customize my sign-in and sign-out options to provide links to different providers and to enhance the user experience in Azure App Service.
910
---
1011

1112
# Customize sign-ins and sign-outs in Azure App Service authentication
@@ -14,13 +15,15 @@ This article shows you how to customize user sign-ins and sign-outs while using
1415

1516
## Use multiple sign-in providers
1617

17-
The Azure portal configuration doesn't offer a turnkey way to present multiple sign-in providers to your users (such as both Facebook and X). To add the functionality of using multiple sign-in providers to your app:
18+
The Azure portal configuration doesn't offer a turnkey way to present multiple sign-in providers to your users. For instance, you might want to offer both Facebook and X as options. To add multiple sign-in providers to your app:
1819

19-
1. In the Azure portal, on the **Authentication / Authorization** page, configure each identity provider that you want to enable.
20+
1. In the Azure portal, in your web app, select **Settings** > **Authentication**.
2021

21-
1. In **Action to take when request is not authenticated**, select **Allow Anonymous requests (no action)**.
22+
1. For **Authentication settings**, select **Edit**.
2223

23-
1. On the sign-in page, or the navigation bar, or any other location of your app, add a sign-in link to each of the providers that you enabled (`/.auth/login/<provider>`). For example:
24+
1. For **Restrict access**, select **Allow unauthenticated access**.
25+
26+
1. On the sign-in page, the navigation bar, or any other location in your app, add a sign-in link to each of the providers that you enabled (`/.auth/login/<provider>`). For example:
2427

2528
```html
2629
<a href="/.auth/login/aad">Log in with Microsoft Entra</a>
@@ -32,19 +35,22 @@ The Azure portal configuration doesn't offer a turnkey way to present multiple s
3235

3336
When the user selects one of the links, the respective page opens for sign-in.
3437

35-
To redirect the user to a custom URL after sign-in, use the `post_login_redirect_uri` query string parameter. (Don't confuse this parameter with the redirect URI in your identity provider configuration.) For example, to move the user to `/Home/Index` after sign-in, use the following HTML code:
38+
To redirect the user to a custom URL after sign-in, use the `post_login_redirect_uri` query string parameter. For example, to move the user to `/Home/Index` after sign-in, use the following HTML code:
3639

3740
```html
3841
<a href="/.auth/login/<provider>?post_login_redirect_uri=/Home/Index">Log in</a>
3942
```
4043

44+
> [!NOTE]
45+
> Don't confuse this value with the redirect URI in your identity provider configuration.
46+
4147
## <a name = "client-directed-sign-in"></a> Use client-directed sign-in
4248

43-
In a client-directed sign-in, the application signs in the user to the identity provider by using a provider-specific SDK. The application code then submits the resulting authentication token to App Service for validation (see [Authentication flow](overview-authentication-authorization.md#authentication-flow)) by using an HTTP `POST` request. This validation itself doesn't grant users access to the desired app resources, but a successful validation gives users a session token that they can use to access app resources.
49+
In a client-directed sign-in, the application signs in the user to the identity provider by using a provider-specific SDK. The application code then submits the resulting authentication token to App Service for validation by using an HTTP `POST` request. This validation itself doesn't grant users access to the desired app resources. A successful validation gives users a session token that they can use to access app resources. For more information, see [Authentication flow](overview-authentication-authorization.md#authentication-flow).
4450

4551
To validate the provider token, the App Service app must first be configured with the desired provider. At runtime, after you retrieve the authentication token from your provider, post the token to `/.auth/login/<provider>` for validation. For example:
4652

47-
```
53+
```https
4854
POST https://<appname>.azurewebsites.net/.auth/login/aad HTTP/1.1
4955
Content-Type: application/json
5056
@@ -54,17 +60,16 @@ Content-Type: application/json
5460
The token format varies slightly according to the provider:
5561

5662
| Provider value | Required in request body | Comments |
57-
|-|-|-|
63+
|:-|:-|:-|
5864
| `aad` | `{"access_token":"<access_token>"}` | The `id_token`, `refresh_token`, and `expires_in` properties are optional. |
5965
| `google` | `{"id_token":"<id_token>"}` | The `authorization_code` property is optional. Providing an `authorization_code` value adds an access token and a refresh token to the token store. When you specify `authorization_code`, you can optionally accompany it with a `redirect_uri` property. |
6066
| `facebook`| `{"access_token":"<user_access_token>"}` | Use a valid [user access token](https://developers.facebook.com/docs/facebook-login/access-tokens) from Facebook. |
6167
| `twitter` | `{"access_token":"<access_token>", "access_token_secret":"<access_token_secret>"}` | |
62-
| | | |
6368

6469
> [!NOTE]
65-
> The GitHub provider for App Service authentication does not support customized sign-in and sign-out.
70+
> The GitHub provider for App Service authentication doesn't support customized sign-in and sign-out.
6671
67-
If the provider token is validated successfully, the API returns with an `authenticationToken` value in the response body. This value is your session token. To get more information on the user claims, see [Work with user identities in Azure App Service authentication](configure-authentication-user-identities.md).
72+
If the provider token is validated successfully, the API returns with an `authenticationToken` value in the response body. This value is your session token. For more information on user claims, see [Work with user identities in Azure App Service authentication](configure-authentication-user-identities.md).
6873

6974
```json
7075
{
@@ -77,7 +82,7 @@ If the provider token is validated successfully, the API returns with an `authen
7782

7883
After you have this session token, you can access protected app resources by adding the `X-ZUMO-AUTH` header to your HTTP requests. For example:
7984

80-
```
85+
```https
8186
GET https://<appname>.azurewebsites.net/api/products/1
8287
X-ZUMO-AUTH: <authenticationToken_value>
8388
```
@@ -88,7 +93,7 @@ Users can initiate a sign-out by sending a `GET` request to the app's `/.auth/lo
8893

8994
- Clears authentication cookies from the current session.
9095
- Deletes the current user's tokens from the token store.
91-
- For Microsoft Entra and Google, performs a server-side sign-out on the identity provider.
96+
- Performs a server-side sign-out on the identity provider for Microsoft Entra and Google.
9297

9398
Here's a simple sign-out link on a webpage:
9499

@@ -98,15 +103,15 @@ Here's a simple sign-out link on a webpage:
98103

99104
By default, a successful sign-out redirects the client to the URL `/.auth/logout/complete`. You can change the post-sign-out redirect page by adding the `post_logout_redirect_uri` query parameter. For example:
100105

101-
```
106+
```https
102107
GET /.auth/logout?post_logout_redirect_uri=/index.html
103108
```
104109

105110
We recommend that you [encode](https://wikipedia.org/wiki/Percent-encoding) the value of `post_logout_redirect_uri`.
106111

107-
When you're using fully qualified URLs, the URL must be either hosted in the same domain or configured as an allowed external redirect URL for your app. The following example redirects to an `https://myexternalurl.com` URL that's not hosted in the same domain:
112+
When you use fully qualified URLs, the URL must be hosted in the same domain or configured as an allowed external redirect URL for your app. The following example redirects to an `https://myexternalurl.com` URL that's not hosted in the same domain:
108113

109-
```
114+
```https
110115
GET /.auth/logout?post_logout_redirect_uri=https%3A%2F%2Fmyexternalurl.com
111116
```
112117

@@ -156,19 +161,21 @@ This setting appends the `domain_hint` query string parameter to the sign-in red
156161

157162
## Authorize or deny users
158163

159-
App Service takes care of the simplest authorization case (for example, reject unauthenticated requests). But your app might require more fine-grained authorization behavior, such as limiting access to only a specific group of users.
164+
App Service takes care of the simplest authorization case, for example, reject unauthenticated requests. Your app might require more fine-grained authorization behavior, such as limiting access to only a specific group of users.
160165

161-
In certain cases, you need to write custom application code to allow or deny access to the signed-in user. In other cases, App Service or your identity provider might be able to help without requiring code changes.
166+
You might need to write custom application code to allow or deny access to the signed-in user. In some cases, App Service or your identity provider might be able to help without requiring code changes.
162167

163168
### Server level (Windows apps only)
164169

165-
For any Windows app, you can define authorization behavior of the IIS web server by editing the `Web.config` file. Linux apps don't use IIS and can't be configured through `Web.config`.
170+
For any Windows app, you can define authorization behavior of the IIS web server by editing the `web.config` file. Linux apps don't use IIS and can't be configured through `web.config`.
171+
172+
1. To go to the Kudu debug console for your app, select **Development Tools** > **Advanced Tools** and select **Go**. Then select **Debug console**.
166173

167-
1. Go to `https://<app-name>.scm.azurewebsites.net/DebugConsole`.
174+
You can also open this page with this URL: `https://<app-name>-<random-hash>.scm.<region>.azurewebsites.net/DebugConsole`. To get the random hash and region values, in your app **Overview**, copy **Default domain**.
168175

169-
1. In the browser explorer of your App Service files, go to `site/wwwroot`. If `Web.config` doesn't exist, create it by selecting **+** > **New File**.
176+
1. In the browser explorer of your App Service files, go to `site/wwwroot`. If `web.config` doesn't exist, create it by selecting **+** > **New File**.
170177

171-
1. Select the pencil for `Web.config` to edit the file. Add the following configuration code, and then select **Save**. If `Web.config` already exists, just add the `<authorization>` element with everything in it. In the `<allow>` element, add the accounts that you want to allow.
178+
1. Select the pencil for `web.config` to edit the file. Add the following configuration code, and then select **Save**. If `web.config` already exists, just add the `<authorization>` element with everything in it. In the `<allow>` element, add the accounts that you want to allow.
172179

173180
```xml
174181
<?xml version="1.0" encoding="utf-8"?>
@@ -186,8 +193,8 @@ For any Windows app, you can define authorization behavior of the IIS web server
186193

187194
The identity provider might provide certain turnkey authorization. For example:
188195

189-
- You can [manage enterprise-level access](../active-directory/manage-apps/what-is-access-management.md) directly in Microsoft Entra. For instructions, see [Remove user access to applications](../active-directory/manage-apps/methods-for-removing-user-access.md).
190-
- For [Google](configure-authentication-provider-google.md), Google API projects that belong to an [organization](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy#organizations) can be configured to allow access only to users in your organization. See the [Manage OAuth Clients](https://support.google.com/cloud/answer/6158849?hl=en) Google support page.
196+
- For Microsoft Entra, you can [manage enterprise-level access](../active-directory/manage-apps/what-is-access-management.md) directly. For more information, see [Remove user access to applications](../active-directory/manage-apps/methods-for-removing-user-access.md).
197+
- For [Google](configure-authentication-provider-google.md), Google API projects that belong to an [organization](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy#organizations) can be configured to allow access only to users in your organization. For more information, see [Manage OAuth Clients](https://support.google.com/cloud/answer/6158849?hl=en).
191198

192199
### Application level
193200

articles/app-service/configure-authentication-provider-apple.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ You'll need to create an App ID and a service ID in the Apple Developer portal.
4343
10. Review the service registration information and select **Save**.
4444

4545
## <a name="generateClientSecret"> </a>Generate the client secret
46-
Apple requires app developers to create and sign a JWT token as the client secret value. To generate this secret, first generate and download an elliptic curve private key from the Apple Developer portal. Then, use that key to [sign a JWT](#sign-the-client-secret-jwt) with a [specific payload](#structure-the-client-secret-jwt).
46+
Apple requires app developers to create and sign a JWT as the client secret value. To generate this secret, first generate and download an elliptic curve private key from the Apple Developer portal. Then, use that key to [sign a JWT](#sign-the-client-secret-jwt) with a [specific payload](#structure-the-client-secret-jwt).
4747

4848
### Create and download the private key
4949
1. On the **Keys** tab in the Apple Developer portal, choose **Create a key** or select the **(+)** button.
@@ -53,7 +53,7 @@ Apple requires app developers to create and sign a JWT token as the client secre
5353
5. On the **Download Your Key** page, download the key. It will download as a `.p8` (PKCS#8) file - you'll use the file contents to sign your client secret JWT.
5454

5555
### Structure the client secret JWT
56-
Apple requires the client secret be the base64-encoding of a JWT token. The decoded JWT token should have a payload structured like this example:
56+
Apple requires the client secret be the base64-encoding of a JWT. The decoded JWT should have a payload structured like this example:
5757
```json
5858
{
5959
"alg": "ES256",
@@ -81,7 +81,7 @@ More information about generating and validating tokens can be found in [Apple's
8181
### Sign the client secret JWT
8282
You'll use the `.p8` file you downloaded previously to sign the client secret JWT. This file is a [PCKS#8 file](https://en.wikipedia.org/wiki/PKCS_8) that contains the private signing key in PEM format. There are many libraries that can create and sign the JWT for you.
8383

84-
There are different kinds of open-source libraries available online for creating and signing JWT tokens. For more information about generating JWT tokens, see [JSON Web Token (JWT)](../active-directory/develop/security-tokens.md#json-web-tokens-and-claims). For example, one way of generating the client secret is by importing the [Microsoft.IdentityModel.Tokens NuGet package](https://www.nuget.org/packages/Microsoft.IdentityModel.Tokens/) and running a small amount of C# code shown below.
84+
There are different kinds of open-source libraries available online for creating and signing JWTs. For more information about generating JWTs, see [JSON Web Token (JWT)](../active-directory/develop/security-tokens.md#json-web-tokens-and-claims). For example, one way of generating the client secret is by importing the [Microsoft.IdentityModel.Tokens NuGet package](https://www.nuget.org/packages/Microsoft.IdentityModel.Tokens/) and running a small amount of C# code shown below.
8585

8686
```csharp
8787
using Microsoft.IdentityModel.Tokens;
73.7 KB
Loading

0 commit comments

Comments
 (0)