Skip to content

Commit d80160b

Browse files
committed
Merge branch 'master' of https://github.com/MicrosoftDocs/azure-docs-pr into ultraLimFixes
2 parents bb2de2d + 1f89647 commit d80160b

File tree

206 files changed

+3855
-1526
lines changed

Some content is hidden

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

206 files changed

+3855
-1526
lines changed

articles/active-directory-b2c/claim-resolver-overview.md

Lines changed: 44 additions & 34 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/04/2021
12+
ms.date: 12/12/2021
1313
ms.author: kengaderdus
1414
ms.subservice: B2C
1515
---
@@ -36,11 +36,9 @@ In the technical profile, map the claim resolver to the claim type. Azure AD B2C
3636
<InputClaim ClaimTypeReferenceId="correlationId" DefaultValue="{Context:CorrelationId}" />
3737
```
3838

39-
## Claim resolver types
39+
## Culture
4040

41-
The following sections list available claim resolvers.
42-
43-
### Culture
41+
The following table lists the claim resolvers with information about the language used in the authorization request:
4442

4543
| Claim | Description | Example |
4644
| ----- | ----------- | --------|
@@ -49,7 +47,9 @@ The following sections list available claim resolvers.
4947
| {Culture:RegionName} | The two letter ISO code for the region. | US |
5048
| {Culture:RFC5646} | The RFC5646 language code. | en-US |
5149

52-
### Policy
50+
## Policy
51+
52+
The following table lists the claim resolvers with information about the policy used in the authorization request:
5353

5454
| Claim | Description | Example |
5555
| ----- | ----------- | --------|
@@ -58,43 +58,49 @@ The following sections list available claim resolvers.
5858
| {Policy:TenantObjectId} | The tenant object ID of the relying party policy. | 00000000-0000-0000-0000-000000000000 |
5959
| {Policy:TrustFrameworkTenantId} | The tenant ID of the trust framework. | your-tenant.onmicrosoft.com |
6060

61-
### OpenID Connect
6261

63-
| Claim | Description | Example |
64-
| ----- | ----------- | --------|
65-
| {OIDC:AuthenticationContextReferences} |The `acr_values` query string parameter. | N/A |
66-
| {OIDC:ClientId} |The `client_id` query string parameter. | 00000000-0000-0000-0000-000000000000 |
67-
| {OIDC:DomainHint} |The `domain_hint` query string parameter. | facebook.com |
68-
| {OIDC:LoginHint} | The `login_hint` query string parameter. | [email protected] |
69-
| {OIDC:MaxAge} | The `max_age`. | N/A |
70-
| {OIDC:Nonce} |The `Nonce` query string parameter. | defaultNonce |
71-
| {OIDC:Password}| The [resource owner password credentials flow](add-ropc-policy.md) user's password.| password1|
72-
| {OIDC:Prompt} | The `prompt` query string parameter. | login |
73-
| {OIDC:RedirectUri} |The `redirect_uri` query string parameter. | https://jwt.ms |
74-
| {OIDC:Resource} |The `resource` query string parameter. | N/A |
75-
| {OIDC:Scope} |The `scope` query string parameter. | openid |
76-
| {OIDC:Username}| The [resource owner password credentials flow](add-ropc-policy.md) user's username.| [email protected]|
62+
## Context
7763

78-
### Context
64+
The following table lists the contextual claim resolvers of the authorization request:
7965

8066
| Claim | Description | Example |
8167
| ----- | ----------- | --------|
8268
| {Context:BuildNumber} | The Identity Experience Framework version (build number). | 1.0.507.0 |
8369
| {Context:CorrelationId} | The correlation ID. | 00000000-0000-0000-0000-000000000000 |
84-
| {Context:DateTimeInUtc} |The date time in UTC. | 10/10/2018 12:00:00 PM |
70+
| {Context:DateTimeInUtc} |The date time in UTC. | 10/10/2021 12:00:00 PM |
8571
| {Context:DeploymentMode} |The policy deployment mode. | Production |
8672
| {Context:HostName} | The host name of the current request. | contoso.b2clogin.com |
8773
| {Context:IPAddress} | The user IP address. | 11.111.111.11 |
8874
| {Context:KMSI} | Indicates whether [Keep me signed in](session-behavior.md?pivots=b2c-custom-policy#enable-keep-me-signed-in-kmsi) checkbox is selected. | true |
8975

90-
### Claims
76+
## Claims
77+
78+
This section describes how to get a claim value as a claim resolver.
9179

9280
| Claim | Description | Example |
9381
| ----- | ----------- | --------|
94-
| {Claim:claim type} | An identifier of a claim type already defined in the ClaimsSchema section in the policy file or parent policy file. For example: `{Claim:displayName}`, or `{Claim:objectId}`. | A claim type value.|
82+
| {Claim:claim type} | An identifier of a claim type already defined in the [ClaimsSchema](claimsschema.md) section in the policy file or parent policy file. For example: `{Claim:displayName}`, or `{Claim:objectId}`. | A claim type value.|
83+
84+
## OpenID Connect
9585

86+
The following table lists the claim resolvers with information about the OpenID Connect authorization request:
87+
88+
| Claim | Description | Example |
89+
| ----- | ----------- | --------|
90+
| {OIDC:AuthenticationContextReferences} |The `acr_values` query string parameter. | N/A |
91+
| {OIDC:ClientId} |The `client_id` query string parameter. | 00000000-0000-0000-0000-000000000000 |
92+
| {OIDC:DomainHint} |The `domain_hint` query string parameter. | facebook.com |
93+
| {OIDC:LoginHint} | The `login_hint` query string parameter. | [email protected] |
94+
| {OIDC:MaxAge} | The `max_age`. | N/A |
95+
| {OIDC:Nonce} |The `Nonce` query string parameter. | defaultNonce |
96+
| {OIDC:Password}| The [resource owner password credentials flow](add-ropc-policy.md) user's password.| password1|
97+
| {OIDC:Prompt} | The `prompt` query string parameter. | login |
98+
| {OIDC:RedirectUri} |The `redirect_uri` query string parameter. | https://jwt.ms |
99+
| {OIDC:Resource} |The `resource` query string parameter. | N/A |
100+
| {OIDC:Scope} |The `scope` query string parameter. | openid |
101+
| {OIDC:Username}| The [resource owner password credentials flow](add-ropc-policy.md) user's username.| [email protected]|
96102

97-
### OAuth2 key-value parameters
103+
## OAuth2 key-value parameters
98104

99105
Any parameter name included as part of an OIDC or OAuth2 request can be mapped to a claim in the user journey. For example, the request from the application might include a query string parameter with a name of `app_session`, `loyalty_number`, or any custom query string.
100106

@@ -105,15 +111,9 @@ Any parameter name included as part of an OIDC or OAuth2 request can be mapped t
105111
| {OAUTH-KV:loyalty_number} | A query string parameter. | 1234 |
106112
| {OAUTH-KV:any custom query string} | A query string parameter. | N/A |
107113

108-
### OAuth2
109-
110-
| Claim | Description | Example |
111-
| ----- | ----------------------- | --------|
112-
| {oauth2:access_token} | The access token. | N/A |
113-
| {oauth2:refresh_token} | The refresh token. | N/A |
114-
114+
## SAML
115115

116-
### SAML
116+
The following table lists the claim resolvers with information about the SAML authorization request:
117117

118118
| Claim | Description | Example |
119119
| ----- | ----------- | --------|
@@ -125,6 +125,16 @@ Any parameter name included as part of an OIDC or OAuth2 request can be mapped t
125125
| {SAML:ProviderName} | The `ProviderName` attribute value, from the `AuthnRequest` element of the SAML request.| Contoso.com |
126126
| {SAML:RelayState} | The `RelayState` query string parameter.|
127127
| {SAML:Subject} | The `Subject` from the NameId element of the SAML AuthN request.|
128+
| {SAML:Binding} | The `ProtocolBinding` attribute value, from the `AuthnRequest` element of the SAML request. | urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST |
129+
130+
## OAuth2 identity provider
131+
132+
The following table lists the [OAuth2 identity provider](oauth2-technical-profile.md) claim resolvers:
133+
134+
| Claim | Description | Example |
135+
| ----- | ----------------------- | --------|
136+
| {oauth2:access_token} | The access token. | N/A |
137+
| {oauth2:refresh_token} | The refresh token. | N/A |
128138

129139
## Using claim resolvers
130140

articles/active-directory/develop/tutorial-v2-nodejs-console.md

Lines changed: 54 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ manager: CelesteDG
99
ms.service: active-directory
1010
ms.subservice: develop
1111
ms.topic: tutorial
12-
ms.date: 02/17/2021
12+
ms.date: 12/12/2021
1313
ms.author: marsma
1414
---
1515

@@ -45,63 +45,75 @@ Use the following settings for your app registration:
4545

4646
## Create the project
4747

48-
Create a folder to host your application, for example *NodeConsoleApp*.
4948

50-
1. First, change to your project directory in your terminal and then run the following NPM commands:
49+
1. Start by creating a directory for this Node.js tutorial project. For example, *NodeConsoleApp*.
5150

52-
```console
51+
1. In your terminal, change into the directory you created (the project root), and then run the following commands:
52+
53+
```console
5354
npm init -y
5455
npm install --save dotenv yargs axios @azure/msal-node
55-
```
56+
```
5657

57-
2. Next, create a folder named *bin*. Then, inside this folder, create file named *index.js* and add the following code:
58+
1. Next, edit the *package.json* file in the project root and prefix the value of `main` with `bin/`, like this:
5859

59-
```JavaScript
60-
#!/usr/bin/env node
60+
```json
61+
"main": "bin/index.js",
62+
```
6163

