@@ -506,11 +506,11 @@ module userAssignedIdentity 'br/public:avm/res/managed-identity/user-assigned-id
506506
507507// ========== SQL Operations User Assigned Identity ========== //
508508// Dedicated identity for backend SQL operations with limited permissions (db_datareader, db_datawriter)
509- var sqlUserAssignedIdentityResourceName = 'id-sql -${solutionSuffix }'
510- module sqlUserAssignedIdentity 'br/public:avm/res/managed-identity/user-assigned-identity:0.4.1' = {
511- name : take ('avm.res.managed-identity.user-assigned-identity.${sqlUserAssignedIdentityResourceName }' , 64 )
509+ var backendUserAssignedIdentityResourceName = 'id-backend -${solutionSuffix }'
510+ module backendUserAssignedIdentity 'br/public:avm/res/managed-identity/user-assigned-identity:0.4.1' = {
511+ name : take ('avm.res.managed-identity.user-assigned-identity.${backendUserAssignedIdentityResourceName }' , 64 )
512512 params : {
513- name : sqlUserAssignedIdentityResourceName
513+ name : backendUserAssignedIdentityResourceName
514514 location : location
515515 tags : tags
516516 enableTelemetry : enableTelemetry
@@ -767,6 +767,11 @@ module aiFoundryAiServices 'modules/ai-services.bicep' = if (aiFoundryAIservices
767767 principalId : userAssignedIdentity .outputs .principalId
768768 principalType : 'ServicePrincipal'
769769 }
770+ {
771+ roleDefinitionIdOrName : '53ca6127-db72-4b80-b1b0-d745d6d5456d' // Azure AI User
772+ principalId : backendUserAssignedIdentity .outputs .principalId
773+ principalType : 'ServicePrincipal'
774+ }
770775 {
771776 roleDefinitionIdOrName : '64702f94-c441-49e6-a78b-ef80e0188fee' // Azure AI Developer
772777 principalId : userAssignedIdentity .outputs .principalId
@@ -777,6 +782,16 @@ module aiFoundryAiServices 'modules/ai-services.bicep' = if (aiFoundryAIservices
777782 principalId : userAssignedIdentity .outputs .principalId
778783 principalType : 'ServicePrincipal'
779784 }
785+ {
786+ roleDefinitionIdOrName : '64702f94-c441-49e6-a78b-ef80e0188fee' // Azure AI Developer
787+ principalId : backendUserAssignedIdentity .outputs .principalId
788+ principalType : 'ServicePrincipal'
789+ }
790+ {
791+ roleDefinitionIdOrName : '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd' // Cognitive Services OpenAI User
792+ principalId : backendUserAssignedIdentity .outputs .principalId
793+ principalType : 'ServicePrincipal'
794+ }
780795 ]
781796 // WAF aligned configuration for Monitoring
782797 diagnosticSettings : enableMonitoring ? [{ workspaceResourceId : logAnalyticsWorkspaceResourceId }] : null
@@ -946,6 +961,11 @@ module searchSearchServices 'br/public:avm/res/search/search-service:0.11.1' = {
946961 principalId : userAssignedIdentity .outputs .principalId
947962 principalType : 'ServicePrincipal'
948963 }
964+ {
965+ roleDefinitionIdOrName : '1407120a-92aa-4202-b7e9-c0e197c71c8f'
966+ principalId : backendUserAssignedIdentity .outputs .principalId
967+ principalType : 'ServicePrincipal'
968+ }
949969 {
950970 roleDefinitionIdOrName : '1407120a-92aa-4202-b7e9-c0e197c71c8f' // Search Index Data Reader
951971 principalId : !useExistingAiFoundryAiProject ? aiFoundryAiServices .outputs .aiProjectInfo .aiprojectSystemAssignedMIPrincipalId : existingAiFoundryAiServicesProject !.identity .principalId
@@ -1182,7 +1202,7 @@ module cosmosDb 'br/public:avm/res/document-db/database-account:0.15.0' = {
11821202 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*'
11831203 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*'
11841204 ]
1185- assignments : [{ principalId : userAssignedIdentity .outputs .principalId }]
1205+ assignments : [{ principalId : backendUserAssignedIdentity .outputs .principalId }]
11861206 }
11871207 ]
11881208 // WAF aligned configuration for Monitoring
@@ -1278,6 +1298,7 @@ module sqlDBModule 'br/public:avm/res/sql/server:0.20.1' = {
12781298 systemAssigned : true
12791299 userAssignedResourceIds : [
12801300 userAssignedIdentity .outputs .resourceId
1301+ backendUserAssignedIdentity .outputs .resourceId
12811302 ]
12821303 }
12831304 primaryUserAssignedIdentityResourceId : userAssignedIdentity .outputs .resourceId
@@ -1396,8 +1417,8 @@ module createSqlUserAndRole 'br/public:avm/res/resources/deployment-script:0.5.1
13961417 [
13971418 '-SqlServerName \' ${sqlServerResourceName }\' '
13981419 '-SqlDatabaseName \' ${sqlDbModuleName }\' '
1399- '-ClientId \' ${sqlUserAssignedIdentity .outputs .clientId }\' '
1400- '-DisplayName \' ${sqlUserAssignedIdentity .outputs .name }\' '
1420+ '-ClientId \' ${backendUserAssignedIdentity .outputs .clientId }\' '
1421+ '-DisplayName \' ${backendUserAssignedIdentity .outputs .name }\' '
14011422 '-DatabaseRoles \' ${join (databaseRoles , ',' )}\' '
14021423 ],
14031424 ' '
@@ -1513,7 +1534,7 @@ module webSiteBackend 'modules/web-sites.bicep' = {
15131534 managedIdentities : {
15141535 systemAssigned : true
15151536 userAssignedResourceIds : [
1516- userAssignedIdentity .outputs .resourceId
1537+ backendUserAssignedIdentity .outputs .resourceId
15171538 ]
15181539 }
15191540 siteConfig : {
@@ -1539,7 +1560,7 @@ module webSiteBackend 'modules/web-sites.bicep' = {
15391560 AZURE_COSMOSDB_ENABLE_FEEDBACK : 'True'
15401561 SQLDB_DATABASE : 'sqldb-${solutionSuffix }'
15411562 SQLDB_SERVER : '${sqlDBModule .outputs .name }${environment ().suffixes .sqlServerHostname }'
1542- SQLDB_USER_MID : sqlUserAssignedIdentity .outputs .clientId
1563+ SQLDB_USER_MID : backendUserAssignedIdentity .outputs .clientId
15431564 AZURE_AI_SEARCH_ENDPOINT : 'https://${aiSearchName }.search.windows.net'
15441565 AZURE_AI_SEARCH_INDEX : 'call_transcripts_index'
15451566 AZURE_AI_SEARCH_CONNECTION_NAME : aiSearchName
@@ -1549,7 +1570,7 @@ module webSiteBackend 'modules/web-sites.bicep' = {
15491570 DUMMY_TEST : 'True'
15501571 SOLUTION_NAME : solutionSuffix
15511572 APP_ENV : 'Prod'
1552- AZURE_CLIENT_ID : userAssignedIdentity .outputs .clientId
1573+ AZURE_CLIENT_ID : backendUserAssignedIdentity .outputs .clientId
15531574 }
15541575 // WAF aligned configuration for Monitoring
15551576 applicationInsightResourceId : enableMonitoring ? applicationInsights !.outputs .resourceId : null
@@ -1685,7 +1706,7 @@ output SQLDB_DATABASE string = 'sqldb-${solutionSuffix}'
16851706output SQLDB_SERVER string = sqlDBModule .outputs .name
16861707
16871708@description ('Contains SQL database user managed identity client ID.' )
1688- output SQLDB_USER_MID string = sqlUserAssignedIdentity .outputs .clientId
1709+ output SQLDB_USER_MID string = backendUserAssignedIdentity .outputs .clientId
16891710
16901711@description ('Contains AI project client usage setting.' )
16911712output USE_AI_PROJECT_CLIENT string = 'False'
0 commit comments