Skip to content

Instantly share code, notes, and snippets.

@LuiseFreese
Created September 30, 2024 13:15
Show Gist options
  • Save LuiseFreese/3cbe51ac00fd4ff1212e257b0074838f to your computer and use it in GitHub Desktop.
Save LuiseFreese/3cbe51ac00fd4ff1212e257b0074838f to your computer and use it in GitHub Desktop.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workflows_Secret_Manager_name": {
"defaultValue": "Secret-Manager",
"type": "String"
},
"userAssignedIdentities_sm_identity_externalid": {
"defaultValue": "/subscriptions/{tenantId}}/resourceGroups/{resourceGroup}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managedIdentity}",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Logic/workflows",
"apiVersion": "2017-07-01",
"name": "[parameters('workflows_Secret_Manager_name')]",
"location": "westeurope",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/{tenantId}}/resourceGroups/{resourceGroup}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{managedIdentity}": {}
}
},
"properties": {
"state": "Enabled",
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"KeyVaultName": {
"defaultValue": "{keyvault}",
"type": "String"
},
"appId": {
"defaultValue": "appId{}",
"type": "String"
}
},
"triggers": {
"Recurrence": {
"recurrence": {
"frequency": "Day",
"interval": 30
},
"evaluatedRecurrence": {
"frequency": "Day",
"interval": 30
},
"type": "Recurrence"
}
},
"actions": {
"Compose": {
"runAfter": {
"Create_new_secret": [
"Succeeded"
]
},
"type": "Compose",
"inputs": "@{body('Create_new_secret')['secretText']} "
},
"Create_new_secret": {
"runAfter": {},
"type": "Http",
"inputs": {
"authentication": {
"audience": "https://graph.microsoft.com",
"identity": "[parameters('userAssignedIdentities_sm_identity_externalid')]",
"type": "ManagedServiceIdentity"
},
"body": {
"passwordCredential": {
"displayName": "Auto-rotated-secret",
"endDateTime": "@{addDays(utcNow(), 30)}"
}
},
"method": "POST",
"uri": "https://graph.microsoft.com/v1.0/applications/{appId}/addPassword"
}
},
"Store_secret": {
"runAfter": {
"Compose": [
"Succeeded"
]
},
"type": "Http",
"inputs": {
"authentication": {
"audience": "https://vault.azure.net",
"identity": "[parameters('userAssignedIdentities_sm_identity_externalid')]",
"type": "ManagedServiceIdentity"
},
"body": {
"value": "@outputs('Compose')"
},
"method": "PUT",
"uri": "https://{keyVault}.vault.azure.net/secrets/Auto-rotated-secret?api-version=7.0"
}
}
}
},
"parameters": {}
}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment