В чем разница между ресурсами Microsoft.ApiManagement/service/portalsettings и Microsoft.ApiManagement/service/portalconfigs службы управления API Azure?
Я хочу развернуть некоторую конфигурацию портала разработчиков управления API Azure с помощью Bicep. Одним из пунктов является удаление поставщика удостоверений «Имя пользователя и пароль», поскольку мы собираемся использовать Microsoft Entra Id. Но я не уверен, что использовать.
Я удалил поставщика удостоверений вручную и заметил, что для свойства enabled в ресурсе portalsettings (имя signup) установлено значение false, а для свойства enableBasicAuth в ресурсе portalconfigs установлено значение false.
Я не смог найти в документации ничего, объясняющего разницу между этими двумя ресурсами.
Нет, не сейчас. Я надеялся, что кто-нибудь сможет объяснить разницу, прежде чем тратить много времени на ее устранение самостоятельно.


Да, есть небольшая разница между PortalSettings и PortalConfigs в службе управления API Azure.
Microsoft.ApiManagement/service/portalsettings:
В основном это касается части управления учетными записями пользователей, такой как функции входа и входа на портале разработчика, включение или отключение возможности регистрации пользователей и управление доступными методами аутентификации пользователей, такими как Azure AD и т. д.
Microsoft.ApiManagement/service/portalconfigs:
Он управляет общим configuration options на портале разработчиков и фокусируется на аутентификации, например EnableBasicAuth.
Кроме того, этот поставщик ресурсов можно использовать для настройки отключения базовой аутентификации, обычно выполняемой при переходе на альтернативные методы аутентификации. (Ваш сценарий)
Заметил, что как для свойства
enabledв ресурсеportalsettings(имяsignup) установлено значениеfalse, так и для свойстваenableBasicAuthв ресурсеportalconfigsустановлено значениеfalse:
Вышеупомянутое наблюдение верно.
enabled на false в portalsettings ( signup) отключает регистрацию пользователей через портал разработчиков.enableBasicAuth на false в portalconfigs отключает базовую аутентификацию.Я попробовал выполнить приведенный ниже пример кода бицепса для поведения настроек портала (связанного с пользователем), и мне это удалось, как показано.
resource apima 'Microsoft.ApiManagement/service@2023-05-01-preview' existing= {
name: 'xxxapimgmt'
}
resource sett 'Microsoft.ApiManagement/service/portalsettings@2023-05-01-preview' = {
name: 'signin'
parent: apima
properties: {
enabled: true
}
}

Я провел пару тестовых развертываний, и на самом деле они, похоже, частично перекрываются и влияют друг на друга.
Например:
enableBasicAuth в portalconfigs, вы также включите portalsettings с именем signup и наоборот.portalsettings, вы также настраиваете текст условий обслуживания в ресурсе portalconfigs и наоборот.Таким образом, развертывание следующего Bicep, который содержит только ресурсы portalsettings, обновит ресурсы portalsettings, а также ресурс portalconfigs:
resource portalsettingsSignin 'Microsoft.ApiManagement/service/portalsettings@2022-08-01' = {
name: 'signin'
parent: apimService
properties: {
enabled: true // also changes /portalconfigs/properties/signin/require
}
}
resource portalsettingsSignup 'Microsoft.ApiManagement/service/portalsettings@2022-08-01' = {
name: 'signup'
parent: apimService
properties: {
enabled: true // also changes /portalconfigs/properties/enableBasicAuth
termsOfService: {
consentRequired: true // also changes /portalconfigs/properties/signup/termsOfService/requireConsent
text: 'My Terms of Service' // also changes /portalconfigs/properties/signup/termsOfService/text
enabled: false // doesn't seem to change anything in /portalconfigs
}
}
}
Следующий бицепс имеет тот же эффект, что и пример выше:
resource protalconfigs 'Microsoft.ApiManagement/service/portalconfigs@2022-08-01' = {
name: 'default'
parent: apimService
properties: {
enableBasicAuth: true
signin: {
require: true
}
signup: {
termsOfService: {
requireConsent: true
text: 'My Terms of Service'
}
}
}
}
Вы уже пробовали какой-нибудь код? @Рональд