Skip to content

Commit b95983c

Browse files
authored
Merge pull request #103968 from MicrosoftDocs/master
2/11 AM Publish
2 parents f718b98 + a6a628f commit b95983c

File tree

76 files changed

+681
-579
lines changed

Some content is hidden

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

76 files changed

+681
-579
lines changed

articles/active-directory-b2c/analytics-with-application-insights.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: celestedg
99
ms.service: active-directory
1010
ms.topic: conceptual
1111
ms.workload: identity
12-
ms.date: 10/12/2018
12+
ms.date: 02/11/2020
1313
ms.author: marsma
1414
ms.subservice: B2C
1515

@@ -154,7 +154,7 @@ Add the profiles to the *TrustFrameworkExtensions.xml* file from the starter pac
154154
<InputClaims>
155155
<!-- Properties of an event are added through the syntax {property:NAME}, where NAME is property being added to the event. DefaultValue can be either a static value or a value that's resolved by one of the supported DefaultClaimResolvers. -->
156156
<InputClaim ClaimTypeReferenceId="PolicyId" PartnerClaimType="{property:Policy}" DefaultValue="{Policy:PolicyId}" />
157-
<InputClaim ClaimTypeReferenceId="CorrelationId" PartnerClaimType="{property:JourneyId}" />
157+
<InputClaim ClaimTypeReferenceId="CorrelationId" PartnerClaimType="{property:JourneyId}" DefaultValue="{Context:CorrelationId}" />
158158
<InputClaim ClaimTypeReferenceId="Culture" PartnerClaimType="{property:Culture}" DefaultValue="{Culture:RFC5646}" />
159159
</InputClaims>
160160
</TechnicalProfile>

articles/active-directory-b2c/contentdefinitions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ The **ContentDefinition** element contains the following elements:
7373

7474
### DataUri
7575

76-
The **DataUri** element is used to specify the page identifier. Azure AD B2C uses the page identifier to load and initiate UI elements and client side JavaScript. The format of the value is `urn:com:microsoft:aad:b2c:elements:page-name:version`. The following table lists of the page identifiers you can use.
76+
The **DataUri** element is used to specify the page identifier. Azure AD B2C uses the page identifier to load and initiate UI elements and client side JavaScript. The format of the value is `urn:com:microsoft:aad:b2c:elements:page-name:version`. The following table lists the values and descriptions of the page identifiers you can use.
7777

7878
| Value | Description |
7979
| ----- | ----------- |

articles/active-directory-b2c/display-controls.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ Certain display claims are required for certain types of display control. For ex
8686

8787
The **output claims** of a display control are not sent to the next orchestration step. They are saved temporarily only for the current display control session. These temporary claims can be shared between the different actions of the same display control.
8888

89-
To bubble up the output the claims to the next orchestration step, use the **OutputClaims** of the actual self-asserted technical profile which references this display control.
89+
To bubble up the output claims to the next orchestration step, use the **OutputClaims** of the actual self-asserted technical profile which references this display control.
9090

9191
### Display control Actions
9292

