Skip to content

Commit c267825

Browse files
Performed the review, checked all the steps in the article, and fixed all the issues.
1 parent f6ef14d commit c267825

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

articles/container-apps/authentication.md

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ For details surrounding authentication and authorization, refer to the following
2424

2525
## Why use the built-in authentication?
2626

27-
You're not required to use this feature for authentication and authorization. You can use the bundled security features in your web framework of choice, or you can write your own utilities. However, implementing a secure solution for authentication (signing-in users) and authorization (providing access to secure data) can take significant effort. You must make sure to follow industry best practices and standards, and keep your implementation up to date.
27+
You're not required to use this feature for authentication and authorization. You can use the bundled security features in your web framework of choice, or you can write your own utilities. However, implementing a secure solution for authentication (signing-in users) and authorization (providing access to secure data) can take significant effort. You must make sure to follow industry best practices and standards and keep your implementation up to date.
2828

29-
The built-in authentication feature for Container Apps can save you time and effort by providing out-of-the-box authentication with federated identity providers, allowing you to focus on the rest of your application.
29+
With the built-in authentication feature for Container Apps, you can save you time and effort by providing out-of-the-box authentication with federated identity providers, allowing you to focus on the rest of your application.
30+
31+
The benefits include:
3032

3133
* Azure Container Apps provides access to various built-in authentication providers.
3234
* The built-in auth features don’t require any particular language, SDK, security expertise, or even any code that you have to write.
@@ -57,17 +59,17 @@ By default, each container app issues its own unique cookie or token for authent
5759

5860
## Feature architecture
5961

60-
The authentication and authorization middleware component is a feature of the platform that runs as a sidecar container on each replica in your application. When enabled, every incoming HTTP request passes through the security layer before being handled by your application.
62+
The authentication and authorization middleware component is a feature of the platform that runs as a sidecar container on each replica in your application. When enabled, your application handles each incoming HTTP request after it passes through the security layer.
6163

6264
:::image type="content" source="media/authentication/architecture.png" alt-text="An architecture diagram showing requests being intercepted by a sidecar container which interacts with identity providers before allowing traffic to the app container" lightbox="media/authentication/architecture.png":::
6365

6466
The platform middleware handles several things for your app:
6567

66-
* Authenticates users and clients with the specified identity provider(s)
68+
* Authenticates users and clients with the specified identity providers
6769
* Manages the authenticated session
6870
* Injects identity information into HTTP request headers
6971

70-
The authentication and authorization module runs in a separate container, isolated from your application code. As the security container doesn't run in-process, no direct integration with specific language frameworks is possible. However, relevant information your app needs is provided in request headers as explained below.
72+
The authentication and authorization module runs in a separate container, isolated from your application code. As the security container doesn't run in-process, no direct integration with specific language frameworks is possible. However, relevant information your app needs is provided in request headers as explained in this article.
7173

7274
### Authentication flow
7375

@@ -77,9 +79,9 @@ The authentication flow is the same for all providers, but differs depending on
7779

7880
* **With provider SDK** (_client-directed flow_ or _client flow_): The application signs users in to the provider manually and then submits the authentication token to Container Apps for validation. This approach is typical for browser-less apps that don't present the provider's sign-in page to the user. An example is a native mobile app that signs users in using the provider's SDK.
7981

80-
Calls from a trusted browser app in Container Apps to another REST API in Container Apps can be authenticated using the server-directed flow. For more information, see [Customize sign-ins and sign-outs](#customize-sign-in-and-sign-out).
82+
Calls from a trusted browser app in Container Apps to another REST API in Container Apps can be authenticated using the server-directed flow. For more information, see [Customize sign in and sign out](#customize-sign-in-and-sign-out).
8183

82-
The table below shows the steps of the authentication flow.
84+
The table shows the steps of the authentication flow.
8385

8486
| Step | Without provider SDK | With provider SDK |
8587
| - | - | - |
@@ -108,9 +110,9 @@ In the [Azure portal](https://portal.azure.com), you can edit your container app
108110
> [!NOTE]
109111
> By default, any user in your Microsoft Entra tenant can request a token for your application from Microsoft Entra ID. You can [configure the application in Microsoft Entra ID](../active-directory/develop/howto-restrict-your-app-to-a-set-of-users.md) if you want to restrict access to your app to a defined set of users.
110112
111-
## Customize sign-in and sign-out
113+
## Customize sign-in and sign out
112114

113-
Container Apps Authentication provides built-in endpoints for sign-in and sign-out. When the feature is enabled, these endpoints are available under the `/.auth` route prefix on your container app.
115+
Container Apps Authentication provides built-in endpoints for sign in and signs out. When the feature is enabled, these endpoints are available under the `/.auth` route prefix on your container app.
114116

115117
### Use multiple sign-in providers
116118

@@ -156,7 +158,7 @@ The token format varies slightly according to the provider. See the following ta
156158
|-|-|-|
157159
| `aad` | `{"access_token":"<ACCESS_TOKEN>"}` | The `id_token`, `refresh_token`, and `expires_in` properties are optional. |
158160
| `microsoftaccount` | `{"access_token":"<ACCESS_TOKEN>"}` or `{"authentication_token": "<TOKEN>"`| `authentication_token` is preferred over `access_token`. The `expires_in` property is optional. <br/> When requesting the token from Live services, always request the `wl.basic` scope. |
159-
| `google` | `{"id_token":"<ID_TOKEN>"}` | The `authorization_code` property is optional. Providing an `authorization_code` value will add an access token and a refresh token to the token store. When specified, `authorization_code` can also optionally be accompanied by a `redirect_uri` property. |
161+
| `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 specified, `authorization_code` can also optionally be accompanied by a `redirect_uri` property. |
160162
| `facebook`| `{"access_token":"<USER_ACCESS_TOKEN>"}` | Use a valid [user access token](https://developers.facebook.com/docs/facebook-login/access-tokens) from Facebook. |
161163
| `twitter` | `{"access_token":"<ACCESS_TOKEN>", "access_token_secret":"<ACCES_TOKEN_SECRET>"}` | |
162164
| | | |
@@ -181,25 +183,25 @@ X-ZUMO-AUTH: <authenticationToken_value>
181183

182184
### Sign out of a session
183185

184-
Users can initiate a sign-out by sending a `GET` request to the app's `/.auth/logout` endpoint. The `GET` request conducts the following actions:
186+
Users can sign out by sending a `GET` request to the app's `/.auth/logout` endpoint. The `GET` request conducts the following actions:
185187

186188
* Clears authentication cookies from the current session.
187189
* Deletes the current user's tokens from the token store.
188-
* For Microsoft Entra ID and Google, performs a server-side sign-out on the identity provider.
190+
* Performs a server-side sign out on the identity provider for Microsoft Entra ID and Google.
189191

190-
Here's a simple sign-out link in a webpage:
192+
Here's a simple sign out link in a webpage:
191193

192194
```html
193195
<a href="/.auth/logout">Sign out</a>
194196
```
195197

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

198200
```console
199201
GET /.auth/logout?post_logout_redirect_uri=/index.html
200202
```
201203

202-
It's recommended that you [encode](https://wikipedia.org/wiki/Percent-encoding) the value of `post_logout_redirect_uri`.
204+
It recommends that you [encode](https://wikipedia.org/wiki/Percent-encoding) the value of `post_logout_redirect_uri`.
203205

204206
URL must be hosted in the same domain when using fully qualified URLs.
205207

0 commit comments

Comments
 (0)