Поделиться через


Общие учетные записи Microsoft Entra в HoloLens

Общие учетные записи Microsoft Entra (ранее — Azure Active Directory) в HoloLens — это обычные учетные записи Microsoft Entra пользователей, которые могут выполнять вход в HoloLens без каких-либо учетных данных. Эта настройка идеально подходит для сценариев, в которых выполняются следующие условия:

  • Несколько пользователей совместно используют один и тот же набор устройств HoloLens
  • Требуется доступ к Microsoft Entra ресурсам, таким как содержимое Dynamics 365 Guides
  • Отслеживание пользователей устройства не требуется.

Основные преимущества использования общих учетных записей Microsoft Entra

  • Упрощенное развертывание. Ранее настройка Microsoft Entra учетных записей, совместно используемых несколькими пользователями, требовала ручной настройки каждого устройства. Общие учетные записи Microsoft Entra позволяют настроить среду один раз и автоматически развернуть на любом из ваших устройств в составе Autopilot.
  • Отличный пользовательский интерфейс. Пользователям общих учетных записей Microsoft Entra не нужно вводить учетные данные, чтобы начать использовать устройство. Коснитесь и идите!
  • Доступ к Microsoft Entra ресурсам. Пользователи общих учетных записей Microsoft Entra получают простой доступ к Microsoft Entra ресурсам, чтобы вы могли начать звонок удаленной помощи или открыть руководство без дополнительной проверки подлинности.

Важно!

Так как доступ к общим Microsoft Entra учетным записям можно получить на устройстве HoloLens без ввода учетных данных, необходимо физически защитить эти устройства HoloLens, чтобы доступ имели только авторизованные сотрудники. Вы также можете заблокировать эти учетные записи, применив политики условного доступа, отключив самостоятельный сброс пароля и настроив назначенные профили доступа для устройств, на которых используются эти учетные записи.

Примечание

Так как это общие учетные записи, пользователи, использующие эти учетные записи, не отображаются типичные экраны настройки первого входа, включая регистрацию ПИН-кода и радужной оболочки глаза, уведомление о сборе биометрических данных и различные экраны согласия. Убедитесь, что соответствующие значения по умолчанию настроены для этих учетных записей с помощью политики (см. раздел Быстрая настройка пользователей на HoloLens 2) и что пользователи знают об этих значениях по умолчанию.

Известные ограничения учетных записей общих Microsoft Entra

  • Учетные записи общих Microsoft Entra не могут использовать ПИН-код или радужной оболочки глаза для входа в текущем выпуске, даже если они зарегистрированы.

Общие сведения об учетных записях общих Microsoft Entra

Этот процесс позволяет устройству HoloLens выделить учетную запись пользователя и войти в нее с учетными данными, связанными с устройством и только устройством. На изображении описывается процесс:

Схема общих учетных записей

  1. Intune имеет профиль конфигурации SCEP для службы SCEP.
  2. Устройство присоединяется к Intune и получает сведения о профиле.
  3. Устройство обращается к службе SCEP и получает сертификат устройства с помощью имени участника-пользователя HL-{Serial}@contoso.com.
  4. Устройство входит в учетную запись пользователя, соответствующую идентификатору Entra, используя сертификат как MFA, чтобы обеспечить простой вход.

Сертификат нельзя удалить или экспортировать с устройства, а для учетной записи пользователя не настроена другая форма многофакторной проверки подлинности. Эта конфигурация гарантирует, что вход в общую учетную запись может выполняться только устройством HoloLens.

Общие сведения о настройке учетных записей общих Microsoft Entra

Общие учетные записи Microsoft Entra в HoloLens реализуются как обычные учетные записи пользователей Microsoft Entra, настроенные для проверки подлинности на основе Microsoft Entra сертификатов (CBA).

На высоком уровне настройка общих учетных записей Microsoft Entra включает следующие действия.

  1. (Рекомендуется) Настройте целевые устройства для присоединения к Microsoft Entra и регистрации в Intune с помощью Autopilot.
  2. Настройте клиент Microsoft Entra, чтобы включить Microsoft Entra CBA для выбранной группы учетных записей.
  3. Настройте Microsoft Intune для применения конфигураций устройств к выбранной группе устройств, которые:
    1. Развертывание сертификатов клиента, используемых для Microsoft Entra CBA, на устройствах с помощью профилей сертификатов SCEP Intune.
    2. Разверните сертификат ЦС , чтобы устройства доверяли издателю сертификатов клиента.
    3. Разверните конфигурацию общей учетной записи, указав устройству, какие сертификаты действительны для Microsoft Entra CBA.
  4. Подготавливает отдельные устройства для общих учетных записей Microsoft Entra.

