Важные рекомендации и ограничения для федеративных учетных данных удостоверений

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

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

Общие рекомендации по учетным данным федеративного удостоверения

Область применения: приложения и назначаемые пользователем управляемые удостоверения

Любой пользователь с разрешениями на создание регистрации приложения и добавление секрета или сертификата может добавить в приложение федеративные учетные данные удостоверения. Если параметр "Пользователи" могут зарегистрировать приложения в колонке ">Параметры пользователей" в Центре администрирования Microsoft Entra, вы не сможете создать регистрацию приложения или настроить учетные данные федеративного удостоверения. Найдите администратора, чтобы настроить учетные данные федеративного удостоверения от вашего имени, кто-то из ролей администратора приложения или владельца приложения.

Учетные данные федеративного удостоверения не используют квоту объекта субъекта-службы клиента Microsoft Entra.

В приложение или управляемое удостоверение, назначаемое пользователем, можно добавить не более 20 федеративных удостоверений.

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

  • издатель и субъект являются ключевыми фрагментами информации, необходимой для настройки отношения доверия. Сочетание issuer и subject должно быть уникальным в приложении. Когда внешние рабочие нагрузки программного обеспечения запрашивают платформа удостоверений Майкрософт для обмена внешним маркером доступа, издатель и субъекты учетных данных федеративного удостоверения проверяются на subject issuer соответствие требованиям, предоставленным во внешнем маркере. Если эта проверка проходит, платформа удостоверений Майкрософт выдает маркер доступа к внешней рабочей нагрузке программного обеспечения.

  • Издатель — это URL-адрес внешнего поставщика удостоверений и должен соответствовать issuer утверждению обмена внешним маркером. Обязательно. issuer Если утверждение имеет начальные или конечные пробелы в значении, обмен маркерами блокируется. Это поле имеет ограничение в 600 символов.

  • субъект является идентификатором внешней рабочей нагрузки программного обеспечения и должен соответствовать sub утверждению (subject) обмена внешним маркером. Тема не имеет фиксированного формата, так как каждый идентификатор поставщика удостоверений использует собственный идентификатор — иногда guid, иногда идентификатор разделителя двоеточия, иногда произвольные строки. Это поле имеет ограничение в 600 символов.

    Важный

    Значения параметров субъекта должны точно соответствовать конфигурации в конфигурации рабочего процесса GitHub. В противном случае платформа удостоверений Майкрософт будет рассматривать входящие внешние маркеры и отклонять обмен маркером доступа. Вы не получите ошибку, обмен завершается ошибкой без ошибки.

    Важный

    При случайном добавлении неверных сведений о внешней рабочей нагрузке в параметре субъекта учетные данные федеративного удостоверения успешно создаются без ошибок. Ошибка не становится очевидной до сбоя обмена токенами.

  • аудитории перечисляют аудитории, которые могут отображаться во внешнем маркере. Обязательно. Необходимо добавить одно значение аудитории, которое имеет ограничение в 600 символов. Рекомендуемое значение — "api://AzureADTokenExchange". В нем говорится, что платформа удостоверений Майкрософт должны принять в утверждении aud входящего маркера.

  • имя — уникальный идентификатор для учетных данных федеративного удостоверения. Обязательно. Это поле имеет ограничение в 3–120 символов и должно быть понятным ПО URL-адресу. Поддерживаются буквенно-цифровые символы, дефисы или символы подчеркивания, первый символ должен быть буквенно-цифровым.  Это неизменяемо после создания.

  • description — это описание учетных данных федеративного удостоверения, предоставленное пользователем. Необязательный. Описание не проверяется или проверяется идентификатором Microsoft Entra. Это поле имеет ограничение в 600 символов.

Подстановочные знаки не поддерживаются в значении свойства учетных данных федеративного удостоверения.

Неподдерживаемые регионы (назначаемые пользователем управляемые удостоверения)

Область применения: назначаемые пользователем управляемые удостоверения

Создание учетных данных федеративного удостоверения в настоящее время не поддерживается для управляемых удостоверений, назначенных пользователем, созданных в следующих регионах:

  • Восточная Азия
  • Центральная Израиль
  • Италия Север
  • Южная Малайзия
  • Центральная Мексика
  • Центральный Катар
  • Центральная Испания

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