62-
// read in env settings
63-
require('dotenv').config();
64+
1. Now create the *bin* directory, and inside *bin*, add the following code to a new file named *index.js*:
6465

65-
const yargs = require('yargs');
66+
```JavaScript
67+
#!/usr/bin/env node
6668

67-
const fetch = require('./fetch');
68-
const auth = require('./auth');
69+
// read in env settings
70+
require('dotenv').config();
6971

70-
const options = yargs
71-
.usage('Usage: --op <operation_name>')
72-
.option('op', { alias: 'operation', describe: 'operation name', type: 'string', demandOption: true })
73-
.argv;
72+
const yargs = require('yargs');
7473

75-
async function main() {
76-
console.log(`You have selected: ${options.op}`);
74+
const fetch = require('./fetch');
75+
const auth = require('./auth');
7776

78-
switch (yargs.argv['op']) {
79-
case 'getUsers':
77+
const options = yargs
78+
.usage('Usage: --op <operation_name>')
79+
.option('op', { alias: 'operation', describe: 'operation name', type: 'string', demandOption: true })
80+
.argv;
8081

81-
try {
82-
// here we get an access token
83-
const authResponse = await auth.getToken(auth.tokenRequest);
82+
async function main() {
83+
console.log(`You have selected: ${options.op}`);
8484

85-
// call the web API with the access token
86-
const users = await fetch.callApi(auth.apiConfig.uri, authResponse.accessToken);
85+
switch (yargs.argv['op']) {
86+
case 'getUsers':
8787

88-
// display result
89-
console.log(users);
90-
} catch (error) {
91-
console.log(error);
92-
}
88+
try {
89+
// here we get an access token
90+
const authResponse = await auth.getToken(auth.tokenRequest);
9391

94-
break;
95-
default:
96-
console.log('Select a Graph operation first');
97-
break;
98-
}
99-
};
92+
// call the web API with the access token
93+
const users = await fetch.callApi(auth.apiConfig.uri, authResponse.accessToken);
10094

101-
main();
102-
```
95+
// display result
96+
console.log(users);
97+
} catch (error) {
98+
console.log(error);
99+
}
100+
101+
break;
102+
default:
103+
console.log('Select a Graph operation first');
104+
break;
105+
}
106+
};
107+
108+
main();
109+
```
110+
111+
The *index.js* file you just created references two other node modules that you'll create next:
112+
113+
- *auth.js* - Uses MSAL Node for acquiring access tokens from the Microsoft identity platform.
114+
- *fetch.js* - Requests data from the Microsoft Graph API by including access tokens (acquired in *auth.js*) in HTTP requests to the API.
103115

104-
This file references two other node modules: *auth.js* which contains an implementation of MSAL Node for acquiring access tokens, and *fetch.js* which contains a method for making an HTTP request to Microsoft Graph API with an access token. After completing the rest of the tutorial, the file and folder structure of your project should look similar to the following:
116+
At the end of the tutorial, your project's file and directory structure should look similar to this:
105117

106118
```
107119
NodeConsoleApp/
@@ -115,7 +127,7 @@ NodeConsoleApp/
115127
116128
## Add authentication logic
117129
118-
Inside the *bin* folder, create another file named *auth.js* and add the following code for acquiring an access token to present when calling the Microsoft Graph API.
130+
Inside the *bin* directory, add the following code to a new file named *auth.js*. The code in *auth.js* acquires an access token from the Microsoft identity platform for including in Microsoft Graph API requests.
119131
120132
```JavaScript
121133
const msal = require('@azure/msal-node');
@@ -128,7 +140,7 @@ const msal = require('@azure/msal-node');
128140
const msalConfig = {
129141
auth: {
130142
clientId: process.env.CLIENT_ID,
131-
authority: process.env.AAD_ENDPOINT + process.env.TENANT_ID,
143+
authority: process.env.AAD_ENDPOINT + '/' + process.env.TENANT_ID,
132144
clientSecret: process.env.CLIENT_SECRET,
133145
}
134146
};

articles/active-directory/fundamentals/security-operations-applications.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ Alert any time these changes are detected outside of approved change management
207207

208208
The following are links to useful resources:
209209

210-
* Github Azure AD toolkit - [https://github.com/microsoft/AzureADToolkit](https://github.com/microsoft/AzureADToolkit)
210+
* GitHub Azure AD toolkit - [https://github.com/microsoft/AzureADToolkit](https://github.com/microsoft/AzureADToolkit)
211211

212212
* Azure Key Vault security overview and security guidance - [Azure Key Vault security overview](../../key-vault/general/security-features.md)
213213

articles/active-directory/hybrid/how-to-connect-install-custom.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ When you select the domain that you want to federate, Azure AD Connect provides
347347

348348
## Configuring federation with PingFederate
349349
You can configure PingFederate with Azure AD Connect in just a few clicks. The following prerequisites are required:
350-
- PingFederate 8.4 or later. For more information, see [PingFederate integration with Azure Active Directory and Microsoft 365](https://docs.pingidentity.com/bundle/O365IG20_sm_integrationGuide/page/O365IG_c_integrationGuide.html).
350+
- PingFederate 8.4 or later. For more information, see [PingFederate integration with Azure Active Directory and Microsoft 365](https://docs.pingidentity.com/bundle/pingfederate-azuread-office365-integration/).
351351
- A TLS/SSL certificate for the federation service name that you intend to use (for example, sts.contoso.com).
352352

353353
### Verify the domain

articles/active-directory/hybrid/tshoot-connect-sync-errors.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,8 @@ Below are some examples which demonstrate the different weighs of attributes lik
218218
3. If a similar synchronized user with 10 UserCertificates plus for instance 4 subscriptions assigned (with all Service Plans enabled), the maximum number of ProxyAddresses decreases to 311.
219219
4. Now let’s take the above user which already holds the maximum number of ProxyAddresses, and say you need to add 1 more smtp address - to achieve 312 ProxyAddresses you would need to remove at least 3 UserCertificates (depending on the size of the certificate).
220220

221-
> [NOTE] These numbers can vary slightly. As a rule of thumb, it is safer to assume that the limit of smtp addresses in ProxyAddresses is approximately 300 addresses to leave the room for the future growth of the object and its populated attributes.
221+
>[!NOTE]
222+
> These numbers can vary slightly. As a rule of thumb, it is safer to assume that the limit of smtp addresses in ProxyAddresses is approximately 300 addresses to leave the room for the future growth of the object and its populated attributes.
222223
223224
### How to fix
224225

articles/active-directory/privileged-identity-management/pim-deployment-plan.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Plan a Privileged Identity Management deployment? - Azure AD | Microsoft Docs
2+
title: Plan a Privileged Identity Management deployment - Azure AD | Microsoft Docs
33
description: Learn how to deploy Privileged Identity Management (PIM) in your Azure AD organization.
44
services: active-directory
55
documentationcenter: ''
@@ -10,7 +10,7 @@ ms.service: active-directory
1010
ms.workload: identity
1111
ms.subservice: pim
1212
ms.topic: conceptual
13-
ms.date: 11/23/2021
13+
ms.date: 12/10/2021
1414
ms.author: curtand
1515
ms.reviewer: shaunliu
1616
ms.custom: pim

articles/active-directory/roles/TOC.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
href: admin-units-add-manage-users.md
8181
- name: Add and manage groups
8282
href: admin-units-add-manage-groups.md
83-
- name: Assign a role with scope
83+
- name: Assign roles with scope
8484
href: admin-units-assign-roles.md
8585
- name: Delegate
8686
items:

0 commit comments

Comments
 (0)