Skip to content

Commit d29b966

Browse files
committed
enforce-sign-in-updates
1 parent a955d1b commit d29b966

File tree

3 files changed

+107
-13
lines changed

3 files changed

+107
-13
lines changed

content/manuals/security/for-admins/enforce-sign-in/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ security features](/manuals/security/for-admins/hardened-desktop/_index.md) for
1818

1919
There are multiple methods for enforcing sign-in, depending on your companies' set up and preferences:
2020
- [Registry key method (Windows only)](methods.md#registry-key-method-windows-only){{< badge color=green text="New" >}}
21+
- [Configuration profiles method (Mac only)](methods.md#configuration-profiles-method-mac-only){{< badge color=green text="New" >}}
2122
- [`.plist` method (Mac only)](methods.md#plist-method-mac-only){{< badge color=green text="New" >}}
2223
- [`registry.json` method (All)](methods.md#registryjson-method-all)
2324

content/manuals/security/for-admins/enforce-sign-in/methods.md

Lines changed: 95 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ To enforce sign-in for Docker Desktop on Windows, you can configure a registry k
2323
2. Create a multi-string value `allowedOrgs`.
2424
> [!IMPORTANT]
2525
>
26-
> Only one entry for `allowedOrgs` is currently supported. If you add more than one value, sign-in enforcement silently fails.
26+
> As of Docker Desktop version 4.36 and later, you can add more than one organization. With Docker Desktop version 4.35 and earlier, if you add more than one organization sign-in enforcement silently fails.
2727
3. Use your organization's name, all lowercase as string data.
2828
4. Restart Docker Desktop.
2929
5. When Docker Desktop restarts, verify that the **Sign in required!** prompt appears.
@@ -43,11 +43,84 @@ The following example outlines how to deploy a registry key to enforce sign-in o
4343
3. Within the GPO, navigate to **Computer Configuration** and select **Preferences**.
4444
4. Select **Windows Settings** then **Registry**.
4545
5. To add the registry item, right-click on the **Registry** node, select **New**, and then **Registry Item**.
46-
6. Configure the new registry item to match the registry script you created, specifying the action as **Update**. Make sure you input the correct path, value name (`allowedOrgs`), and value data (your organization’s name).
46+
6. Configure the new registry item to match the registry script you created, specifying the action as **Update**. Make sure you input the correct path, value name (`allowedOrgs`), and value data (your organization names).
4747
7. Link the GPO to an Organizational Unit (OU) that contains the machines you want to apply this setting to.
4848
8. Test the GPO on a small set of machines first to ensure it behaves as expected. You can use the `gpupdate /force` command on a test machine to manually refresh its group policy settings and check the registry to confirm the changes.
4949
9. Once verified, you can proceed with broader deployment. Monitor the deployment to ensure the settings are applied correctly across the organization's computers.
5050

51+
## Configuration profiles method (Mac only)
52+
53+
> [!NOTE]
54+
>
55+
> The configuration profiles method is in [Early Access](/manuals/release-lifecycle.md)
56+
> and is available with Docker Desktop version 4.36 and later.
57+
58+
Configuration profiles are a feature of macOS that let you distribute
59+
configuration information to the Macs you manage. It is the safest method to
60+
enforce sign-in on macOS because the installed configuration profiles are
61+
protected by Apples' System Integrity Protection (SIP) and therefore can't be
62+
tampered with by the users.
63+
64+
1. Save the following XML code to a file with the suffix `.mobileconfig`, for example
65+
`docker.mobileconfig`:
66+
67+
```xml
68+
<?xml version="1.0" encoding="UTF-8"?>
69+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
70+
<plist version="1.0">
71+
<dict>
72+
<key>PayloadContent</key>
73+
<array>
74+
<dict>
75+
<key>PayloadType</key>
76+
<string>com.docker.config</string>
77+
<key>PayloadVersion</key>
78+
<integer>1</integer>
79+
<key>PayloadIdentifier</key>
80+
<string>com.docker.config</string>
81+
<key>PayloadUUID</key>
82+
<string>eed295b0-a650-40b0-9dda-90efb12be3c7</string>
83+
<key>PayloadDisplayName</key>
84+
<string>Docker Desktop Configuration</string>
85+
<key>PayloadDescription</key>
86+
<string>Configuration profile to manage Docker Desktop settings.</string>
87+
<key>PayloadOrganization</key>
88+
<string>Your Company Name</string>
89+
<key>allowedOrgs</key>
90+
<string>first_org;second_org</string>
91+
</dict>
92+
</array>
93+
<key>PayloadType</key>
94+
<string>Configuration</string>
95+
<key>PayloadVersion</key>
96+
<integer>1</integer>
97+
<key>PayloadIdentifier</key>
98+
<string>com.yourcompany.docker.config</string>
99+
<key>PayloadUUID</key>
100+
<string>0deedb64-7dc9-46e5-b6bf-69d64a9561ce</string>
101+
<key>PayloadDisplayName</key>
102+
<string>Docker Desktop Config Profile</string>
103+
<key>PayloadDescription</key>
104+
<string>Config profile to enforce Docker Desktop settings for allowed organizations.</string>
105+
<key>PayloadOrganization</key>
106+
<string>Your Company Name</string>
107+
</dict>
108+
</plist>
109+
```
110+
111+
2. Change the placeholders `Your Company Name` to the name of your company.
112+
113+
3. Add your organization name. The names of the allowed organizations are stored in the `allowedOrgs`
114+
property. It can contain either the name of a single organization or a list of organization names,
115+
separated by a semicolon:
116+
117+
```xml
118+
<key>allowedOrgs</key>
119+
<string>first_org;second_org</string>
120+
```
121+
122+
4. Use a MDM solution to distribute your modified `.mobileconfig` file to your macOS clients.
123+
51124
## plist method (Mac only)
52125

53126
> [!NOTE]
@@ -66,14 +139,15 @@ To enforce sign-in for Docker Desktop on macOS, you can use a `plist` file that
66139
<dict>
67140
<key>allowedOrgs</key>
68141
<array>
69-
<string>myorg</string>
142+
<string>myorg1</string>
143+
<string>myorg2</string>
70144
</array>
71145
</dict>
72146
</plist>
73147
```
74148
> [!IMPORTANT]
75149
>
76-
> Only one entry for `allowedOrgs` is currently supported. If you add more than one value, sign-in enforcement silently fails.
150+
> As of Docker Desktop version 4.36 and later, you can add more than one organization. With Docker Desktop version 4.35 and earlier, sign-in enforcement silently fails if you add more than one organization.
77151
78152
3. Modify the file permissions to ensure the file cannot be edited by any non-administrator users.
79153
4. Restart Docker Desktop.
@@ -140,12 +214,12 @@ details, see [Manage members](/admin/organization/members/).
140214

141215
```json
142216
{
143-
"allowedOrgs": ["myorg"]
217+
"allowedOrgs": ["myorg1", "myorg2"]
144218
}
145219
```
146220
> [!IMPORTANT]
147221
>
148-
> Only one entry for `allowedOrgs` is currently supported. If you add more than one value, sign-in enforcement silently fails.
222+
> As of Docker Desktop version 4.36 and later, you can add more than one organization. With Docker Desktop version 4.35 and earlier, if you add more than one organization sign-in enforcement silently fails.
149223

150224
4. Verify that sign-in is enforced.
151225

@@ -182,6 +256,9 @@ If you're using the Windows Command Prompt:
182256
```console
183257
C:\Users\Admin> "Docker Desktop Installer.exe" install --allowed-org=myorg
184258
```
259+
> [!IMPORTANT]
260+
>
261+
> As of Docker Desktop version 4.36 and later, you can add more than one organization to a single `registry.json` file. With Docker Desktop version 4.35 and earlier, if you add more than one organization sign-in enforcement silently fails.
185262
186263
{{< /tab >}}
187264
{{< tab name="Mac" >}}
@@ -231,6 +308,10 @@ Path Owner Access
231308
registry.json BUILTIN\Administrators NT AUTHORITY\SYSTEM Allow FullControl...
232309
```
233310

311+
> [!IMPORTANT]
312+
>
313+
> As of Docker Desktop version 4.36 and later, you can add more than one organization to a single `registry.json` file. With Docker Desktop version 4.35 and earlier, if you add more than one organization sign-in enforcement silently fails.
314+
234315
{{< /tab >}}
235316
{{< tab name="Mac" >}}
236317

@@ -264,6 +345,10 @@ $ sudo ls -l "/Library/Application Support/com.docker.docker/registry.json"
264345
-rw-r--r-- 1 root admin 26 Jul 27 22:01 /Library/Application Support/com.docker.docker/registry.json
265346
```
266347

348+
> [!IMPORTANT]
349+
>
350+
> As of Docker Desktop version 4.36 and later, you can add more than one organization to a single `registry.json` file. With Docker Desktop version 4.35 and earlier, if you add more than one organization sign-in enforcement silently fails.
351+
267352
{{< /tab >}}
268353
{{< tab name="Linux" >}}
269354

@@ -297,6 +382,10 @@ $ sudo ls -l /usr/share/docker-desktop/registry/registry.json
297382
-rw-r--r-- 1 root root 26 Jul 27 22:01 /usr/share/docker-desktop/registry/registry.json
298383
```
299384

385+
> [!IMPORTANT]
386+
>
387+
> As of Docker Desktop version 4.36 and later, you can add more than one organization to a single `registry.json` file. With Docker Desktop version 4.35 and earlier, if you add more than one organization sign-in enforcement silently fails.
388+
300389
{{< /tab >}}
301390
{{< /tabs >}}
302391

layouts/shortcodes/admin-registry-access.html

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,17 @@
1515
>
1616
> When enabled, the Docker Hub registry is set by default, however you can also restrict this registry for your developers.
1717

18-
4. Select **Add registry** and enter your registry details in the applicable fields, and then select **Create** to add the registry to your list.
18+
4. Select **Add registry** and enter your registry details in the applicable fields, and then select **Create** to add the registry to your list. There is no limit on the number of registries you can add.
1919
5. Verify that the registry appears in your list and select **Save changes**.
2020

21-
> [!NOTE]
22-
>
23-
> Once you add a registry, it can take up to 24 hours for the changes to be enforced on your developers’ machines. If you want to apply the changes sooner, you must force a Docker logout on your developers’ machine and have the developers re-authenticate for Docker Desktop. Also, there is no limit on the number of registries you can add. See the Caveats section below to learn more about limitations when using this feature.
21+
Once you add a registry, it can take up to 24 hours for the changes to be enforced on your developers’ machines.
2422

25-
> [!TIP]
26-
>
27-
> Since RAM sets policies about where content can be fetched from, the [ADD](/reference/dockerfile/#add) instruction of the Dockerfile, when the parameter of the ADD instruction is a URL, is also subject to registry restrictions. It's recommended that you add the domains of URL parameters to the list of allowed registry addresses under the Registry Access Management settings of your organization.
23+
If you want to apply the changes sooner, you must force a Docker signout on your developers’ machine and have the developers re-authenticate for Docker Desktop. See the [Caveats](#caveats) section below to learn more about limitations when using this feature.
24+
25+
> [!IMPORTANT]
26+
>
27+
> Starting with Docker Desktop version 4.36, you can enforce sign-in for multiple organizations. If a developer belongs to multiple organizations with different RAM policies, only the RAM policy for the first organization listed in the `registry.json` file, `.plist` file, or registry key is enforced.
28+
29+
> [!TIP]
30+
>
31+
> Since RAM sets policies about where content can be fetched from, the [ADD](/reference/dockerfile/#add) instruction of the Dockerfile, when the parameter of the ADD instruction is a URL, is also subject to registry restrictions. It's recommended that you add the domains of URL parameters to the list of allowed registry addresses under the Registry Access Management settings of your organization.

0 commit comments

Comments
 (0)