Skip to content

Commit aa58999

Browse files
authored
Merge pull request #99329 from MicrosoftDocs/master
12/18 AM Publish
2 parents f228fe7 + cc0b380 commit aa58999

File tree

66 files changed

+974
-889
lines changed

Some content is hidden

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

66 files changed

+974
-889
lines changed

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42208,6 +42208,11 @@
4220842208
"redirect_url": "/azure/iot-central/preview/quick-monitor-devices/",
4220942209
"redirect_document_id": true
4221042210
},
42211+
{
42212+
"source_path": "articles/iot-central/core/overview-iot-options.md",
42213+
"redirect_url": "/azure/iot-fundamentals/iot-services-and-technologies/",
42214+
"redirect_document_id": true
42215+
},
4221142216
{
4221242217
"source_path": "articles/iot-accelerators/iot-accelerators-arduino-iot-devkit-az3166-devkit-remote-monitoringV2.md",
4221342218
"redirect_url": "/azure/iot-accelerators/iot-accelerators-arduino-iot-devkit-az3166-devkit-remote-monitoring-v2",

articles/active-directory-b2c/active-directory-b2c-reference-oidc.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@ GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/
271271
| {tenant} | Yes | Name of your Azure AD B2C tenant |
272272
| {policy} | Yes | The user flow that you want to use to sign the user out of your application. |
273273
| id_token_hint| No | A previously issued ID token to pass to the logout endpoint as a hint about the end user's current authenticated session with the client. The `id_token_hint` ensures that the `post_logout_redirect_uri` is a registered reply URL in your Azure AD B2C application settings. |
274+
| client_id | No* | The application ID that the [Azure portal](https://portal.azure.com/) assigned to your application.<br><br>\**This is required when using `Application` isolation SSO configuration and _Require ID Token_ in logout request is set to `No`.* |
274275
| post_logout_redirect_uri | No | The URL that the user should be redirected to after successful sign out. If it isn't included, Azure AD B2C shows the user a generic message. Unless you provide an `id_token_hint`, you should not register this URL as a reply URL in your Azure AD B2C application settings. |
275276
| state | No | If a `state` parameter is included in the request, the same value should appear in the response. The application should verify that the `state` values in the request and response are identical. |
276277

articles/active-directory-b2c/connect-with-saml-service-providers.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ Now that your tenant can issue SAML assertions, you need to create the SAML rely
160160

161161
1. Open the *SignUpOrSigninSAML.xml* file in your preferred editor.
162162

163-
1. Change the `PolicyId` and `PublicPolicyUri` of the policy to _B2C_1A_signup_signin_saml_ and _http://tenant-name.onmicrosoft.com/B2C_1A_signup_signin_saml_ as seen below.
163+
1. Change the `PolicyId` and `PublicPolicyUri` of the policy to _B2C_1A_signup_signin_saml_ and `http://tenant-name.onmicrosoft.com/B2C_1A_signup_signin_saml` as seen below.
164164

165165
```XML
166166
<TrustFrameworkPolicy

articles/active-directory-b2c/custom-email.md

Lines changed: 87 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -147,13 +147,14 @@ With a SendGrid account created and SendGrid API key stored in a Azure AD B2C po
147147
</html>
148148
```
149149

150+
1. Expand **Settings** on the left, and for **Email Subject**, enter `{{subject}}`.
150151
1. Select **Save Template**.
151152
1. Return to the **Transactional Templates** page by selecting the back arrow.
152153
1. Record the **ID** of template you created for use in a later step. For example, `d-989077fbba9746e89f3f6411f596fb96`. You specify this ID when you [add the claims transformation](#add-the-claims-transformation).
153154

154155
## Add Azure AD B2C claim types
155156

156-
In your policy, add the following claim types.
157+
In your policy, add the following claim types to the `<ClaimsSchema>` element within `<BuildingBlocks>`.
157158

158159
These claims types are necessary to generate and verify the email address using a one-time password (OTP) code.
159160

@@ -174,6 +175,50 @@ These claims types are necessary to generate and verify the email address using
174175
</ClaimType>
175176
```
176177

178+
## Add the claims transformation
179+
180+
Next, you need a claims transformation to output a JSON string claim that will be the body of the request sent to SendGrid.
181+
182+
The JSON object's structure is defined by the IDs in dot notation of the InputParameters and the TransformationClaimTypes of the InputClaims. Numbers in the dot notation imply arrays. The values come from the InputClaims' values and the InputParameters' "Value" properties. For more information about JSON claims transformations, see [JSON claims transformations](json-transformations.md).
183+
184+
Add the following claims transformation to the `<ClaimsTransformations>` element within `<BuildingBlocks>`. Make the following updates to the claims transformation XML:
185+
186+
* Update the `template_id` InputParameter value with the ID of the SendGrid transactional template you created earlier in [Create SendGrid template](#create-sendgrid-template).
187+
* Update the `from.email` address value. Use a valid email address to help prevent the verification email from being marked as spam.
188+
* Update the value of the `personalizations.0.dynamic_template_data.subject` subject line input parameter with a subject line appropriate for your organization.
189+
190+
```XML
191+
<ClaimsTransformation Id="GenerateSendGridRequestBody" TransformationMethod="GenerateJson">
192+
<InputClaims>
193+
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="personalizations.0.to.0.email" />
194+
<InputClaim ClaimTypeReferenceId="otp" TransformationClaimType="personalizations.0.dynamic_template_data.otp" />
195+
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="personalizations.0.dynamic_template_data.email" />
196+
</InputClaims>
197+
<InputParameters>
198+
<!-- Update the template_id value with the ID of your SendGrid template. -->
199+
<InputParameter Id="template_id" DataType="string" Value="d-989077fbba9746e89f3f6411f596fb96"/>
200+
<InputParameter Id="from.email" DataType="string" Value="[email protected]"/>
201+
<!-- Update with a subject line appropriate for your organization. -->
202+
<InputParameter Id="personalizations.0.dynamic_template_data.subject" DataType="string" Value="Contoso account email verification code"/>
203+
</InputParameters>
204+
<OutputClaims>
205+
<OutputClaim ClaimTypeReferenceId="sendGridReqBody" TransformationClaimType="outputClaim"/>
206+
</OutputClaims>
207+
</ClaimsTransformation>
208+
```
209+
210+
## Add DataUri content definition
211+
212+
Below the claims transformations within `<BuildingBlocks>`, add the following [ContentDefinition](contentdefinitions.md) to reference the version 2.0.0 data URI:
213+
214+
```XML
215+
<ContentDefinitions>
216+
<ContentDefinition Id="api.localaccountsignup">
217+
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.0.0</DataUri>
218+
</ContentDefinition>
219+
</ContentDefinitions>
220+
```
221+
177222
## Create a DisplayControl
178223

179224
A verification display control is used to verify the email address with a verification code that's sent to the user.
@@ -187,7 +232,7 @@ This example display control is configured to:
187232

188233
![Send verification code email action](media/custom-email/display-control-verification-email-action-01.png)
189234

190-
Under [ClaimsSchema](claimsschema.md), add the following [DisplayControl](display-controls.md) of type [VerificationControl](display-control-verification.md) to your policy.
235+
Under content definitions, still within `<BuildingBlocks>`, add the following [DisplayControl](display-controls.md) of type [VerificationControl](display-control-verification.md) to your policy.
191236

192237
```XML
193238
<DisplayControls>
@@ -220,6 +265,8 @@ Under [ClaimsSchema](claimsschema.md), add the following [DisplayControl](displa
220265

221266
The `GenerateOtp` technical profile generates a code for the email address. The `VerifyOtp` technical profile verifies the code associated with the email address. You can change the configuration of the format and the expiration of the one-time password. For more information about OTP technical profiles, see [Define a one-time password technical profile](one-time-password-technical-profile.md).
222267

268+
Add the following technical profiles to the `<ClaimsProviders>` element.
269+
223270
```XML
224271
<ClaimsProvider>
225272
<DisplayName>One time password technical profiles</DisplayName>
@@ -266,6 +313,8 @@ The `GenerateOtp` technical profile generates a code for the email address. The
266313

267314
This REST API technical profile generates the email content (using the SendGrid format). For more information about RESTful technical profiles, see [Define a RESTful technical profile](restful-technical-profile.md).
268315

316+
As with the OTP technical profiles, add the following technical profiles to the `<ClaimsProviders>` element.
317+
269318
```XML
270319
<ClaimsProvider>
271320
<DisplayName>RestfulProvider</DisplayName>
@@ -293,85 +342,49 @@ This REST API technical profile generates the email content (using the SendGrid
293342
</ClaimsProvider>
294343
```
295344

296-
## Add the claims transformation
297-
298-
Add the following claims transformation to output a JSON string claim that will be the body of the request sent to SendGrid. Make the following updates to the claims transformation XML:
299-
300-
* Update the `template_id` InputParameter value with the ID of the SendGrid transactional template you created earlier in [Create SendGrid template](#create-sendgrid-template).
301-
* Update the value of the `personalizations.0.dynamic_template_data.subject` subject line input parameter with a subject line appropriate for your organization.
302-
303-
The JSON object's structure is defined by the IDs in dot notation of the InputParameters and the TransformationClaimTypes of the InputClaims. Numbers in the dot notation imply arrays. The values come from the InputClaims' values and the InputParameters' "Value" properties. For more information about JSON claims transformations, see [JSON claims transformations](json-transformations.md).
304-
305-
```XML
306-
<ClaimsTransformation Id="GenerateSendGridRequestBody" TransformationMethod="GenerateJson">
307-
<InputClaims>
308-
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="personalizations.0.to.0.email" />
309-
<InputClaim ClaimTypeReferenceId="otp" TransformationClaimType="personalizations.0.dynamic_template_data.otp" />
310-
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="personalizations.0.dynamic_template_data.email" />
311-
</InputClaims>
312-
<InputParameters>
313-
<!-- Update the template_id value with the ID of your SendGrid template. -->
314-
<InputParameter Id="template_id" DataType="string" Value="d-989077fbba9746e89f3f6411f596fb96"/>
315-
<InputParameter Id="from.email" DataType="string" Value="[email protected]"/>
316-
<!-- Update with a subject line appropriate for your organization. -->
317-
<InputParameter Id="personalizations.0.dynamic_template_data.subject" DataType="string" Value="Contoso account email verification code"/>
318-
</InputParameters>
319-
<OutputClaims>
320-
<OutputClaim ClaimTypeReferenceId="sendGridReqBody" TransformationClaimType="outputClaim"/>
321-
</OutputClaims>
322-
</ClaimsTransformation>
323-
```
324-
325-
## Add DataUri content definition
326-
327-
Add the following ContentDefinition within BuildingBlocks to reference the version 2.0.0 data URI:
328-
329-
```XML
330-
<ContentDefinitions>
331-
<ContentDefinition Id="api.localaccountsignup">
332-
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.0.0</DataUri>
333-
</ContentDefinition>
334-
</ContentDefinitions>
335-
```
336-
337345
## Make a reference to the DisplayControl
338346

339347
In the final step, add a reference to the DisplayControl you created. Replace your existing `LocalAccountSignUpWithLogonEmail` self-asserted technical profile with the following if you used an earlier version of Azure AD B2C policy. This technical profile uses `DisplayClaims` with a reference to the DisplayControl.
340348

341349
For more information, see [Self-asserted technical profile](restful-technical-profile.md) and [DisplayControl](display-controls.md).
342350

343351
```XML
344-
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
345-
<DisplayName>Email signup</DisplayName>
346-
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
347-
<Metadata>
348-
<Item Key="IpAddressClaimReferenceId">IpAddress</Item>
349-
<Item Key="ContentDefinitionReferenceId">api.localaccountsignup</Item>
350-
<Item Key="language.button_continue">Create</Item>
351-
</Metadata>
352-
<InputClaims>
353-
<InputClaim ClaimTypeReferenceId="email" />
354-
</InputClaims>
355-
<DisplayClaims>
356-
<DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
357-
<DisplayClaim ClaimTypeReferenceId="displayName" Required="true" />
358-
<DisplayClaim ClaimTypeReferenceId="givenName" Required="true" />
359-
<DisplayClaim ClaimTypeReferenceId="surName" Required="true" />
360-
<DisplayClaim ClaimTypeReferenceId="newPassword" Required="true" />
361-
<DisplayClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
362-
</DisplayClaims>
363-
<OutputClaims>
364-
<OutputClaim ClaimTypeReferenceId="email" Required="true" />
365-
<OutputClaim ClaimTypeReferenceId="objectId" />
366-
<OutputClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" DefaultValue="true" />
367-
<OutputClaim ClaimTypeReferenceId="authenticationSource" />
368-
<OutputClaim ClaimTypeReferenceId="newUser" />
369-
</OutputClaims>
370-
<ValidationTechnicalProfiles>
371-
<ValidationTechnicalProfile ReferenceId="AAD-UserWriteUsingLogonEmail" />
372-
</ValidationTechnicalProfiles>
373-
<UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
374-
</TechnicalProfile>
352+
<ClaimsProvider>
353+
<DisplayName>Local Account</DisplayName>
354+
<TechnicalProfiles>
355+
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
356+
<DisplayName>Email signup</DisplayName>
357+
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
358+
<Metadata>
359+
<Item Key="IpAddressClaimReferenceId">IpAddress</Item>
360+
<Item Key="ContentDefinitionReferenceId">api.localaccountsignup</Item>
361+
<Item Key="language.button_continue">Create</Item>
362+
</Metadata>
363+
<InputClaims>
364+
<InputClaim ClaimTypeReferenceId="email" />
365+
</InputClaims>
366+
<DisplayClaims>
367+
<DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
368+
<DisplayClaim ClaimTypeReferenceId="displayName" Required="true" />
369+
<DisplayClaim ClaimTypeReferenceId="givenName" Required="true" />
370+
<DisplayClaim ClaimTypeReferenceId="surName" Required="true" />
371+
<DisplayClaim ClaimTypeReferenceId="newPassword" Required="true" />
372+
<DisplayClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
373+
</DisplayClaims>
374+
<OutputClaims>
375+
<OutputClaim ClaimTypeReferenceId="email" Required="true" />
376+
<OutputClaim ClaimTypeReferenceId="objectId" />
377+
<OutputClaim ClaimTypeReferenceId="executed-SelfAsserted-Input" DefaultValue="true" />
378+
<OutputClaim ClaimTypeReferenceId="authenticationSource" />
379+
<OutputClaim ClaimTypeReferenceId="newUser" />
380+
</OutputClaims>
381+
<ValidationTechnicalProfiles>
382+
<ValidationTechnicalProfile ReferenceId="AAD-UserWriteUsingLogonEmail" />
383+
</ValidationTechnicalProfiles>
384+
<UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
385+
</TechnicalProfile>
386+
</TechnicalProfiles>
387+
</ClaimsProvider>
375388
```
376389

377390
## Next steps

articles/active-directory-b2c/phone-authentication.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ As you upload each file, Azure adds the prefix `B2C_1A_`.
6060

6161
## Test the custom policy
6262

63-
1. Under **Custom policies**, select **B2C_1A_SignUpOrSignInWithPhoneOrEmail**.
63+
1. Under **Custom policies**, select **B2C_1A_SignUpOrSignInWithPhone**.
6464
1. Under **Select application**, select the *webapp1* application that you registered when completing the prerequisites.
6565
1. For **Select reply url**, choose `https://jwt.ms`.
6666
1. Select **Run now** and sign up using an email address or a phone number.

articles/active-directory-domain-services/network-considerations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ ms.author: iainfou
1616
---
1717
# Virtual network design considerations and configuration options for Azure AD Domain Services
1818

19-
As Azure Active Directory Domain Services (AD DS) provides authentication and management services to other applications and workloads, network connectivity is a key component. Without appropriately configured virtual network resources, applications and workloads can't communicate with and use the features provides by Azure AD DS. If you plan your virtual network correctly, you make sure that Azure AD DS can serve your applications and workloads as needed.
19+
As Azure Active Directory Domain Services (AD DS) provides authentication and management services to other applications and workloads, network connectivity is a key component. Without appropriately configured virtual network resources, applications and workloads can't communicate with and use the features provided by Azure AD DS. If you plan your virtual network correctly, you make sure that Azure AD DS can serve your applications and workloads as needed.
2020

2121
This article outlines design considerations and requirements for an Azure virtual network that supports Azure AD DS.
2222

articles/active-directory/develop/reference-v2-libraries.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ Use client authentication libraries to acquire a token for calling a protected w
5252

5353
| Platform | Library | Download | Source code | Sample | Reference | Conceptual doc | Roadmap |
5454
| --- | --- | --- | --- | --- | --- | --- | --- |
55-
| ![JavaScript](media/sample-v2-code/logo_js.png) | MSAL.js | [NPM](https://www.npmjs.com/package/msal) |[GitHub](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/README.md) | [Single-page app](https://github.com/Azure-Samples/active-directory-javascript-singlepageapp-dotnet-webapi-v2) | [Reference](https://htmlpreview.github.io/?https://raw.githubusercontent.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-core/docs/classes/_useragentapplication_.useragentapplication.html) | [Conceptual docs](msal-overview.md)| [Roadmap](https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki#roadmap)
55+
| ![JavaScript](media/sample-v2-code/logo_js.png) | MSAL.js | [NPM](https://www.npmjs.com/package/msal) |[GitHub](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/README.md) | [Single-page app](https://github.com/Azure-Samples/active-directory-javascript-singlepageapp-dotnet-webapi-v2) | [Reference](https://azuread.github.io/microsoft-authentication-library-for-js/docs/msal/) | [Conceptual docs](msal-overview.md)| [Roadmap](https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki#roadmap)
5656
|![Angular JS](media/sample-v2-code/logo_angular.png) | MSAL Angular JS | [NPM](https://www.npmjs.com/package/@azure/msal-angularjs) | [GitHub](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angularjs/README.md) | | | |
5757
![Angular](media/sample-v2-code/logo_angular.png) | MSAL Angular (Preview) | [NPM](https://www.npmjs.com/package/@azure/msal-angular) |[GitHub](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/README.md) | | | |
5858
| ![.NET Framework](media/sample-v2-code/logo_NET.png) ![UWP](media/sample-v2-code/logo_windows.png) ![Xamarin](media/sample-v2-code/logo_xamarin.png) | MSAL.NET |[NuGet](https://www.nuget.org/packages/Microsoft.Identity.Client) |[GitHub](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet) | [Desktop app](guidedsetups/active-directory-mobileanddesktopapp-windowsdesktop-intro.md) | [MSAL.NET](https://docs.microsoft.com/dotnet/api/microsoft.identity.client?view=azure-dotnet-preview) |[Conceptual docs](msal-overview.md) | [Roadmap](https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/wiki#roadmap)

0 commit comments

Comments
 (0)