Skip to content

Commit 9ad1b47

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into probe-howto
2 parents 46a238e + 676c59a commit 9ad1b47

File tree

553 files changed

+10804
-4599
lines changed

Some content is hidden

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

553 files changed

+10804
-4599
lines changed

.openpublishing.publish.config.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -893,6 +893,7 @@
893893
"articles/purview/.openpublishing.redirection.purview.json",
894894
"articles/service-bus-messaging/.openpublishing.redirection.service-bus-messaging.json",
895895
"articles/stream-analytics/.openpublishing.redirection.stream-analytics.json",
896+
"articles/spatial-anchors/.openpublishing.redirection.spatial-anchors.json",
896897
"articles/azure-video-analyzer/.openpublishing.redirection.azure-video-analyzer.json",
897898
"articles/virtual-machines/.openpublishing.redirection.virtual-machines.json",
898899
"articles/virtual-machine-scale-sets/.openpublishing.redirection.virtual-machine-scale-sets.json",

.openpublishing.redirection.azure-sql.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,13 +175,23 @@
175175
"redirect_url": "/sql/machine-learning/tutorials/r-predictive-model-train?context=/azure/azure-sql/managed-instance/context/ml-context&view=azuresqldb-mi-current",
176176
"redirect_document_id": false
177177
},
178+
{
179+
"source_path_from_root": "/articles/azure-sql/database/auto-failover-group-overview.md",
180+
"redirect_url": "/azure/azure-sql/database/auto-failover-group-sql-db",
181+
"redirect_document_id": true
182+
},
183+
{
184+
"source_path_from_root": "/articles/azure-sql/database/auto-failover-group-configure.md",
185+
"redirect_url": "/azure/azure-sql/database/auto-failover-group-configure-sql-db",
186+
"redirect_document_id": true
187+
},
178188
{
179189
"source_path_from_root": "/articles/azure-sql/database/job-automation-managed-instances.md",
180190
"redirect_url": "/azure/azure-sql/managed-instance/job-automation-managed-instance",
181191
"redirect_document_id": true
182192
},
183193
{
184-
"source_path": "articles/azure-sql/database/service-tiers-general-purpose-business-critical.md",
194+
"source_path_from_root": "/articles/azure-sql/database/service-tiers-general-purpose-business-critical.md",
185195
"redirect_url": "/azure/azure-sql/database/service-tiers-vcore",
186196
"redirect_document_id": false
187197
}

.openpublishing.redirection.media-services.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -634,10 +634,15 @@
634634
"source_path_from_root": "/articles/media-services/latest/architecture-design-multi-drm-system.md",
635635
"redirect_url": "/azure/media-services/latest/drm-content-protection-concept",
636636
"redirect_document_id": true
637-
},
637+
},
638+
{
639+
"source_path_from_root": "/articles/media-services/latest/job-create-cli-how-to.md",
640+
"redirect_url": "/azure/media-services/latest/job-create-how-to",
641+
"redirect_document_id": false
642+
},
638643
{
639-
"source_path_from_root": "/articles/media-services/latest/latest/questions-collection.md",
640-
"redirect_url": "/articles/media-services/latest/frequently-asked-questions.yml",
644+
"source_path_from_root": "/articles/media-services/latest/latest/asset-publish-cli-how-to.md",
645+
"redirect_url": "/azure/media-services/latest/video-on-demand-simple-portal-quickstart",
641646
"redirect_document_id": false
642647
}
643648
]

articles/active-directory-b2c/authorization-code-flow.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ manager: CelesteDG
88
ms.service: active-directory
99
ms.workload: identity
1010
ms.topic: conceptual
11-
ms.date: 06/18/2021
11+
ms.date: 03/03/2022
1212
ms.author: kengaderdus
1313
ms.subservice: B2C
1414
ms.custom: fasttrack-edit
@@ -40,7 +40,7 @@ The authorization code flow for single page applications requires some additiona
4040
The `spa` redirect type is backwards compatible with the implicit flow. Apps currently using the implicit flow to get tokens can move to the `spa` redirect URI type without issues and continue using the implicit flow.
4141

4242
## 1. Get an authorization code
43-
The authorization code flow begins with the client directing the user to the `/authorize` endpoint. This is the interactive part of the flow, where the user takes action. In this request, the client indicates in the `scope` parameter the permissions that it needs to acquire from the user. The following three examples (with line breaks for readability) each use a different user flow. If you're testing this GET HTTP request, use your browser.
43+
The authorization code flow begins with the client directing the user to the `/authorize` endpoint. This is the interactive part of the flow, where the user takes action. In this request, the client indicates in the `scope` parameter the permissions that it needs to acquire from the user. The following examples (with line breaks for readability) shows how to acquire an authorization code. If you're testing this GET HTTP request, use your browser.
4444

