Skip to content

Commit b6f3cca

Browse files
authored
Merge pull request #134622 from MicrosoftDocs/master
10/20 AM Publish
2 parents 8d8deb9 + 26db19e commit b6f3cca

File tree

384 files changed

+5254
-3722
lines changed

Some content is hidden

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

384 files changed

+5254
-3722
lines changed

.openpublishing.redirection.json

Lines changed: 171 additions & 56 deletions
Large diffs are not rendered by default.

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

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ You can use the OAuth 2.0 authorization code grant in apps installed on a device
2020

2121
The OAuth 2.0 authorization code flow is described in [section 4.1 of the OAuth 2.0 specification](https://tools.ietf.org/html/rfc6749). You can use it for authentication and authorization in most [application types](application-types.md), including web applications, single-page applications, and natively installed applications. You can use the OAuth 2.0 authorization code flow to securely acquire access tokens and refresh tokens for your applications, which can be used to access resources that are secured by an [authorization server](protocols-overview.md). The refresh token allows the client to acquire new access (and refresh) tokens once the access token expires, typically after one hour.
2222

23-
<!-- This article focuses on the **public clients** OAuth 2.0 authorization code flow. A public client is any client application that cannot be trusted to securely maintain the integrity of a secret password. This includes single-page applications, mobile apps, desktop applications, and essentially any application that runs on a device and needs to get access tokens. -->
23+
This article focuses on the **public clients** OAuth 2.0 authorization code flow. A public client is any client application that cannot be trusted to securely maintain the integrity of a secret password. This includes single-page applications, mobile apps, desktop applications, and essentially any application that doesn't run on a server.
2424

2525
> [!NOTE]
2626
> To add identity management to a web app by using Azure AD B2C, use [OpenID Connect](openid-connect.md) instead of OAuth 2.0.
@@ -35,16 +35,10 @@ To try the HTTP requests in this article:
3535

3636
## Redirect URI setup required for single-page apps
3737

38-
The authorization code flow for single page applications requires some additional setup. Follow the instructions for [creating your single-page application](tutorial-register-spa.md) to correctly mark your redirect URI as enabled for CORS. To update an existing redirect URI to enable CORS, open the manifest editor and set the `type` field for your redirect URI to `spa` in the `replyUrlsWithType` section. You can also click on the redirect URI in the "Web" section of the Authentication tab, and select the URIs you want to migrate to using the authorization code flow.
38+
The authorization code flow for single page applications requires some additional setup. Follow the instructions for [creating your single-page application](tutorial-register-spa.md) to correctly mark your redirect URI as enabled for CORS. To update an existing redirect URI to enable CORS, you can click on the migrate prompt in the "Web" section of the **App registration**'s **Authentication** tab. Alternatively, you can open the **App registrations manifest editor** and set the `type` field for your redirect URI to `spa` in the `replyUrlsWithType` section.
3939

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

42-
If you attempt to use the authorization code flow and see this error:
43-
44-
`access to XMLHttpRequest at 'https://login.microsoftonline.com/common/v2.0/oauth2/token' from origin 'yourApp.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.`
45-
46-
Then you need to visit your app registration and update the redirect URI for your app to type `spa`.
47-
4842
## 1. Get an authorization code
4943
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.
5044

articles/active-directory-b2c/tutorial-register-applications.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ ms.subservice: B2C
1919

2020
Before your [applications](application-types.md) can interact with Azure Active Directory B2C (Azure AD B2C), they must be registered in a tenant that you manage. This tutorial shows you how to register a web application using the Azure portal.
2121

22-
A "web application" refers to a traditional web application that perform most of the application logic on the server. They may be built using frameworks like ASP.NET Core, Maven (Java), Flask (Python), and Express (Node.js).
22+
A "web application" refers to a traditional web application that performs most of the application logic on the server. They may be built using frameworks like ASP.NET Core, Maven (Java), Flask (Python), and Express (Node.js).
2323

2424
> [!IMPORTANT]
25-
> If you're using a **single-page application ("SPA")** instead (e.g. using Angular, Vue, or React), learn [how to register a single-page application](tutorial-register-spa.md).
25+
> If you're using a single-page application ("SPA") instead (e.g. using Angular, Vue, or React), learn [how to register a single-page application](tutorial-register-spa.md).
2626
>
27-
> If you're using a **native app** instead (e.g. iOS, Android, mobile & desktop), learn [how to register a native client application](add-native-application.md).
27+
> If you're using a native app instead (e.g. iOS, Android, mobile & desktop), learn [how to register a native client application](add-native-application.md).
2828
2929
## Prerequisites
3030
If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin.
@@ -63,13 +63,11 @@ To register a web application in your Azure AD B2C tenant, you can use our new u
6363
1. Select **Applications (Legacy)**, and then select **Add**.
6464
1. Enter a name for the application. For example, *webapp1*.
6565
1. For **Include web app/ web API**, select **Yes**.
66-
1. For **Reply URL**, enter an endpoint where Azure AD B2C should return any tokens that your application requests. For example, you could set it to listen locally at `https://localhost:44316`. If you don't yet know the port number, you can enter a placeholder value and change it later.
66+
1. For **Reply URL**, enter an endpoint where Azure AD B2C should return any tokens that your application requests. For example, you could set it to listen locally at `http://localhost:5000`. You can add and modify redirect URIs in your registered applications at any time.
6767

68-
For testing purposes like this tutorial you can set it to `https://jwt.ms` which displays the contents of a token for inspection. For this tutorial, set the **Reply URL** to `https://jwt.ms`.
69-
70-
The following restrictions apply to reply URLs:
68+
The following restrictions apply to redirect URIs:
7169

72-
* The reply URL must begin with the scheme `https`.
70+
* The reply URL must begin with the scheme `https`, unless using `localhost`.
7371
* The reply URL is case-sensitive. Its case must match the case of the URL path of your running application. For example, if your application includes as part of its path `.../abc/response-oidc`, do not specify `.../ABC/response-oidc` in the reply URL. Because the web browser treats paths as case-sensitive, cookies associated with `.../abc/response-oidc` may be excluded if redirected to the case-mismatched `.../ABC/response-oidc` URL.
7472

7573
1. Select **Create** to complete the application registration.

articles/active-directory-b2c/tutorial-register-spa.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@ If you haven't already created your own [Azure AD B2C Tenant](tutorial-create-te
5757
1. Under **Supported account types**, select **Accounts in any identity provider or organizational directory (for authenticating users with user flows)**
5858
1. Under **Redirect URI**, select **Single-page application (SPA)**, and then enter `https://jwt.ms` in the URL text box.
5959

60-
The redirect URI is the endpoint to which the user is sent by the authorization server (Azure AD B2C, in this case) after completing its interaction with the user, and to which an access token or authorization code is sent upon successful authorization. In a production application, it's typically a publicly accessible endpoint where your app is running, like `https://contoso.com/auth-response`. For testing purposes like this tutorial, you can set it to `https://jwt.ms`, a Microsoft-owned web application that displays the decoded contents of a token (the contents of the token never leave your browser). During app development, you might add the endpoint where your application listens locally, like `https://localhost:5000`. You can add and modify redirect URIs in your registered applications at any time.
60+
The redirect URI is the endpoint to which the user is sent by the authorization server (Azure AD B2C, in this case) after completing its interaction with the user, and to which an access token or authorization code is sent upon successful authorization. In a production application, it's typically a publicly accessible endpoint where your app is running, like `https://contoso.com/auth-response`. For testing purposes like this tutorial, you can set it to `https://jwt.ms`, a Microsoft-owned web application that displays the decoded contents of a token (the contents of the token never leave your browser). During app development, you might add the endpoint where your application listens locally, like `http://localhost:5000`. You can add and modify redirect URIs in your registered applications at any time.
6161

6262
The following restrictions apply to redirect URIs:
6363

64-
* The reply URL must begin with the scheme `https`.
64+
* The reply URL must begin with the scheme `https`, unless using `localhost`.
6565
* The reply URL is case-sensitive. Its case must match the case of the URL path of your running application. For example, if your application includes as part of its path `.../abc/response-oidc`, do not specify `.../ABC/response-oidc` in the reply URL. Because the web browser treats paths as case-sensitive, cookies associated with `.../abc/response-oidc` may be excluded if redirected to the case-mismatched `.../ABC/response-oidc` URL.
6666

6767
1. Under **Permissions**, select the *Grant admin consent to openid and offline_access permissions* check box.

articles/active-directory-domain-services/join-suse-linux-vm.md

Lines changed: 122 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ To join the managed domain using **winbind** and the *Windows Domain Membership*
161161

162162
1. If you want to change the UID and GID ranges for the Samba users and groups, select *Expert Settings*.
163163

164-
1. Configure NTP time synchronization for your managed domain by selecting *NTP Configuration*. Enter the IP addresses of the managed domain. These IP addresses are shown on the *Properties* window in the Azure portal for your managed domain, such as *10.0.2.4* and *10.0.2.5*.
164+
1. Configure Network Time Protocol (NTP) time synchronization for your managed domain by selecting *NTP Configuration*. Enter the IP addresses of the managed domain. These IP addresses are shown on the *Properties* window in the Azure portal for your managed domain, such as *10.0.2.4* and *10.0.2.5*.
165165

166166
1. Select **OK** and confirm the domain join when prompted for it.
167167

@@ -171,6 +171,127 @@ To join the managed domain using **winbind** and the *Windows Domain Membership*
171171

172172
After you have joined the managed domain, you can sign in to it from your workstation using the display manager of your desktop or the console.
173173

174+
## Join VM to the managed domain using Winbind from the YaST command line interface
175+
176+
To join the managed domain using **winbind** and the *YaST command line interface*:
177+
178+
* Join the domain:
179+
180+
```console
181+
sudo yast samba-client joindomain domain=aaddscontoso.com user=<admin> password=<admin password> machine=<(optional) machine account>
182+
```
183+
184+
## Join VM to the managed domain using Winbind from the terminal
185+
186+
To join the managed domain using **winbind** and the *`samba net` command*:
187+
188+
1. Install kerberos client and samba-winbind:
189+
190+
```console
191+
sudo zypper in krb5-client samba-winbind
192+
```
193+
194+
2. Edit the configuration files:
195+
196+
* /etc/samba/smb.conf
197+
198+
```ini
199+
[global]
200+
workgroup = AADDSCONTOSO
201+
usershare allow guests = NO #disallow guests from sharing
202+
idmap config * : backend = tdb
203+
idmap config * : range = 1000000-1999999
204+
idmap config AADDSCONTOSO : backend = rid
205+
idmap config AADDSCONTOSO : range = 5000000-5999999
206+
kerberos method = secrets and keytab
207+
realm = AADDSCONTOSO.COM
208+
security = ADS
209+
template homedir = /home/%D/%U
210+
template shell = /bin/bash
211+
winbind offline logon = yes
212+
winbind refresh tickets = yes
213+
```
214+
215+
* /etc/krb5.conf
216+
217+
```ini
218+
[libdefaults]
219+
default_realm = AADDSCONTOSO.COM
220+
clockskew = 300
221+
[realms]
222+
AADDSCONTOSO.COM = {
223+
kdc = PDC.AADDSCONTOSO.COM
224+
default_domain = AADDSCONTOSO.COM
225+
admin_server = PDC.AADDSCONTOSO.COM
226+
}
227+
[domain_realm]
228+
.aaddscontoso.com = AADDSCONTOSO.COM
229+
[appdefaults]
230+
pam = {
231+
ticket_lifetime = 1d
232+
renew_lifetime = 1d
233+
forwardable = true
234+
proxiable = false
235+
minimum_uid = 1
236+
}
237+
```
238+
239+
* /etc/security/pam_winbind.conf
240+
241+
```ini
242+
[global]
243+
cached_login = yes
244+
krb5_auth = yes
245+
krb5_ccache_type = FILE
246+
warn_pwd_expire = 14
247+
```
248+
249+
* /etc/nsswitch.conf
250+
251+
```ini
252+
passwd: compat winbind
253+
group: compat winbind
254+
```
255+
256+
3. Check that the date and time in Azure AD and Linux are in sync. You can do this by adding the Azure AD server to the NTP service:
257+
258+
1. Add the following line to /etc/ntp.conf:
259+
260+
```console
261+
server aaddscontoso.com
262+
```
263+
264+
1. Restart the NTP service:
265+
266+
```console
267+
sudo systemctl restart ntpd
268+
```
269+
270+
4. Join the domain:
271+
272+
```console
273+
sudo net ads join -U Administrator%Mypassword
274+
```
275+
276+
5. Enable winbind as a login source in the Linux Pluggable Authentication Modules (PAM):
277+
278+
```console
279+
pam-config --add --winbind
280+
```
281+
282+
6. Enable automatic creation of home directories so that users can log in:
283+
284+
```console
285+
pam-config -a --mkhomedir
286+
```
287+
288+
7. Start and enable the winbind service:
289+
290+
```console
291+
sudo systemctl enable winbind
292+
sudo systemctl start winbind
293+
```
294+
174295
## Allow password authentication for SSH
175296

176297
By default, users can only sign in to a VM using SSH public key-based authentication. Password-based authentication fails. When you join the VM to a managed domain, those domain accounts need to use password-based authentication. Update the SSH configuration to allow password-based authentication as follows.

articles/active-directory/develop/active-directory-claims-mapping.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ Based on the method chosen, a set of inputs and outputs is expected. Define the
414414

415415
### Custom signing key
416416

417-
A custom signing key must be assigned to the service principal object for a claims mapping policy to take effect. This ensures acknowledgment that tokens have been modified by the creator of the claims mapping policy and protects applications from claims mapping policies created by malicious actors. In order to add a custom signing key, you can use the Azure PowerShell cmdlet `new-azureadapplicationkeycredential` to create a symmetric key credential for your Application object. For more information on this Azure PowerShell cmdlet, see [New-AzureADApplicationKeyCredential](/powerShell/module/Azuread/New-AzureADApplicationKeyCredential?view=azureadps-2.0).
417+
A custom signing key must be assigned to the service principal object for a claims mapping policy to take effect. This ensures acknowledgment that tokens have been modified by the creator of the claims mapping policy and protects applications from claims mapping policies created by malicious actors. In order to add a custom signing key, you can use the Azure PowerShell cmdlet [`New-AzureADApplicationKeyCredential`](/powerShell/module/Azuread/New-AzureADApplicationKeyCredential) to create a certificate key credential for your Application object.
418418

419419
Apps that have claims mapping enabled must validate their token signing keys by appending `appid={client_id}` to their [OpenID Connect metadata requests](v2-protocols-oidc.md#fetch-the-openid-connect-metadata-document). Below is the format of the OpenID Connect metadata document you should use:
420420

articles/active-directory/develop/active-directory-saml-claims-customization.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ To add a claim condition:
162162
3. Select the group(s) to which the user should belong. You can select up to 50 unique groups across all claims for a given application.
163163
4. Select the **Source** where the claim is going to retrieve its value. You can select a user attribute from the source attribute dropdown or apply a transformation to the user attribute before emitting it as a claim.
164164

165-
The order in which you add the conditions are important. Azure AD evaluates the conditions from top to bottom to decide which value to emit in the claim.
165+
The order in which you add the conditions are important. Azure AD evaluates the conditions from top to bottom to decide which value to emit in the claim. The last value which matches the expression will be emitted in the claim.
166166

167167
For example, Britta Simon is a guest user in the Contoso tenant. She belongs to another organization that also uses Azure AD. Given the below configuration for the Fabrikam application, when Britta tries to sign in to Fabrikam, Microsoft identity platform will evaluate the conditions as follow.
168168

6.44 KB
Loading
6.39 KB
Loading
6.61 KB
Loading

0 commit comments

Comments
 (0)