Поддерживаемые алгоритмы подписывания и издатели

Область применения: приложения и назначаемые пользователем управляемые удостоверения

Только издатели, предоставляющие маркеры, подписанные с помощью алгоритма RS256, поддерживаются для обмена маркерами с помощью федерации удостоверений рабочей нагрузки. Обмен маркерами, подписанными с другими алгоритмами, может работать, но не был протестирован.

Издатели Microsoft Entra не поддерживаются

Область применения: приложения и назначаемые пользователем управляемые удостоверения

Создание федерации между двумя удостоверениями Microsoft Entra из одного или разных клиентов не поддерживается. При создании учетных данных федеративного удостоверения настройка издателя (URL-адрес внешнего поставщика удостоверений) со следующими значениями не поддерживается:

  • *.login.microsoftonline.com
  • *.login.windows.net
  • *.login.microsoft.com
  • *.sts.windows.net

Хотя можно создать федеративные учетные данные удостоверения с издателем Microsoft Entra, пытается использовать его для авторизации с ошибкой AADSTS700222: AAD-issued tokens may not be used for federated identity flows.

Время распространения федеративных учетных данных

Область применения: приложения и назначаемые пользователем управляемые удостоверения

После первоначальной настройки необходимо время для распространения учетных данных федеративного удостоверения по всему региону. Запрос маркера, сделанный через несколько минут после настройки учетных данных федеративного удостоверения, может завершиться ошибкой, так как кэш заполняется в каталоге старыми данными. В течение этого периода времени запрос авторизации может завершиться ошибкой: AADSTS70021: No matching federated identity record found for presented assertion.

Чтобы избежать этой проблемы, подождите некоторое время после добавления учетных данных федеративного удостоверения перед запросом маркера, чтобы убедиться, что репликация выполняется на всех узлах службы авторизации. Мы также рекомендуем добавить логику повторных попыток для запросов маркеров. Повторные попытки должны выполняться для каждого запроса даже после успешного получения маркера. В конечном итоге после полной репликации данных процент сбоев будет удален.

Одновременные обновления не поддерживаются (назначаемые пользователем управляемые удостоверения)

Область применения: назначаемые пользователем управляемые удостоверения

Создание нескольких учетных данных федеративного удостоверения в одном управляемом удостоверении, назначаемом пользователем, одновременно активирует логику обнаружения параллелизма, что приводит к сбою запросов с кодом состояния HTTP 409-конфликтов.

Поставщик Terraform для Azure (Resource Manager) версии 3.40.0 представляет обновление , которое создает несколько учетных данных федеративного удостоверения последовательно, а не одновременно. Версии выше 3.40.0 могут привести к сбоям в конвейерах при создании нескольких федеративных удостоверений. Рекомендуется использовать поставщик Terraform для Azure (Resource Manager) версии 3.40.0 или более поздней версии, чтобы несколько федеративных удостоверений создавались последовательно.

При использовании автоматизации или шаблонов Azure Resource Manager (шаблоны ARM) для создания федеративных учетных данных удостоверения под тем же родительским удостоверением создайте федеративные учетные данные последовательно. Федеративные учетные данные удостоверения под разными управляемыми удостоверениями можно создавать параллельно без каких-либо ограничений.

Если федеративные учетные данные удостоверения подготавливаются в цикле, их можно подготовить последовательно , задав параметр mode: serial.

Вы также можете подготовить несколько новых федеративных учетных данных удостоверения последовательно с помощью свойства dependsOn . Следующий пример шаблона Azure Resource Manager (шаблон ARM) создает три новых федеративных учетных данных удостоверения последовательно в управляемом удостоверении, назначаемом пользователем, с помощью свойства dependsOn :