4545

4646
```http
@@ -66,8 +66,8 @@ client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6
6666
| response_mode |Recommended |The method that you use to send the resulting authorization code back to your app. It can be `query`, `form_post`, or `fragment`. |
6767
| state |Recommended |A value included in the request that can be a string of any content that you want to use. Usually, a randomly generated unique value is used, to prevent cross-site request forgery attacks. The state also is used to encode information about the user's state in the app before the authentication request occurred. For example, the page the user was on, or the user flow that was being executed. |
6868
| prompt |Optional |The type of user interaction that is required. Currently, the only valid value is `login`, which forces the user to enter their credentials on that request. Single sign-on will not take effect. |
69-
| code_challenge | recommended / required | Used to secure authorization code grants via Proof Key for Code Exchange (PKCE). Required if `code_challenge_method` is included. For more information, see the [PKCE RFC](https://tools.ietf.org/html/rfc7636). This is now recommended for all application types - native apps, SPAs, and confidential clients like web apps. |
70-
| `code_challenge_method` | recommended / required | The method used to encode the `code_verifier` for the `code_challenge` parameter. This *SHOULD* be `S256`, but the spec allows the use of `plain` if for some reason the client cannot support SHA256. <br/><br/>If excluded, `code_challenge` is assumed to be plaintext if `code_challenge` is included. Microsoft identity platform supports both `plain` and `S256`. For more information, see the [PKCE RFC](https://tools.ietf.org/html/rfc7636). This is required for [single page apps using the authorization code flow](tutorial-register-spa.md).|
69+
| code_challenge | recommended / required | Used to secure authorization code grants via Proof Key for Code Exchange (PKCE). Required if `code_challenge_method` is included. You need to add logic in your application to generate the `code_verifier` and `code_challenge`. The `code_challenge` is a Base64 URL-encoded SHA256 hash of the `code_verifier`. You store the `code_verifier` in your application for later use, and send the `code_challenge` along with the authorization request. For more information, see the [PKCE RFC](https://tools.ietf.org/html/rfc7636). This is now recommended for all application types - native apps, SPAs, and confidential clients like web apps. |
70+
| `code_challenge_method` | recommended / required | The method used to encode the `code_verifier` for the `code_challenge` parameter. This *SHOULD* be `S256`, but the spec allows the use of `plain` if for some reason the client cannot support SHA256. <br/><br/>If you exclude the `code_challenge_method`, but still include the `code_challenge`, then the `code_challenge` is assumed to be plaintext. Microsoft identity platform supports both `plain` and `S256`. For more information, see the [PKCE RFC](https://tools.ietf.org/html/rfc7636). This is required for [single page apps using the authorization code flow](tutorial-register-spa.md).|
7171
| login_hint | No| Can be used to pre-fill the sign-in name field of the sign-in page. For more information, see [Prepopulate the sign-in name](direct-signin.md#prepopulate-the-sign-in-name). |
7272
| domain_hint | No| Provides a hint to Azure AD B2C about the social identity provider that should be used for sign-in. If a valid value is included, the user goes directly to the identity provider sign-in page. For more information, see [Redirect sign-in to a social provider](direct-signin.md#redirect-sign-in-to-a-social-provider). |
7373
| Custom parameters | No| Custom parameters that can be used with [custom policies](custom-policy-overview.md). For example, [dynamic custom page content URI](customize-ui-with-html.md?pivots=b2c-custom-policy#configure-dynamic-custom-page-content-uri), or [key-value claim resolvers](claim-resolver-overview.md#oauth2-key-value-parameters). |
@@ -125,9 +125,9 @@ grant_type=authorization_code&client_id=90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6&sco
125125
| client_secret | Yes, in Web Apps | The application secret that was generated in the [Azure portal](https://portal.azure.com/). Client secrets are used in this flow for Web App scenarios, where the client can securely store a client secret. For Native App (public client) scenarios, client secrets cannot be securely stored, and therefore are not used in this call. If you use a client secret, please change it on a periodic basis. |
126126
| grant_type |Required |The type of grant. For the authorization code flow, the grant type must be `authorization_code`. |
127127
| scope |Required |A space-separated list of scopes. A single scope value indicates to Azure AD both of the permissions that are being requested. Using the client ID as the scope indicates that your app needs an access token that can be used against your own service or web API, represented by the same client ID. The `offline_access` scope indicates that your app needs a refresh token for long-lived access to resources. You also can use the `openid` scope to request an ID token from Azure AD B2C. |
128-
| code |Required |The authorization code that you acquired in the first leg of the flow. |
128+
| code |Required |The authorization code that you acquired in from the `/authorize` endpoint. |
129129
| redirect_uri |Required |The redirect URI of the application where you received the authorization code. |
130-
| code_verifier | recommended | The same code_verifier that was used to obtain the authorization_code. Required if PKCE was used in the authorization code grant request. For more information, see the [PKCE RFC](https://tools.ietf.org/html/rfc7636). |
130+
| code_verifier | recommended | The same `code_verifier` used to obtain the authorization code. Required if PKCE was used in the authorization code grant request. For more information, see the [PKCE RFC](https://tools.ietf.org/html/rfc7636). |
131131

132132
If you're testing this POST HTTP request, you can use any HTTP client such as [Microsoft PowerShell](/powershell/scripting/overview) or [Postman](https://www.postman.com/).
133133

articles/active-directory-b2c/conditional-access-user-flow.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: active-directory
55
ms.service: active-directory
66
ms.subservice: conditional-access
77
ms.topic: overview
8-
ms.date: 12/09/2021
8+
ms.date: 03/03/2022
99
ms.custom: project-no-code
1010
ms.author: kengaderdus
1111
author: kengaderdus

articles/active-directory-b2c/microsoft-graph-operations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ manager: CelesteDG
88
ms.service: active-directory
99
ms.workload: identity
1010
ms.topic: how-to
11-
ms.date: 12/09/2021
11+
ms.date: 03/03/2022
1212
ms.custom: "project-no-code, ignite-fall-2021, b2c-support"
1313
ms.author: kengaderdus
1414
ms.subservice: B2C

articles/active-directory-b2c/partner-bindid.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ You should now see BindID as a new OIDC Identity provider listed within your B2C
138138

139139
11. Select **Run user flow**.
140140

141-
12. The browser will be redirected to the BindID login page. Enter the account name registered during User registration. The user will receive a push notification to the registered user mobile device for a Fast Identity Online (FIDO2) certified authentication. It can be a user finger print, biometric or decentralized pin.
141+
12. The browser will be redirected to the BindID login page. Enter the account name registered during User registration. The user enters the registered account email and authenticates using appless FIDO2 biometrics, such as fingerprint.
142142

143143
13. Once the authentication challenge is accepted, the browser will redirect the user to the replying URL.
144144

articles/active-directory-b2c/tokens-overview.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ manager: CelesteDG
88
ms.service: active-directory
99
ms.workload: identity
1010
ms.topic: conceptual
11-
ms.date: 02/11/2022
11+
ms.date: 03/03/2022
1212
ms.author: kengaderdus
1313
ms.subservice: B2C
1414
ms.custom: b2c-support
@@ -26,9 +26,11 @@ Azure AD B2C supports the [OAuth 2.0 and OpenID Connect protocols](protocols-ove
2626

2727
The following tokens are used in communication with Azure AD B2C:
2828

29-
- **ID token** - A JWT that contains claims that you can use to identify users in your application. This token is securely sent in HTTP requests for communication between two components of the same application or service. You can use the claims in an ID token as you see fit. They are commonly used to display account information or to make access control decisions in an application. ID tokens are signed, but they are not encrypted. When your application or API receives an ID token, it must validate the signature to prove that the token is authentic. Your application or API must also validate a few claims in the token to prove that it's valid. Depending on the scenario requirements, the claims validated by an application can vary, but your application must perform some common claim validations in every scenario.
30-
- **Access token** - A JWT that contains claims that you can use to identify the granted permissions to your APIs. Access tokens are signed, but they aren't encrypted. Access tokens are used to provide access to APIs and resource servers. When your API receives an access token, it must validate the signature to prove that the token is authentic. Your API must also validate a few claims in the token to prove that it is valid. Depending on the scenario requirements, the claims validated by an application can vary, but your application must perform some common claim validations in every scenario.
31-
- **Refresh token** - Refresh tokens are used to acquire new ID tokens and access tokens in an OAuth 2.0 flow. They provide your application with long-term access to resources on behalf of users without requiring interaction with those users. Refresh tokens are opaque to your application. They are issued by Azure AD B2C and can be inspected and interpreted only by Azure AD B2C. They are long-lived, but your application shouldn't be written with the expectation that a refresh token will last for a specific period of time. Refresh tokens can be invalidated at any moment for a variety of reasons. The only way for your application to know if a refresh token is valid is to attempt to redeem it by making a token request to Azure AD B2C. When you redeem a refresh token for a new token, you receive a new refresh token in the token response. Save the new refresh token. It replaces the refresh token that you previously used in the request. This action helps guarantee that your refresh tokens remain valid for as long as possible. Note that single-page applications using the authorization code flow with PKCE always have a refresh token lifetime of 24 hours. [Learn more about the security implications of refresh tokens in the browser](../active-directory/develop/reference-third-party-cookies-spas.md#security-implications-of-refresh-tokens-in-the-browser).
29+
- **ID token** - A JWT that contains claims that you can use to identify users in your application. This token is securely sent in HTTP requests for communication between two components of the same application or service. You can use the claims in an ID token as you see fit. They're commonly used to display account information or to make access control decisions in an application. ID tokens are signed, but the're not encrypted. When your application or API receives an ID token, it must validate the signature to prove that the token is authentic. Your application or API must also validate a few claims in the token to prove that it's valid. Depending on the scenario requirements, the claims validated by an application can vary, but your application must perform some common claim validations in every scenario.
30+
31+
- **Access token** - A JWT that contains claims that you can use to identify the granted permissions to your APIs. Access tokens are signed, but they aren't encrypted. Access tokens are used to provide access to APIs and resource servers. When your API receives an access token, it must validate the signature to prove that the token is authentic. Your API must also validate a few claims in the token to prove that it's valid. Depending on the scenario requirements, the claims validated by an application can vary, but your application must perform some common claim validations in every scenario.
32+
33+
- **Refresh token** - Refresh tokens are used to acquire new ID tokens and access tokens in an OAuth 2.0 flow. They provide your application with long-term access to resources on behalf of users without requiring interaction with those users. Refresh tokens are opaque to your application. They're issued by Azure AD B2C and can be inspected and interpreted only by Azure AD B2C. They're long-lived, but your application shouldn't be written with the expectation that a refresh token will last for a specific period of time. Refresh tokens can be invalidated at any moment for a variety of reasons. The only way for your application to know if a refresh token is valid is to attempt to redeem it by making a token request to Azure AD B2C. When you redeem a refresh token for a new token, you receive a new refresh token in the token response. Save the new refresh token. It replaces the refresh token that you previously used in the request. This action helps guarantee that your refresh tokens remain valid for as long as possible. Single-page applications using the authorization code flow with PKCE always have a refresh token lifetime of 24 hours. [Learn more about the security implications of refresh tokens in the browser](../active-directory/develop/reference-third-party-cookies-spas.md#security-implications-of-refresh-tokens-in-the-browser).
3234

3335
## Endpoints
3436

@@ -133,7 +135,7 @@ The metadata document for the `B2C_1_signupsignin1` policy in the `contoso.onmic
133135
https://contoso.b2clogin.com/contoso.onmicrosoft.com/b2c_1_signupsignin1/v2.0/.well-known/openid-configuration
134136
```
135137

136-
To determine which policy was used to sign a token (and where to go to request the metadata), you have two options. First, the policy name is included in the `tfp` (default) or `acr` claim (as configured) in the token. You can parse claims out of the body of the JWT by base-64 decoding the body and deserializing the JSON string that results. The `tfp` or `acr` claim is the name of the policy that was used to issue the token. The other option is to encode the policy in the value of the `state` parameter when you issue the request, and then decode it to determine which policy was used. Either method is valid.
138+
To determine which policy was used to sign a token (and where to go to request the metadata), you've two options. First, the policy name is included in the `tfp` (default) or `acr` claim (as configured) in the token. You can parse claims out of the body of the JWT by base-64 decoding the body and deserializing the JSON string that results. The `tfp` or `acr` claim is the name of the policy that was used to issue the token. The other option is to encode the policy in the value of the `state` parameter when you issue the request, and then decode it to determine which policy was used. Either method is valid.
137139

138140
Azure AD B2C uses the RS256 algorithm, which is based on the [RFC 3447](https://www.rfc-editor.org/rfc/rfc3447#section-3.1) specification. The public key consists of two components: the RSA modulus (`n`) and the RSA public exponent (`e`). You can programmatically convert `n` and `e` values to a certificate format for token validation.
139141

0 commit comments

Comments
 (0)