articles/active-directory-b2c/identity-provider-azure-ad-single-tenant-custom.md

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: celestedg
99
ms.service: active-directory
1010
ms.workload: identity
1111
ms.topic: conceptual
12-
ms.date: 09/13/2019
12+
ms.date: 02/11/2020
1313
ms.author: marsma
1414
ms.subservice: B2C
1515
---
@@ -46,6 +46,19 @@ To enable sign-in for users from a specific Azure AD organization, you need to r
4646
1. Select **Certificates & secrets**, and then select **New client secret**.
4747
1. Enter a **Description** for the secret, select an expiration, and then select **Add**. Record the **Value** of the secret for use in a later step.
4848
49+
## Configuring optional claims
50+
51+
If you want to get the `family_name` and `given_name` claims from Azure AD, you can configure optional claims for your application in the Azure portal UI or application manifest. For more information, see [How to provide optional claims to your Azure AD app](../active-directory/develop/active-directory-optional-claims.md).
52+
53+
1. Sign in to the [Azure portal](https://portal.azure.com). Search for and select **Azure Active Directory**.
54+
1. From the **Manage** section, select **App registrations**.
55+
1. Select the application you want to configure optional claims for in the list.
56+
1. From the **Manage** section, select **Token configuration (preview)**.
57+
1. Select **Add optional claim**.
58+
1. Select the token type you want to configure.
59+
1. Select the optional claims to add.
60+
1. Click **Add**.
61+
4962
## Create a policy key
5063
5164
You need to store the application key that you created in your Azure AD B2C tenant.
@@ -69,23 +82,20 @@ You can define Azure AD as a claims provider by adding Azure AD to the **ClaimsP
6982
1. Open the *TrustFrameworkExtensions.xml* file.
7083
2. Find the **ClaimsProviders** element. If it does not exist, add it under the root element.
7184
3. Add a new **ClaimsProvider** as follows:
72-
73-
```XML
85+
```xml
7486
<ClaimsProvider>
7587
<Domain>Contoso</Domain>
7688
<DisplayName>Login using Contoso</DisplayName>
7789
<TechnicalProfiles>
78-
<TechnicalProfile Id="ContosoProfile">
90+
<TechnicalProfile Id="OIDC-Contoso">
7991
<DisplayName>Contoso Employee</DisplayName>
8092
<Description>Login with your Contoso account</Description>
8193
<Protocol Name="OpenIdConnect"/>
8294
<Metadata>
83-
<Item Key="METADATA">https://login.windows.net/your-AD-tenant-name.onmicrosoft.com/.well-known/openid-configuration</Item>
84-
<Item Key="ProviderName">https://sts.windows.net/00000000-0000-0000-0000-000000000000/</Item>
85-
<!-- Update the Client ID below to the Application ID -->
95+
<Item Key="METADATA">https://login.microsoftonline.com/tenant-name.onmicrosoft.com/v2.0/.well-known/openid-configuration</Item>
8696
<Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
8797
<Item Key="response_types">code</Item>
88-
<Item Key="scope">openid</Item>
98+
<Item Key="scope">openid profile</Item>
8999
<Item Key="response_mode">form_post</Item>
90100
<Item Key="HttpBinding">POST</Item>
91101
<Item Key="UsePolicyInRedirectUri">false</Item>
@@ -121,12 +131,11 @@ You can define Azure AD as a claims provider by adding Azure AD to the **ClaimsP
121131
122132
To get a token from the Azure AD endpoint, you need to define the protocols that Azure AD B2C should use to communicate with Azure AD. This is done inside the **TechnicalProfile** element of **ClaimsProvider**.
123133
124-
1. Update the ID of the **TechnicalProfile** element. This ID is used to refer to this technical profile from other parts of the policy.
134+
1. Update the ID of the **TechnicalProfile** element. This ID is used to refer to this technical profile from other parts of the policy, for example `OIDC-Contoso`.
125135
1. Update the value for **DisplayName**. This value will be displayed on the sign-in button on your sign-in screen.
126136
1. Update the value for **Description**.
127137
1. Azure AD uses the OpenID Connect protocol, so make sure that the value for **Protocol** is `OpenIdConnect`.
128-
1. Set value of the **METADATA** to `https://login.windows.net/your-AD-tenant-name.onmicrosoft.com/.well-known/openid-configuration`, where `your-AD-tenant-name` is your Azure AD tenant name. For example, `https://login.windows.net/fabrikam.onmicrosoft.com/.well-known/openid-configuration`
129-
1. Open your browser and go to the **METADATA** URL that you just updated, look for the **issuer** object, and then copy and paste the value into the value for **ProviderName** in the XML file.
138+
1. Set value of the **METADATA** to `https://login.microsoftonline.com/tenant-name.onmicrosoft.com/v2.0/.well-known/openid-configuration`, where `tenant-name` is your Azure AD tenant name. For example, `https://login.microsoftonline.com/contoso.onmicrosoft.com/v2.0/.well-known/openid-configuration`
130139
1. Set **client_id** to the application ID from the application registration.
131140
1. Under **CryptographicKeys**, update the value of **StorageReferenceId** to the name of the policy key that you created earlier. For example, `B2C_1A_ContosoAppSecret`.
132141
@@ -167,10 +176,10 @@ Now that you have a button in place, you need to link it to an action. The actio
167176
1. Add the following **ClaimsExchange** element making sure that you use the same value for **Id** that you used for **TargetClaimsExchangeId**:
168177
169178
```XML
170-
<ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="ContosoProfile" />
179+
<ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="OIDC-Contoso" />
171180
```
172181
173-
Update the value of **TechnicalProfileReferenceId** to the **Id** of the technical profile you created earlier. For example, `ContosoProfile`.
182+
Update the value of **TechnicalProfileReferenceId** to the **Id** of the technical profile you created earlier. For example, `OIDC-Contoso`.
174183
175184
1. Save the *TrustFrameworkExtensions.xml* file and upload it again for verification.
176185
4.54 KB
Loading

articles/active-directory-b2c/technical-profiles-overview.md

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: celestedg
99
ms.service: active-directory
1010
ms.workload: identity
1111
ms.topic: reference
12-
ms.date: 03/02/2020
12+
ms.date: 02/11/2020
1313
ms.author: marsma
1414
ms.subservice: B2C
1515
---
@@ -35,30 +35,34 @@ A technical profile enables these types of scenarios:
3535
- [SAML2](saml-technical-profile.md) - Federation with any SAML protocol identity provider.
3636
- [Self-Asserted](self-asserted-technical-profile.md) - Interact with the user. For example, collect the user's credential to sign in, render the sign-up page, or password reset.
3737
- [Session management](custom-policy-reference-sso.md) - Handle different types of sessions.
38-
- **Application insights**
38+
- **Application Insights**
3939
- [One time password](one-time-password-technical-profile.md) - Provides support for managing the generation and verification of a one-time password.
4040

4141
## Technical profile flow
4242

43-
All types of technical profiles share the same concept. You send input claims, run claims transformation, and communicate with the configured party, such as an identity provider, REST API, or Azure AD directory services. After the process finishes, the technical profile returns the output claims and may run output claims transformation. The following diagram shows how the transformations and mappings referenced in the technical profile are processed. Regardless of the party the technical profile interacts with, after any claims transformation is executed, the output claims from the technical profile are immediately stored in the claims bag.
43+
All types of technical profiles share the same concept. You send input claims, run claims transformation, and communicate with the configured party, such as an identity provider, REST API, or Azure AD directory services. After the process is completed, the technical profile returns the output claims and may run output claims transformation. The following diagram shows how the transformations and mappings referenced in the technical profile are processed. Regardless of the party the technical profile interacts with, after any claims transformation is executed, the output claims from the technical profile are immediately stored in the claims bag.
4444

4545
![Diagram illustrating the technical profile flow](./media/technical-profiles-overview/technical-profile-idp-saml-flow.png)
4646

47-
1. **InputClaimsTransformation** - Input claims of every input [claims transformation](claimstransformations.md) are picked up from the claims bag, and after execution, the output claims are put back in the claims bag. The output claims of an input claims transformation can be input claims of a subsequent input claims transformation.
48-
2. **InputClaims** - Claims are picked up from the claims bag and are used for the technical profile. For example, a [self-asserted technical profile](self-asserted-technical-profile.md) uses the input claims to prepopulate the output claims that the user provides. A REST API technical profile uses the input claims to send input parameters to the REST API endpoint. Azure Active Directory uses input claim as a unique identifier to read, update, or delete an account.
49-
3. **Technical profile execution** - The technical profile exchanges the claims with the configured party. For example:
47+
1. **Single sign-on (SSO) session management** - Restores technical profile's session state, using [SSO session management](custom-policy-reference-sso.md).
48+
1. **Input claims transformation** - Input claims of every input [claims transformation](claimstransformations.md) are picked up from the claims bag. The output claims of an input claims transformation can be input claims of a subsequent input claims transformation.
49+
1. **Input claims** - Claims are picked up from the claims bag and are used for the technical profile. For example, a [self-asserted technical profile](self-asserted-technical-profile.md) uses the input claims to prepopulate the output claims that the user provides. A REST API technical profile uses the input claims to send input parameters to the REST API endpoint. Azure Active Directory uses input claim as a unique identifier to read, update, or delete an account.
50+
1. **Technical profile execution** - The technical profile exchanges the claims with the configured party. For example:
5051
- Redirect the user to the identity provider to complete the sign-in. After successful sign-in, the user returns back and the technical profile execution continues.
5152
- Call a REST API while sending parameters as InputClaims and getting information back as OutputClaims.
5253
- Create or update the user account.
5354
- Sends and verifies the MFA text message.
54-
4. **ValidationTechnicalProfiles** - For a [self asserted technical profile](self-asserted-technical-profile.md), you can call an input [validation technical profile](validation-technical-profile.md). The validation technical profile validates the data profiled by the user and returns an error message or Ok, with or without output claims. For example, before Azure AD B2C creates a new account, it checks whether the user already exists in the directory services. You can call a REST API technical profile to add your own business logic.<p>The scope of the output claims of a validation technical profile is limited to the technical profile that invokes the validation technical profile and other validation technical profiles under same technical profile. If you want to use the output claims in the next orchestration step, you need to add the output claims to the technical profile that invokes the validation technical profile.
55-
5. **OutputClaims** - Claims are returned back to the claims bag. You can use those claims in the next orchestrations step, or output claims transformations.
56-
6. **OutputClaimsTransformations** - Input claims of every output [claims transformation](claimstransformations.md) are picked up from the claims bag. The output claims of the technical profile from the previous steps can be input claims of an output claims transformation. After execution, the output claims are put back in the claims bag. The output claims of an output claims transformation can also be input claims of a subsequent output claims transformation.
57-
7. **Single sign-on (SSO) session management** - [SSO session management](custom-policy-reference-sso.md) controls interaction with a user after the user has already authenticated. For example, the administrator can control whether the selection of identity providers is displayed, or whether local account details need to be entered again.
55+
1. **Validation technical profiles** - A [self-asserted technical profile](self-asserted-technical-profile.md) can call [validation technical profiles](validation-technical-profile.md). The validation technical profile validates the data profiled by the user and returns an error message or Ok, with or without output claims. For example, before Azure AD B2C creates a new account, it checks whether the user already exists in the directory services. You can call a REST API technical profile to add your own business logic.<p>The scope of the output claims of a validation technical profile is limited to the technical profile that invokes the validation technical profile. and other validation technical profiles under same technical profile. If you want to use the output claims in the next orchestration step, you need to add the output claims to the technical profile that invokes the validation technical profile.
56+
1. **Output claims** - Claims are returned back to the claims bag. You can use those claims in the next orchestrations step, or output claims transformations.
57+
1. **Output claims transformations** - Input claims of every output [claims transformation](claimstransformations.md) are picked up from the claims bag. The output claims of the technical profile from the previous steps can be input claims of an output claims transformation. After execution, the output claims are put back in the claims bag. The output claims of an output claims transformation can also be input claims of a subsequent output claims transformation.
58+
1. **Single sign-on (SSO) session management** - Persists technical profile's data to the session, using [SSO session management](custom-policy-reference-sso.md).
5859

59-
A technical profile can inherit from another technical profile to change settings or add new functionality. The **IncludeTechnicalProfile** element is a reference to the base technical profile from which a technical profile is derived.
6060

61-
For example, the **AAD-UserReadUsingAlternativeSecurityId-NoError** technical profile includes the **AAD-UserReadUsingAlternativeSecurityId**. This technical profile sets the **RaiseErrorIfClaimsPrincipalDoesNotExist** metadata item to `true`, and raises an error if a social account does not exist in the directory. **AAD-UserReadUsingAlternativeSecurityId-NoError** overrides this behavior and disables the error message if the user has not existed.
61+
## Technical profile inclusion
62+
63+
A technical profile can include another technical profile to change settings or add new functionality. The `IncludeTechnicalProfile` element is a reference to the base technical profile from which a technical profile is derived. There is no limit on the number of levels.
64+
65+
For example, the **AAD-UserReadUsingAlternativeSecurityId-NoError** technical profile includes the **AAD-UserReadUsingAlternativeSecurityId**. This technical profile sets the `RaiseErrorIfClaimsPrincipalDoesNotExist` metadata item to `true`, and raises an error if a social account does not exist in the directory. **AAD-UserReadUsingAlternativeSecurityId-NoError** overrides this behavior, and disables that error message.
6266

6367
```XML
6468
<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId-NoError">
@@ -93,7 +97,7 @@ For example, the **AAD-UserReadUsingAlternativeSecurityId-NoError** technical pr
9397
</TechnicalProfile>
9498
```
9599

96-
Both **AAD-UserReadUsingAlternativeSecurityId-NoError** and **AAD-UserReadUsingAlternativeSecurityId** don't specify the required **Protocol** element because it's specified in the **AAD-Common** technical profile.
100+
Both **AAD-UserReadUsingAlternativeSecurityId-NoError** and **AAD-UserReadUsingAlternativeSecurityId** don't specify the required **Protocol** element, because it's specified in the **AAD-Common** technical profile.
97101

98102
```XML
99103
<TechnicalProfile Id="AAD-Common">
@@ -102,16 +106,3 @@ Both **AAD-UserReadUsingAlternativeSecurityId-NoError** and **AAD-UserReadUsing
102106
...
103107
</TechnicalProfile>
104108
```
105-
106-
A technical profile may include or inherit another technical profile, which may include another one. There is no limit on the number of levels. Depending on the business requirements, your user journey may call **AAD-UserReadUsingAlternativeSecurityId** that raises an error if a user social account doesn't exist, or **AAD-UserReadUsingAlternativeSecurityId-NoError** which doesn't raise an error.
107-
108-
109-
110-
111-
112-
113-
114-
115-
116-
117-

0 commit comments

Comments
 (0)