Skip to content

Commit 090ecc3

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into rolyon-rbac-rest-api-version-2022-04-01-arm
2 parents 36273b5 + b4f3aeb commit 090ecc3

File tree

1,671 files changed

+32078
-27947
lines changed

Some content is hidden

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

1,671 files changed

+32078
-27947
lines changed

.openpublishing.redirection.baremetal-infrastructure.json

Lines changed: 81 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,87 @@
4949
"source_path": "articles/baremetal-infrastructure/workloads/nc2-public-preview/use-cases-and-supported-scenarios.md",
5050
"redirect_url": "/azure/baremetal-infrastructure/workloads/nc2-on-azure/use-cases-and-supported-scenarios",
5151
"redirect_document_id": false
52-
}
52+
},
53+
{
54+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/concepts-oracle-high-availability.md",
55+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
56+
"redirect_document_id": false
57+
},
58+
{
59+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/options-considerations-high-availability.md",
60+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
61+
"redirect_document_id": false
62+
},
63+
{
64+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/configure-snapcenter-oracle-baremetal.md",
65+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
66+
"redirect_document_id": false
67+
},
68+
{
69+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/create-on-demand-backup-oracle-baremetal.md",
70+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
71+
"redirect_document_id": false
72+
},
73+
{
74+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/netapp-snapcenter-integration-oracle-baremetal.md",
75+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
76+
"redirect_document_id": false
77+
},
78+
{
79+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/oracle-baremetal-architecture.md",
80+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
81+
"redirect_document_id": false
82+
},
83+
{
84+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/oracle-baremetal-ethernet.md",
85+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
86+
"redirect_document_id": false
87+
},
88+
{
89+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/oracle-baremetal-overview.md",
90+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
91+
"redirect_document_id": false
92+
},
93+
{
94+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/oracle-baremetal-patching.md",
95+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
96+
"redirect_document_id": false
97+
},
98+
{
99+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/oracle-baremetal-provision.md",
100+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
101+
"redirect_document_id": false
102+
},
103+
{
104+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/oracle-baremetal-skus.md",
105+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
106+
"redirect_document_id": false
107+
},
108+
{
109+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/oracle-baremetal-storage.md",
110+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
111+
"redirect_document_id": false
112+
},
113+
{
114+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/oracle-high-availability-recovery.md",
115+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
116+
"redirect_document_id": false
117+
},
118+
{
119+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/restore-oracle-database-baremetal.md",
120+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
121+
"redirect_document_id": false
122+
},
123+
{
124+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/set-up-snapcenter-to-route-traffic.md",
125+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
126+
"redirect_document_id": false
127+
},
128+
{
129+
"source_path": "articles/baremetal-infrastructure/workloads/oracle/high-availability-features.md",
130+
"redirect_url": "/azure/virtual-machines/workloads/oracle/oracle-overview",
131+
"redirect_document_id": false
132+
}
53133
]
54134
}
55135

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28773,6 +28773,11 @@
2877328773
"source_path": "articles/aks/keda-troubleshoot.md",
2877428774
"redirect_url": "/troubleshoot/azure/azure-kubernetes/troubleshoot-kubernetes-event-driven-autoscaling-add-on?context=/azure/aks/context/aks-context",
2877528775
"redirect_document_id": false
28776+
},
28777+
{
28778+
"source_path_from_root": "/articles/virtual-machines/windows/using-visual-studio-vm.md",
28779+
"redirect_url": "/visualstudio/install/using-visual-studio-vm",
28780+
"redirect_document_id": false
2877628781
}
2877728782

2877828783
]