{ 
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 
    "parameters": { 
        "userAssignedIdentities_parent_uami_name": { 
            "defaultValue": "parent_uami", 
            "type": "String" 
        } 
    }, 
    "variables": {}, 
    "resources": [ 
        { 
            "type": "Microsoft.ManagedIdentity/userAssignedIdentities", 
            "apiVersion": "2022-01-31-preview", 
            "name": "[parameters('userAssignedIdentities_parent_uami_name')]", 
            "location": "eastus" 
        }, 
        { 
            "type": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials", 
            "apiVersion": "2022-01-31-preview", 
            "name": "[concat(parameters('userAssignedIdentities_parent_uami_name'), '/fic01')]", 
            "dependsOn": [ 
                "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentities_parent_uami_name'))]" 
            ], 
            "properties": { 
                "issuer": "https://kubernetes-oauth.azure.com", 
                "subject": "fic01", 
                "audiences": [ 
                    "api://AzureADTokenExchange" 
                ] 
            } 
        }, 
        { 
            "type": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials", 
            "apiVersion": "2022-01-31-preview", 
            "name": "[concat(parameters('userAssignedIdentities_parent_uami_name'), '/fic02')]", 
            "dependsOn": [ 
                "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentities_parent_uami_name'))]", 
                "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials', parameters('userAssignedIdentities_parent_uami_name'), 'fic01')]" 
            ], 
            "properties": { 
                "issuer": "https://kubernetes-oauth.azure.com", 
                "subject": "fic02", 
                "audiences": [ 
                    "api://AzureADTokenExchange" 
                ] 
            } 
        }, 
        { 
            "type": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials", 
            "apiVersion": "2022-01-31-preview", 
            "name": "[concat(parameters('userAssignedIdentities_parent_uami_name'), '/fic03')]", 
            "dependsOn": [ 
                "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentities_parent_uami_name'))]", 
                "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials', parameters('userAssignedIdentities_parent_uami_name'), 'fic02')]" 
            ], 
            "properties": { 
                "issuer": "https://kubernetes-oauth.azure.com", 
                "subject": "fic03", 
                "audiences": [ 
                    "api://AzureADTokenExchange" 
                ] 
            } 
        } 
    ] 
} 

Политика Azure

Область применения: приложения и назначаемые пользователем управляемые удостоверения

Можно использовать запрет Политика Azure, как показано в следующем примере шаблона ARM:

{ 
"policyRule": { 
            "if": { 
                "field": "type", 
                "equals": "Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials" 
            }, 
            "then": { 
                "effect": "deny" 
            } 
        } 
}

Ограничения регулирования

Область применения: назначаемые пользователем управляемые удостоверения

В следующей таблице описываются ограничения запросов на управляемые удостоверения, назначаемые пользователем, REST APIS. Если превышено ограничение регулирования, вы получите ошибку HTTP 429.

Операция Запросы в секунду на клиент Microsoft Entra Запросы в секунду на подписку Запросы в секунду на ресурс
Создание или обновление запросов 10 2 0.25
Получение запросов 30 10 0.5
Список по группе ресурсов или списку по запросам подписки 15 5 0.25
Удаление запросов 10 2 0.25

Ошибки

Область применения: приложения и назначаемые пользователем управляемые удостоверения

При создании, обновлении, получении, перечислении или удалении учетных данных федеративного удостоверения могут быть возвращены следующие коды ошибок.

HTTP-код Сообщение об ошибке Комментарии
405 Формат запроса был непредвиден: поддержка федеративных учетных данных удостоверения не включена. Учетные данные федеративного удостоверения не включены в этом регионе. См. раздел "Поддерживаемые в настоящее время регионы".
400 Учетные данные федеративного удостоверения должны иметь ровно одну аудиторию. В настоящее время федеративные учетные данные удостоверения поддерживают одну аудиторию "api://AzureADTokenExchange".
400 Федеративные учетные данные удостоверения из текста HTTP имеют пустые свойства Все свойства учетных данных федеративного удостоверения являются обязательными.
400 Имя учетных данных федеративного удостоверения "{ficName}" недопустимо. Буквенно-цифровые, дефис, подчеркивание не более 3-120 символов. Первый символ является буквенно-цифровым.
404 Удостоверение, назначаемое пользователем, не существует. Проверьте имя назначаемого пользователем удостоверения в пути ресурса федеративных удостоверений.
400 Для этого управляемого удостоверения уже существует сочетание издателя и субъекта. Это ограничение. Перечислить все учетные данные федеративного удостоверения, связанные с удостоверением, назначенным пользователем, чтобы найти существующие учетные данные федеративного удостоверения.
409 Конфликт Одновременный запрос на запись в ресурсы учетных данных федеративного удостоверения в рамках того же удостоверения, назначаемого пользователем, был отклонен.