Предварительные требования

Поддержка общих Microsoft Entra учетных записей доступна начиная с предварительной версии для Microsoft HoloLens сборки 10.0.22621.1217.

Помимо необходимой сборки операционной системы на устройстве HoloLens, необходимо также выполнить предварительные требования для Microsoft Entra CBA (Настройка проверки подлинности на основе сертификатов Microsoft Entra).

Наконец, вам потребуется доступ к Microsoft Intune для развертывания конфигураций устройств и сертификатов клиента. Сведения о требуемой инфраструктуре для развертывания сертификатов клиента через Intune см. в статье Сведения о типах сертификатов, поддерживаемых Microsoft Intune. В этом примере используются сертификаты SCEP.

Примечание

Существует несколько вариантов развертывания сертификатов SCEP, включая Microsoft NDES и PKI. Для HoloLens может быть проще использовать службу Azure для обработки регистрации сертификатов. В (Azure Marketplace, что позволяет изолировать конфигурации общих учетных записей Microsft Entra HoloLens от корпоративной PKI.

Ниже приведены основные требования к службе SCEP.

  1. Служба может принимать запросы на сертификат устройства от Microsoft Intune.
  2. Служба может создавать сертификаты с определенными EKU (проверка подлинности клиента и вход с помощью смарт-карты).

Настоятельно рекомендуется настроить устройства для Autopilot. Autopilot упрощает настройку устройства для конечных пользователей.

Настройка клиента Microsoft Entra для включения Microsoft Entra CBA

Клиент Microsoft Entra должен быть настроен для включения Microsoft Entra CBA для выбранной группы пользователей.

  1. Создайте группу Microsoft Entra, содержащую общие учетные записи Microsoft Entra. Например, мы используем имя SharedAccounts для этой группы.
  2. Создайте группу Microsoft Entra, содержащую общие устройства HoloLens. Например, мы используем имя SharedDevices для этой группы. Эта группа будет назначена профилям конфигурации Intune на основе устройств позже.
  3. Включите Microsoft Entra проверки подлинности на основе сертификата (CBA) для группы SharedAccounts. Полное пошаговое руководство см. в статье Настройка Microsoft Entra проверки подлинности на основе сертификата. Чтобы настроить эту настройку, необходимо выполнить следующие общие действия.
    1. Добавьте сертификат ЦС (центр сертификации) в Microsoft Entra. Microsoft Entra ID позволяет сертификатам клиента, выданным этим ЦС, выполнять CBA.
    2. Включите CBA для группы SharedAccounts.
    3. Настройте CBA таким образом, чтобы сертификат, выданный вашим ЦС, использовал многофакторную проверку подлинности. Этот шаг заключается в том, чтобы пользователи могли получить доступ к ресурсам, для которых требуется многофакторная проверка подлинности, без настройки другого фактора.
    4. Включите привязку сертификата с помощью UserPrincipalName.

Конфигурация Intune

Необходимо настроить Intune для развертывания сертификатов, необходимых для Microsoft Entra CBA. Intune также необходимо развернуть конфигурацию, чтобы указать устройствам, какие сертификаты являются допустимыми для Microsoft Entra CBA.

Развертывание сертификата клиента с помощью SCEP

Устройства должны иметь соответствующий сертификат клиента для выполнения Microsoft Entra CBA. Создайте конфигурацию SCEP и назначьте ее SharedDevices:

  1. Тип сертификата: устройство

  2. Добавьте альтернативное имя субъекта-пользователя (SAN), где значением является имя участника-пользователя общей учетной записи, назначенной устройству. Имя участника-пользователя должно содержать серийный номер устройства, чтобы связать его с устройством. Вы можете использовать переменную Intune {{Device_Serial}} для ссылки на серийный номер устройства. Например, введите значение HL-{{Device_Serial}}@contoso.com , если общие учетные записи имеют формат HL-123456789@contoso.comимени .

  3. Поставщик хранилища ключей (KSP): выберите "Требовать TPM, в противном случае сбой", чтобы убедиться, что сертификат не может быть экспортирован с устройства для использования в другом месте.

  4. Убедитесь, что сертификат имеет по крайней мере следующие расширенные значения использования ключей (EKU):

    • Вход с помощью смарт-карты: 1.3.6.1.4.1.311.20.2.2
    • Проверка подлинности клиента: 1.3.6.1.5.5.7.3.2

    Вы можете добавить другие EKU в этот список, чтобы дополнительно ограничить сертификаты, разрешенные для Microsoft Entra CBA. Эти EKU необходимо добавить в xml-код политики ConfigureSharedAccount.

Пример конфигурации SCEP

Подробные инструкции по настройке SCEP в Intune см. в статье Использование профилей сертификатов SCEP с Microsoft Intune.

Развертывание сертификата ЦС

Устройства также должны доверять ЦС, выдавшему сертификат клиента. Создайте конфигурацию доверенного сертификата и назначьте ее группе SharedDevices. Это назначение развертывает сертификат ЦС на устройствах. См. документацию: Создание профилей доверенных сертификатов в Microsoft Intune.

Политика ConfigureSharedAccount

Эта политика сообщает устройствам, какие сертификаты являются допустимыми для использования для Microsoft Entra CBA. Создайте настраиваемую политику конфигурации устройств и назначьте ее SharedDevices:

Политика Тип данных
./Vendor/MSFT/Policy/Config/MixedReality/ConfigureSharedAccount String или String (XML-файл)

Пример конфигурации:

<SharedAccountConfiguration>
    <SharedAccount>
        <!--
          TODO: Replace the example value below with your issuer certificate's thumbprint.
          You may customize the restrictions for which certificates are displayed. See below.
        -->
        <IssuerThumbprint>77de0879f69314d867bd08fcf2e8e6616548b3c8</IssuerThumbprint>
    </SharedAccount>
</SharedAccountConfiguration>

Вы можете настроить ограничения, для которых отображаются сертификаты для Microsoft Entra CBA. В приведенном выше примере требуется, чтобы отпечаток сертификата издателя соответствовал указанному значению. Также можно применить ограничение на основе имени издателя или дополнительные ограничения на основе расширенного использования ключей (EKU) к сертификату. Примеры настройки XML см. в разделе Примеры XML-кода ConfigureSharedAccount .

Перед сохранением этой конфигурации устройства проверьте XML-код на соответствие схеме, указанной в разделе ConfigureSharedAccount XML Schema , чтобы убедиться, что он правильно сформирован.

Конфигурация отдельного устройства

Для каждого устройства HoloLens, которое вы хотите настроить для общих учетных записей Microsoft Entra, выполните следующие действия.

  1. Создайте пользователя Microsoft Entra в формате, указанном на шаге 2 развертывания сертификата клиента с помощью SCEP. Например: HL-123456789@contoso.com.
  2. Добавьте этого пользователя в группу SharedAccounts.
  3. Убедитесь, что устройство добавлено в группу SharedDevices. Сначала необходимо настроить устройства для Autopilot, чтобы они уже присутствовали в Microsoft Entra.

Пример скрипта PowerShell, который можно использовать для автоматизации этого процесса, см. в разделе Пример скрипта настройки устройства .

Тестирование конфигурации

Завершив приведенную выше настройку, вы можете попробовать общие учетные записи Microsoft Entra на HoloLens!

Если устройство уже настроено для Autopilot, переведите устройство через обычный поток Autopilot. Необходимые конфигурации устройств применяются во время Autopilot. После завершения потока Autopilot вы увидите следующий экран:

Экран входа с общей учетной записью

Нажмите кнопку "Войти", чтобы начать использовать общую учетную запись Microsoft Entra.

Устранение неполадок

Проблема. Учетная запись общего Microsoft Entra не отображается на экране входа.

Решение: Во-первых, проверка, что устройство получает правильные сертификаты. Откройте диспетчер сертификатов (диспетчер сертификатов) и убедитесь, что сертификат клиента и сертификаты ЦС успешно развернуты на устройстве.

Убедитесь, что сертификат клиента установлен в хранилище My на локальном компьютере.

Диспетчер сертификатов, показывающий расположение сертификата

Если сертификат отсутствует, выполните действия по устранению неполадок для профилей SCEP Intune.

Если сертификат присутствует, убедитесь, что сертификат находится в пределах срока действия, содержит ожидаемых издателей и EKU:

Диспетчер сертификатов, отображающий свойства сертификата

Затем убедитесь, что значение политики XML, примененное к MixedReality/ConfigureSharedAccount, имеет правильный формат. Вы можете использовать один из множества проверяющих элементов управления схемой XML (XSD) в Сети, чтобы проверка, что ваш XML-код соответствует схеме, описанной в разделе ConfigureSharedAccount XML Schema.

Проблема. Попытка входа завершается сбоем.

Решение: Убедитесь, что вы правильно настроили CBA, следуя инструкциям в статье Настройка Microsoft Entra проверки подлинности на основе сертификата. Кроме того, проверка часто задаваемые вопросы о Microsoft Entra проверки подлинности на основе сертификатов (CBA). Иногда может быть полезно сначала выполнить следующие действия отладки на настольном устройстве с Windows: windows smart карта вход с использованием Microsoft Entra проверки подлинности на основе сертификата.

Ссылки

Схема XML ConfigureSharedAccount

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="SharedAccountConfiguration">
    <xsd:complexType mixed="true">
      <xsd:sequence>
        <xsd:element minOccurs="1" maxOccurs="1" name="SharedAccount">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:choice>
                <xsd:element name="IssuerThumbprint">
                  <xsd:simpleType>
                    <xsd:restriction base="xsd:string">
                      <xsd:maxLength value="40" />
                    </xsd:restriction>
                  </xsd:simpleType>
                </xsd:element>
                <xsd:element name="IssuerName">
                  <xsd:simpleType>
                    <xsd:restriction base="xsd:string">
                      <xsd:maxLength value="512" />
                    </xsd:restriction>
                  </xsd:simpleType>
                </xsd:element>
              </xsd:choice>
              <xsd:element minOccurs="0" maxOccurs="1" name="EkuOidRequirements">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element maxOccurs="5" name="Oid">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                          <xsd:maxLength value="100" />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

Примеры XML ConfigureSharedAccount

Требовать, чтобы у сертификата издателя был субъект CN=yourCA, DC=Test:

<SharedAccountConfiguration>
    <SharedAccount>
        <IssuerName>CN=yourCA, DC=Test</IssuerName>
    </SharedAccount>
</SharedAccountConfiguration>

Требовать, чтобы у сертификата издателя был указан отпечаток:

<SharedAccountConfiguration>
    <SharedAccount>
        <IssuerThumbprint>77de0879f69314d867bd08fcf2e8e6616548b3c8</IssuerThumbprint>
    </SharedAccount>
</SharedAccountConfiguration>

Убедитесь, что сертификат издателя имеет указанный отпечаток и что сертификат клиента содержит EKU с идентификаторами 1.2.3.4.5.6 и 1.2.3.4.5.7:

<SharedAccountConfiguration>
    <SharedAccount>
        <IssuerThumbprint>77de0879f69314d867bd08fcf2e8e6616548b3c8</IssuerThumbprint>
        <EkuOidRequirements>
            <Oid>1.2.3.4.5.6</Oid>
            <Oid>1.2.3.4.5.7</Oid>
        </EkuOidRequirements>
    </SharedAccount>
</SharedAccountConfiguration>

EKU 1.3.6.1.4.1.311.20.2.2 (Вход с помощью смарт-карты) и 1.3.6.1.5.5.7.3.2 (проверка подлинности клиента) всегда требуются независимо от того, находятся ли они в этом списке.

Пример скрипта настройки устройства

Перед использованием этого примера сценария настройки устройства необходимо изменить ссылки с contoso на доменное имя.

<#
.Synopsis
Configures a device for shared account

.Description
This script configures a device for shared account.

Note that you'll need to have the necessary permissions in your tenant to manage
user and device memberships and query Intune devices.

.Example
.\ConfigureSharedDevice.ps1 400064793157
#>


param (
    [Parameter(Mandatory = $true)]
    [string]
    # Serial number of the device. Typically a 12-digit numeric string.
    $DeviceSerialNumber,
    [string]
    # Group ID of the group that contains the shared accounts such as HL-123456789@contoso.com
    $SharedAccountGroupId,
    [string]
    # Group ID of the group that contains the shared devices
    $SharedDeviceGroupId
)

function Install-Dependencies {
    Write-Host -Foreground Cyan "Installing Dependencies..."

    if (!(Get-InstalledModule Microsoft.Graph -ErrorAction SilentlyContinue)) {
        Write-Host -Foreground Cyan "Installing Microsoft.Graph"
        Install-Module Microsoft.Graph -Scope CurrentUser -Repository 'PSGallery'
    }

    Write-Host -Foreground Cyan "Installing Dependencies... Done"
}

function New-PasswordString {
    $alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-=+[]{}|;:,.<>/?'
    $length = 40
    $password = ""
    for ($i = 0; $i -lt $length; $i++) {
        $password += $alphabet[(Get-Random -Minimum 0 -Maximum $alphabet.Length)]
    }

    return $password
}

function New-SharedUser {
    param (
        $UserName,
        $DisplayName
    )

    # Does user already exist?
    $searchResult = Get-MgUser -Count 1 -ConsistencyLevel eventual -Search "`"UserPrincipalName:$UserName`""

    if ($searchResult.Count -gt 0) {
        Write-Host -Foreground Cyan "$UserName exists, using existing user."
        return $searchResult
    }

    $mailNickName = $UserName.Split('@')[0];

    Write-Host -Foreground Cyan "Creating $UserName"

    $passwordProfile = @{
        Password = New-PasswordString
    }

    return New-MgUser -AccountEnabled -DisplayName $DisplayName -Country US -UsageLocation US -MailNickname $mailNickName -UserPrincipalName $UserName -PasswordProfile $passwordProfile
}

function New-SharedUserForDevice {
    param (
        $DeviceSerialNumber
    )

    $userName = "HL-$DeviceSerialNumber@contoso.onmicrosoft.com"
    $displayName = "Shared HoloLens"

    return New-SharedUser -UserName $userName -DisplayName $displayName
}

function Add-UserToGroup {
    param (
        $UserId,
        $GroupId
    )

    $groupResult = Get-MgGroup -GroupId $GroupId
    if ($groupResult.Count -eq 0) {
        throw "Failed to find user group"
    }

    Write-Host -Foreground Cyan "Adding user ($UserId) to group"
    New-MgGroupMember -GroupId $GroupId -DirectoryObjectId $UserId
}

function Get-DeviceAADId {
    param (
        $DeviceSerialNumber
    )

    $deviceResult = Get-MgDeviceManagementManagedDevice | Where-Object { $_.SerialNumber -eq $DeviceSerialNumber }

    if ($deviceResult.Count -eq 0) {
        throw "Cannot find device with serial number $DeviceSerialNumber in Intune"
    }

    $result = ($deviceResult | Select-Object -First 1).AzureAdDeviceId

    Write-Host "Found device: $result"

    return $result
}

function Add-DeviceToGroup {
    param (
        $DeviceAADId,
        $GroupId
    )

    $groupResult = Get-MgGroup -GroupId $GroupId
    if ($groupResult.Count -eq 0) {
        throw "Failed to find device group"
    }

    $deviceResult = Get-MgDevice -Count 1 -ConsistencyLevel eventual -Search "`"DeviceId:$DeviceAADId`""
    if ($deviceResult.Count -eq 0) {
        throw "Failed to find device $DeviceAADId"
    }

    Write-Host -Foreground Cyan "Adding device $($deviceResult.Id) to group"
    
    New-MgGroupMember -GroupId $GroupId -DirectoryObjectId $deviceResult.Id
}

function Register-SharedDevice {
    param (
        $DeviceSerialNumber
    )

    Install-Dependencies

    Connect-MgGraph -Scopes "User.ReadWrite.All", "Group.Read.All", "GroupMember.ReadWrite.All", "DeviceManagementManagedDevices.Read.All", "Device.ReadWrite.All"

    $deviceAADId = Get-DeviceAADId $DeviceSerialNumber
    Add-DeviceToGroup $deviceAADId $SharedDeviceGroupId

    $user = New-SharedUserForDevice $DeviceSerialNumber
    Add-UserToGroup $user.Id $SharedAccountGroupId
}

Register-SharedDevice $DeviceSerialNumber