Felügyelt Azure-alkalmazás felügyelt identitással
Megjegyzés:
Az Azure Managed Applications felügyelt identitástámogatása jelenleg előzetes verzióban érhető el. A felügyelt identitás használatához használja a 2018-09-01-preview API-verziót.
Megtudhatja, hogyan konfigurálhat felügyelt alkalmazásokat felügyelt identitások elhelyezésére. A felügyelt identitással lehetővé teheti az ügyfél számára, hogy hozzáférést biztosítson a felügyelt alkalmazásnak a meglévő erőforrásokhoz. Az Azure platform kezeli az identitást, és nem követeli meg, hogy titkos kulcsokat építsen ki vagy forgassa el. A Microsoft Entra ID-ban található felügyelt identitásokról további információt az Azure-erőforrások felügyelt identitásai című témakörben talál.
Az alkalmazás számára kétféle identitástípust lehet megadni:
- A rendszer által hozzárendelt felügyelt identitás az alkalmazáshoz van kötve, és az alkalmazás törlésekor törlődik. Egy alkalmazás csak egy rendszer által hozzárendelt felügyelt identitással rendelkezhet.
- A felhasználó által hozzárendelt felügyelt identitás egy önálló Azure-erőforrás, amely hozzárendelhető az alkalmazáshoz. Egy alkalmazás több felhasználó által hozzárendelt felügyelt identitással is rendelkezhet.
Felügyelt identitás használata
A felügyelt identitás számos forgatókönyvet tesz lehetővé a felügyelt alkalmazásokhoz. Néhány gyakori megoldási forgatókönyv:
- Meglévő Azure-erőforrásokhoz társított felügyelt alkalmazás üzembe helyezése. Ilyen például egy Azure-beli virtuális gép (VM) üzembe helyezése a felügyelt alkalmazáson belül, amely egy meglévő hálózati adapterhez van csatolva.
- A felügyelt alkalmazás és a közzétevő hozzáférésének biztosítása a felügyelt erőforráscsoporton kívüli Azure-erőforrásokhoz.
- Felügyelt alkalmazások működési identitásának biztosítása a tevékenységnaplóhoz és az Azure-on belüli egyéb szolgáltatásokhoz.
Felügyelt identitás hozzáadása
Felügyelt identitással rendelkező felügyelt alkalmazás létrehozásához egy másik tulajdonságot kell beállítani az Azure-erőforráson. Az alábbi példa egy identitásminta-tulajdonságot mutat be:
{
"identity": {
"type": "SystemAssigned, UserAssigned",
"userAssignedIdentities": {
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.ManagedIdentity/userassignedidentites/myuserassignedidentity": {}
}
}
}
A felügyelt alkalmazások identity
kétféleképpen hozhatók létre: createUiDefinition.json és Azure Resource Manager-sablonok. Az egyszerű egyszeri létrehozási forgatókönyvek esetében a createUiDefinition parancsot kell használni a felügyelt identitás engedélyezéséhez, mivel gazdagabb élményt nyújt. Ha azonban olyan fejlett vagy összetett rendszerekkel foglalkozik, amelyek automatizált vagy több felügyelt alkalmazástelepítést igényelnek, sablonok használhatók.
CreateUiDefinition használata
A felügyelt alkalmazások a createUiDefinition.json használatával konfigurálhatók felügyelt identitással. A kimenetek szakaszban a kulcs managedIdentity
használható a felügyelt alkalmazássablon identitástulajdonságának felülbírálásához. Az alábbi minta egy rendszer által hozzárendelt felügyelt identitást tesz lehetővé a felügyelt alkalmazásban. Összetettebb identitásobjektumok hozhatók létre a createUiDefinition-elemek használatával, amelyek bemeneteket kérnek a fogyasztótól. Ezek a bemenetek a felhasználó által hozzárendelt felügyelt identitással rendelkező felügyelt alkalmazások létrehozásához használhatók.
"outputs": {
"managedIdentity": { "Type": "SystemAssigned" }
}
Mikor érdemes a createUiDefinitiont használni a felügyelt identitáshoz?
Az alábbiakban néhány javaslatot talál arra, hogy mikor érdemes a createUiDefinitiont használni a felügyelt identitások felügyelt alkalmazásokon való engedélyezéséhez.
- A felügyelt alkalmazás létrehozása az Azure Portalon vagy az Azure Marketplace-en keresztül történik.
- A felügyelt identitás összetett felhasználói bemenetet igényel.
- A felügyelt alkalmazás létrehozásához a felügyelt identitásra van szükség.
Felügyelt identitás létrehozásaUiDefinition vezérlőelem
A createUiDefinition.json támogatja a beépített felügyelt identitásvezérlőt.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [],
"steps": [
{
"name": "applicationSettings",
"label": "Application Settings",
"subLabel": {
"preValidation": "Configure your application settings",
"postValidation": "Done"
},
"bladeTitle": "Application Settings",
"elements": [
{
"name": "appName",
"type": "Microsoft.Common.TextBox",
"label": "Managed application Name",
"toolTip": "Managed application instance name",
"visible": true
},
{
"name": "appIdentity",
"type": "Microsoft.ManagedIdentity.IdentitySelector",
"label": "Managed Identity Configuration",
"toolTip": {
"systemAssignedIdentity": "Enable system assigned identity to grant the managed application access to additional existing resources.",
"userAssignedIdentity": "Add user assigned identities to grant the managed application access to additional existing resources."
},
"defaultValue": {
"systemAssignedIdentity": "Off"
},
"options": {
"hideSystemAssignedIdentity": false,
"hideUserAssignedIdentity": false,
"readOnlySystemAssignedIdentity": false
},
"visible": true
}
]
}
],
"outputs": {
"applicationResourceName": "[steps('applicationSettings').appName]",
"location": "[location()]",
"managedIdentity": "[steps('applicationSettings').appIdentity]"
}
}
}
Az Azure Resource Manager-sablonok használata
Megjegyzés:
A Marketplace által felügyelt alkalmazássablonok automatikusan létrejönnek az Azure Portal létrehozási felületén áthaladó ügyfelek számára.
Ezekben a forgatókönyvekben a managedIdentity
createUiDefinition kimeneti kulcsát kell használni az engedélyezett identitáshoz.
A felügyelt identitás Azure Resource Manager-sablonokon keresztül is engedélyezhető. Az alábbi minta egy rendszer által hozzárendelt felügyelt identitást tesz lehetővé a felügyelt alkalmazásban. Összetettebb identitásobjektumok alakíthatók ki az Azure Resource Manager-sablonparaméterek használatával bemenetek biztosításához. Ezek a bemenetek a felhasználó által hozzárendelt felügyelt identitással rendelkező felügyelt alkalmazások létrehozásához használhatók.
Mikor érdemes Azure Resource Manager-sablonokat használni felügyelt identitáshoz?
Az alábbiakban néhány javaslatot találhat arra vonatkozóan, hogy mikor érdemes Azure Resource Manager-sablonokat használni a felügyelt identitások felügyelt alkalmazásokon való engedélyezéséhez.
- A felügyelt alkalmazások sablon alapján programozott módon telepíthetők.
- A felügyelt alkalmazás kiépítéséhez egyéni szerepkör-hozzárendelésekre van szükség a felügyelt identitáshoz.
- A felügyelt alkalmazásnak nincs szüksége az Azure Portal és a Marketplace létrehozási folyamatára.
SystemAssigned sablon
Egy alapszintű Azure Resource Manager-sablon, amely egy felügyelt alkalmazást helyez üzembe rendszer által hozzárendelt felügyelt identitással.
"resources": [
{
"type": "Microsoft.Solutions/applications",
"name": "[parameters('applicationName')]",
"apiVersion": "2018-09-01-preview",
"location": "[parameters('location')]",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"ManagedResourceGroupId": "[parameters('managedByResourceGroupId')]",
"parameters": { }
}
}
]
UserAssigned sablon
Egy alapszintű Azure Resource Manager-sablon, amely egy felügyelt alkalmazást helyez üzembe egy felhasználó által hozzárendelt felügyelt identitással.
"resources": [
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"name": "[parameters('managedIdentityName')]",
"apiVersion": "2018-11-30",
"location": "[parameters('location')]"
},
{
"type": "Microsoft.Solutions/applications",
"name": "[parameters('applicationName')]",
"apiVersion": "2018-09-01-preview",
"location": "[parameters('location')]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',parameters('managedIdentityName'))]": {}
}
},
"properties": {
"ManagedResourceGroupId": "[parameters('managedByResourceGroupId')]",
"parameters": { }
}
}
]
Hozzáférés biztosítása az Azure-erőforrásokhoz
Miután egy felügyelt alkalmazás identitást kapott, egy szerepkör-hozzárendelés létrehozásával hozzáférést kaphat a meglévő Azure-erőforrásokhoz.
Ehhez keresse meg és válassza ki a felügyelt alkalmazás vagy a felhasználó által hozzárendelt felügyelt identitás nevét, majd válassza a Hozzáférés-vezérlés (IAM) lehetőséget. A részletes lépésekért tekintse meg az Azure-szerepköröknek az Azure Portalon történő hozzárendelését ismertető cikket.
Meglévő Azure-erőforrások összekapcsolása
Megjegyzés:
A felügyelt alkalmazás üzembe helyezése előtt konfigurálnia kell egy felhasználó által hozzárendelt felügyelt identitást. Emellett a felügyelt alkalmazások társított erőforrás-üzembe helyezése csak a Marketplace-típus esetében támogatott.
A felügyelt identitással olyan felügyelt alkalmazásokat is üzembe helyezhet, amelyek az üzembe helyezés során hozzáférést igényelnek a meglévő erőforrásokhoz. Amikor az ügyfél kiépíti a felügyelt alkalmazást, a felhasználó által hozzárendelt felügyelt identitások hozzáadhatók, hogy több engedélyezést biztosítsanak a mainTemplate központi telepítéséhez.
A createUiDefinition létrehozása csatolt erőforrással
Ha a felügyelt alkalmazás üzembe helyezését meglévő erőforrásokhoz kapcsolja, a meglévő Azure-erőforrást és a felhasználó által hozzárendelt felügyelt identitást is meg kell adni az adott erőforrásra vonatkozó szerepkör-hozzárendeléssel.
Minta createUiDefinition.json , amely két bemenetet igényel: egy hálózati adapter erőforrás-azonosítóját és egy felhasználó által hozzárendelt felügyelt identitás erőforrás-azonosítóját.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{}
],
"steps": [
{
"name": "managedApplicationSetting",
"label": "Managed Application Settings",
"subLabel": {
"preValidation": "Managed Application Settings",
"postValidation": "Done"
},
"bladeTitle": "Managed Application Settings",
"elements": [
{
"name": "networkInterfaceId",
"type": "Microsoft.Common.TextBox",
"label": "Network interface resource ID",
"defaultValue": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Network/networkInterfaces/existingnetworkinterface",
"toolTip": "Must represent the identity as an Azure Resource Manager resource identifer format ex. /subscriptions/sub1/resourcegroups/myGroup/providers/Microsoft.Network/networkInterfaces/networkinterface1",
"visible": true
},
{
"name": "userAssignedId",
"type": "Microsoft.Common.TextBox",
"label": "User-assigned managed identity resource ID",
"defaultValue": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.ManagedIdentity/userassignedidentites/myuserassignedidentity",
"toolTip": "Must represent the identity as an Azure Resource Manager resource identifer format ex. /subscriptions/sub1/resourcegroups/myGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1",
"visible": true
}
]
}
],
"outputs": {
"existingNetworkInterfaceId": "[steps('managedApplicationSetting').networkInterfaceId]",
"managedIdentity": "[parse(concat('{\"Type\":\"UserAssigned\",\"UserAssignedIdentities\":{',string(steps('managedApplicationSetting').userAssignedId),':{}}}'))]"
}
}
}
Ez a createUiDefinition.json létrehoz egy létrehozási felhasználói felületet, amely két mezőt tartalmaz. Az első mező lehetővé teszi, hogy a felhasználó beírja a felügyelt alkalmazás üzembe helyezéséhez csatolt erőforrás Azure-erőforrás-azonosítóját. A második az, hogy a fogyasztó megadja a felhasználó által hozzárendelt felügyelt identitás Azure-erőforrás-azonosítóját, amely hozzáfér a társított Azure-erőforráshoz. A létrehozott felület a következőképpen nézne ki:
A mainTemplate létrehozása csatolt erőforrással
A createUiDefinition frissítése mellett a fő sablont is frissíteni kell az átadott csatolt erőforrás-azonosító elfogadásához. A fő sablon egy új paraméter hozzáadásával frissíthető az új kimenet elfogadásához. Mivel a managedIdentity
kimenet felülírja a létrehozott felügyelt alkalmazássablon értékét, a rendszer nem továbbítja a fő sablonnak, és nem kell szerepelnie a paraméterek szakaszában.
Minta fősablon, amely a hálózati profilt a createUiDefinition.json által biztosított meglévő hálózati adapterre állítja.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"existingNetworkInterfaceId": { "type": "string" }
},
"variables": {
},
"resources": [
{
"apiVersion": "2016-04-30-preview",
"type": "Microsoft.Compute/virtualMachines",
"name": "myLinkedResourceVM",
"location": "[resourceGroup().location]",
"properties": {
…,
"networkProfile": {
"networkInterfaces": [
{
"id": "[parameters('existingNetworkInterfaceId')]"
}
]
}
}
}
]
}
A felügyelt alkalmazás felhasználása csatolt erőforrással
A felügyelt alkalmazáscsomag létrehozása után a felügyelt alkalmazás az Azure Portalon keresztül használható. A használat előtt több előfeltételt is meg kell tenni.
- Létre kell hozni a szükséges társított Azure-erőforrás egy példányát.
- Létre kell hozni a felhasználó által hozzárendelt felügyelt identitást, és szerepkör-hozzárendeléseket kell adni a társított erőforráshoz.
- A meglévő társított erőforrás-azonosítót és a felhasználó által hozzárendelt felügyelt identitásazonosítót a createUiDefinition biztosítja.
A felügyelt identitás jogkivonatának elérése
A felügyelt alkalmazás jogkivonata mostantól elérhető az listTokens
API-on keresztül a közzétevő bérlőjén. Egy példakérés a következőképpen nézhet ki:
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Solutions/applications/{applicationName}/listTokens?api-version=2018-09-01-preview HTTP/1.1
{
"authorizationAudience": "https://management.azure.com/",
"userAssignedIdentities": [
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userAssignedIdentityName}"
]
}
Kérelem törzsparaméterei:
Parameter | Kötelező | Leírás |
---|---|---|
authorizationAudience |
nem | A célerőforrás alkalmazásazonosítójának URI-ja. Ez a aud kibocsátott jogkivonat (célközönség) jogcíme is. Az alapértelmezett érték a "https://management.azure.com/" |
userAssignedIdentities |
nem | A felhasználó által hozzárendelt felügyelt identitások listája a jogkivonat lekéréséhez. Ha nincs megadva, listTokens a rendszer által hozzárendelt felügyelt identitás jogkivonatát adja vissza. |
A mintaválasz a következőképpen nézhet ki:
HTTP/1.1 200 OK
Content-Type: application/json
{
"value": [
{
"access_token": "eyJ0eXAi…",
"expires_in": "2…",
"expires_on": "1557…",
"not_before": "1557…",
"authorizationAudience": "https://management.azure.com/",
"resourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Solutions/applications/{applicationName}",
"token_type": "Bearer"
}
]
}
A válasz egy tokentömböt tartalmaz a value
tulajdonság alatt:
Parameter | Leírás |
---|---|
access_token |
A kért hozzáférési jogkivonat. |
expires_in |
A hozzáférési jogkivonat érvényessége másodpercben. |
expires_on |
A hozzáférési jogkivonat lejárati ideje. Ez az érték a korszaktól számítva másodpercek számaként jelenik meg. |
not_before |
A hozzáférési jogkivonat érvénybe lépésének időideje. Ez az érték a korszaktól számítva másodpercek számaként jelenik meg. |
authorizationAudience |
A aud hozzáférési jogkivonat (célközönség) kérése. Ez az érték megegyezik a kérésben listTokens megadott értékkel. |
resourceId |
A kibocsátott jogkivonat Azure-erőforrás-azonosítója. Ez az érték vagy a felügyelt alkalmazás azonosítója, vagy a felhasználó által hozzárendelt felügyelt identitásazonosító. |
token_type |
A jogkivonat típusa. |