.openpublishing.redirection.virtual-desktop.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,6 @@
3030
"redirect_url": "/azure/virtual-desktop/rdp-shortpath",
3131
"redirect_document_id": false
3232
},
33-
{
34-
"source_path_from_root": "/articles/virtual-machines/windows/using-visual-studio-vm.md",
35-
"redirect_url": "/visualstudio/install/using-visual-studio-vm",
36-
"redirect_document_id": false
37-
},
3833
{
3934
"source_path": "articles/virtual-desktop/azure-stack-hci-faq.yml",
4035
"redirect_url": "/azure/virtual-desktop/azure-stack-hci",

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ In order to collect the user_agent from client-side, create your own `**ContentD
129129
To customize the user interface, you specify a URL in the `ContentDefinition` element with customized HTML content. In the self-asserted technical profile or orchestration step, you point to that ContentDefinition identifier.
130130

131131

132-
1. Open the `TrustFrameworksExtension.xml` and define a new **ContentDefinition** to customize the [self-asserted technical profile](/azure/active-directory-b2c/self-asserted-technical-profile).
132+
1. Open the `TrustFrameworksExtension.xml` and define a new **ContentDefinition** to customize the [self-asserted technical profile](./self-asserted-technical-profile.md).
133133

134134
1. Find the `BuildingBlocks` element and add the `**api.selfassertedDeduce**` ContentDefinition:
135135

@@ -434,11 +434,11 @@ The **ClaimsSchema** element defines the claim types that can be referenced as p
434434

435435
### Step 6: Add Deduce ClaimsProvider
436436

437-
A **claims provider** is an interface to communicate with different types of parties via its [technical profiles](/azure/active-directory-b2c/technicalprofiles).
437+
A **claims provider** is an interface to communicate with different types of parties via its [technical profiles](./technicalprofiles.md).
438438

439439
- `SelfAsserted-UserAgent` self-asserted technical profile is used to collect user_agent from client-side.
440440

441-
- `deduce_insight_api` technical profile sends data to the Deduce RESTful service in an input claims collection and receives data back in an output claims collection. For more information, see [integrate REST API claims exchanges in your Azure AD B2C custom policy](/azure/active-directory-b2c/api-connectors-overview?pivots=b2c-custom-policy)
441+
- `deduce_insight_api` technical profile sends data to the Deduce RESTful service in an input claims collection and receives data back in an output claims collection. For more information, see [integrate REST API claims exchanges in your Azure AD B2C custom policy](./api-connectors-overview.md?pivots=b2c-custom-policy)
442442

443443
You can define Deduce as a claims provider by adding it to the **ClaimsProvider** element in the extension file of your policy.
444444

@@ -709,4 +709,4 @@ For additional information, review the following articles:
709709

710710
- [Custom policies in Azure AD B2C](./custom-policy-overview.md)
711711

712-
- [Get started with custom policies in Azure AD B2C](./tutorial-create-user-flows.md?pivots=b2c-custom-policy&tabs=applications)
712+
- [Get started with custom policies in Azure AD B2C](./tutorial-create-user-flows.md?pivots=b2c-custom-policy&tabs=applications)

articles/active-directory-domain-services/TOC.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@
123123
href: join-ubuntu-linux-vm.md
124124
- name: SUSE Linux Enterprise
125125
href: join-suse-linux-vm.md
126+
- name: AD authentication through LDAP Linux
127+
items:
128+
- name: Active Directory authentication non domain joined Linux Virtual Machines
129+
href: ad-auth-no-join-linux-vm.md
126130
- name: Deploy applications
127131
items:
128132
- name: Deploy Azure AD Application Proxy
Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
---
2+
title: Active Directory authentication non domain joined Linux Virtual Machines
3+
description: Active Directory authentication non domain joined Linux Virtual Machines.
4+
services: active-directory-ds
5+
author: DevOpsStyle
6+
7+
ms.service: active-directory
8+
ms.subservice: domain-services
9+
ms.workload: identity
10+
ms.topic: how-to
11+
ms.date: 10/12/2022
12+
ms.author: tommasosacco
13+
14+
---
15+
16+
# Active Directory authentication non domain joined Linux Virtual Machines
17+
18+
Currently Linux distribution can work as member of Active Directory domains, which gives them access to the AD authentication system. To take advantage of AD authentication in some cases, we can avoid the AD join. To let users sign in on Azure Linux VM with Active Directory account you have different choices. One possibility is to Join in Active Directory the VM. Another possibility is to base the authentication flow through LDAP to your Active Directory without Join the VM on AD. This article shows you how to authenticate with AD credential on your Linux system (CentosOS) based on LDAP.
19+
20+
## Prerequisites
21+
22+
To complete the authentication flow we assume, you already have:
23+
24+
* An Active Directory Domain Services already configured.
25+
* A Linux VM (for the test we use CentosOS based machine).
26+
* A network infrastructure that allows communication between Active Directory and the Linux VM.
27+
* A dedicated User Account for read AD objects.
28+
* The Linux VM need to have these packages installed:
29+
- sssd
30+
- sssd-tools
31+
- sssd-ldap
32+
- openldap-clients
33+
* An LDAPS Certificate correctly configured on the Linux VM.
34+
* A CA Certificate correctly imported into Certificate Store of the Linux VM (the path varies depending on the Linux distro).
35+
36+
## Active Directory User Configuration
37+
38+
To read Users in your Active Directory Domain Services create a ReadOnlyUser in AD. For create a new user follow the steps below:
39+
40+
1. Connect to your *Domain Controller*.
41+
2. Click *Start*, point to *Administrative Tools*, and then click *Active Directory Users and Computers* to start the Active Directory Users and Computers console.
42+
3. Click the domain name that you created, and then expand the contents.
43+
4. Right-click Users, point to *New*, and then click *User*.
44+
5. Type the first name, last name, and user logon name of the new user, and then click Next. In lab environment we used a user called *ReadOnlyUser*.
45+
6. Type a *new password*, confirm the password, and then click to select one of the following check boxes if needed:
46+
- Users must change password at next logon (recommended for most user)
47+
- User cannot change password
48+
- Password never expires
49+
- Account is disabled (If you disable the account the authentication will fail)
50+
7. Click *Next*.
51+
52+
Review the information that you provided, and if everything is correct, click Finish.
53+
54+
> [!NOTE]
55+
> The lab environment is based on:
56+
> - Windows Server 2016 Domain and Forest Functional Level.
57+
> - Linux client Centos 8.5.
58+
59+
## Linux Virtual Machines Configuration
60+
61+
> [!NOTE]
62+
> You must run these command with sudo permission
63+
64+
On your Linux VM, install the following packages: *sssd sssd-tools sssd-ldap openldap-client*:
65+
66+
```console
67+
yum install -y sssd sssd-tools sssd-ldap openldap-clients
68+
```
69+
70+
After the installation check if LDAP search works. In order to check it try an LDAP search following the example below:
71+
72+
```console
73+
ldapsearch -H ldaps://contoso.com -x \
74+
-D CN=ReadOnlyUser,CN=Users,DC=contoso,DC=com -w Read0nlyuserpassword \
75+
-b CN=Users,DC=contoso,DC=com
76+
```
77+
78+
If the LDAP query works fine, you will obtain an output with some information like follow:
79+
80+
```console
81+
extended LDIF
82+
83+
LDAPv3
84+
base <CN=Users,DC=contoso,DC=com> with scope subtree
85+
filter: (objectclass=*)
86+
requesting: ALL
87+
88+
Users, contoso.com
89+
dn: CN=Users,DC=contoso,DC=com
90+
objectClass: top
91+
objectClass: container
92+
cn: Users
93+
description: Default container for upgraded user accounts
94+
distinguishedName: CN=Users,DC=contoso,DC=com
95+
instanceType: 4
96+
whenCreated: 20220913115340.0Z
97+
whenChanged: 20220913115340.0Z
98+
uSNCreated: 5660
99+
uSNChanged: 5660
100+
showInAdvancedViewOnly: FALSE
101+
name: Users
102+
objectGUID:: i9MABLytKUurB2uTe/dOzg==
103+
systemFlags: -1946157056
104+
objectCategory: CN=Container,CN=Schema,CN=Configuration,DC=contoso,DC=com
105+
isCriticalSystemObject: TRUE
106+
dSCorePropagationData: 20220930113600.0Z
107+
dSCorePropagationData: 20220930113600.0Z
108+
dSCorePropagationData: 20220930113600.0Z
109+
dSCorePropagationData: 20220930113600.0Z
110+
dSCorePropagationData: 16010101000000.0Z
111+
```
112+
113+
> [!NOTE]
114+
> If your get and error run the following command:
115+
>
116+
> ldapsearch -H ldaps://contoso.com -x \
117+
> -D CN=ReadOnlyUser,CN=Users,DC=contoso,DC=com -w Read0nlyuserpassword \
118+
> -b CN=Users,DC=contoso,DC=com -d 3
119+
>
120+
> Troubleshoot according to the output.
121+
122+
## Create sssd.conf file
123+
124+
Create */etc/sssd/sssd.conf* with a content like the following. Remember to update the *ldap_uri*, *ldap_search_base* and *ldap_default_bind_dn*.
125+
126+
Command for file creation:
127+
128+
```console
129+
vi /etc/sssd/sssd.conf
130+
```
131+
132+
Example sssd.conf:
133+
134+
```bash
135+
[sssd]
136+
config_file_version = 2
137+
domains = default
138+
services = nss, pam
139+
full_name_format = %1$s
140+
141+
[nss]
142+
143+
[pam]
144+
145+
[domain/default]
146+
id_provider = ldap
147+
cache_credentials = True
148+
ldap_uri = ldaps://contoso.com
149+
ldap_search_base = CN=Users,DC=contoso,DC=com
150+
ldap_schema = AD
151+
ldap_default_bind_dn = CN=ReadOnlyUser,CN=Users,DC=contoso,DC=com
152+
ldap_default_authtok_type = obfuscated_password
153+
ldap_default_authtok = generated_password
154+
155+
# Obtain the CA root certificate for your LDAPS connection.
156+
ldap_tls_cacert = /etc/pki/tls/cacerts.pem
157+
158+
# This setting disables cert verification.
159+
#ldap_tls_reqcert = allow
160+
161+
# Only if the LDAP directory doesn't provide uidNumber and gidNumber attributes
162+
ldap_id_mapping = True
163+
164+
# Consider setting enumerate=False for very large directories
165+
enumerate = True
166+
167+
# Only needed if LDAP doesn't provide homeDirectory and loginShell attributes
168+
fallback_homedir = /home/%u
169+
default_shell = /bin/bash
170+
access_provider = permit
171+
sudo_provider = ldap
172+
auth_provider = ldap
173+
autofs_provider = ldap
174+
resolver_provider = ldap
175+
176+
```
177+
178+
Save the file with *ESC + wq!* command.
179+
180+
> [!NOTE]
181+
> If you don't have a valid TLS certificate under */etc/pki/tls/* called *cacerts.pem* the bind doesn't work
182+
183+
## Change permission for sssd.conf and create the obfuscated password
184+
185+
Set the permission to sssd.conf to 600 with the following command:
186+
187+
```console
188+
chmod 600 /etc/sssd/sssd.conf
189+
```
190+
191+
After that create an obfuscated password for the Bind DN account. You must insert the Domain password for ReadOnlyUser:
192+
193+
```console
194+
sss_obfuscate --domain default
195+
```
196+
197+
The password will be placed automatically in the configuration file.
198+
199+
## Configure the sssd service
200+
201+
Start the sssd service:
202+
203+
```console
204+
service sssd start
205+
```
206+
207+
Now configure the service with the *authconfig* tool:
208+
209+
```console
210+
authconfig --enablesssd --enablesssdauth --enablemkhomedir --updateall
211+
```
212+
213+
At this point restart the service:
214+
215+
```console
216+
systemctl restart sssd
217+
```
218+
219+
## Test the configuration
220+
221+
The final step is to check that the flow works properly. To check this, try logging in with one of your AD users in Active Directory. We tried with a user called *ADUser*. If the configuration is correct, you will get the following result:
222+
223+
```console
224+
[centosuser@centos8 ~]su - [email protected]
225+
Last login: Wed Oct 12 15:13:39 UTC 2022 on pts/0
226+
[ADUser@Centos8 ~]$ exit
227+
228+
```
229+
Now you are ready to use AD authentication on your Linux VM.
230+
231+
<!-- INTERNAL LINKS -->
232+
[create-azure-ad-tenant]: ../active-directory/fundamentals/sign-up-organization.md
233+
[associate-azure-ad-tenant]: ../active-directory/fundamentals/active-directory-how-subscriptions-associated-directory.md
234+
[create-azure-ad-ds-instance]: tutorial-create-instance.md

0 commit comments

Comments
 (0)