Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az Azure DevTest Labs lehetővé teszi önkiszolgáló fejlesztői tesztkörnyezetek gyors létrehozását az Azure Portal használatával. Ha azonban több csapat és több DevTest Labs-példány is van, a létrehozási folyamat automatizálása időt takaríthat meg. Az Azure Resource Manager-sablonok lehetővé teszik tesztkörnyezetek, tesztkörnyezeti virtuális gépek, egyéni rendszerképek, képletek létrehozását és felhasználók automatikus hozzáadását. Ez a cikk kifejezetten a felhasználók DevTest Labs-példányhoz való hozzáadására összpontosít.
Ha felhasználót szeretne hozzáadni egy tesztkörnyezethez, a felhasználót a tesztkörnyezet DevTest Labs-felhasználó szerepköréhez kell hozzáadnia. Ez a cikk bemutatja, hogyan automatizálhatja a felhasználók laborba való felvételét az alábbi módszerek egyikével:
- Azure Resource Manager-sablonok
- Azure PowerShell-parancsmagok
- Azure parancssori felület (CLI).
Használjon Azure Resource Manager-sablonokat
Az alábbi Resource Manager-mintasablon egy tesztkörnyezet DevTest Labs-felhasználói szerepköréhez hozzáadni kívánt felhasználót határoz meg.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"principalId": {
"type": "string",
"metadata": {
"description": "The objectId of the user, group, or service principal for the role."
}
},
"labName": {
"type": "string",
"metadata": {
"description": "The name of the lab instance to be created."
}
},
"roleAssignmentGuid": {
"type": "string",
"metadata": {
"description": "Guid to use as the name for the role assignment."
}
}
},
"variables": {
"devTestLabUserRoleId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/111111111-0000-0000-11111111111111111')]",
"fullDevTestLabUserRoleName": "[concat(parameters('labName'), '/Microsoft.Authorization/', parameters('roleAssignmentGuid'))]",
"roleScope": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.DevTestLab/labs/', parameters('labName'))]"
},
"resources": [
{
"apiVersion": "2016-05-15",
"type": "Microsoft.DevTestLab/labs",
"name": "[parameters('labName')]",
"location": "[resourceGroup().location]"
},
{
"apiVersion": "2016-07-01",
"type": "Microsoft.DevTestLab/labs/providers/roleAssignments",
"name": "[variables('fullDevTestLabUserRoleName')]",
"properties": {
"roleDefinitionId": "[variables('devTestLabUserRoleId')]",
"principalId": "[parameters('principalId')]",
"scope": "[variables('roleScope')]"
},
"dependsOn": [
"[resourceId('Microsoft.DevTestLab/labs', parameters('labName'))]"
]
}
]
}
Ha a szerepkört ugyanabban a sablonban rendeli hozzá, amely a labort hozza létre, ne felejtsen el függőséget hozzáadni a szerepkör-hozzárendelési erőforrás és a tesztkörnyezet között. További információ: Függőségek meghatározása az Azure Resource Manager-sablonokban .
Szerepkör-hozzárendelési erőforrás adatai
A szerepkör-hozzárendelési erőforrásnak meg kell adnia a típust és a nevet.
Az első dolog, amit meg kell jegyezni, hogy az erőforrás típusa nem Microsoft.Authorization/roleAssignments olyan, mint egy erőforráscsoport esetében. Ehelyett az erőforrástípus a mintát {provider-namespace}/{resource-type}/providers/roleAssignmentsköveti. Ebben az esetben az erőforrás típusa a következő lesz Microsoft.DevTestLab/labs/providers/roleAssignments: .
A szerepkör-hozzárendelés nevének globálisan egyedinek kell lennie. A hozzárendelés neve a mintát {labName}/Microsoft.Authorization/{newGuid}használja. Ez newGuid a sablon paraméterértéke. Biztosítja, hogy a szerepkör-hozzárendelés neve egyedi legyen. Mivel a GRAFIKUS GUID-k létrehozásához nincsenek sablonfüggvények, saját maga kell létrehoznia egy GUID-azonosítót bármely GUID-generátor eszközzel.
A sablonban a szerepkör-hozzárendelés nevét a fullDevTestLabUserRoleName változó határozza meg. A sablon pontos sora a következő:
"fullDevTestLabUserRoleName": "[concat(parameters('labName'), '/Microsoft.Authorization/', parameters('roleAssignmentGuid'))]"
Szerepkör-hozzárendelési erőforrás tulajdonságai
Maga a szerepkör-hozzárendelés három tulajdonságot határoz meg. Szüksége van a roleDefinitionId, principalIdés scope.
Szerepkördefiníció
A szerepkördefiníció azonosítója a meglévő szerepkördefiníció sztringazonosítója. A szerepkör-azonosító az űrlapon /subscriptions/{subscription-id}/providers/Microsoft.Authorization/roleDefinitions/{role-definition-id}van.
Az előfizetés azonosítóját sablonfüggvény használatával subscription().subscriptionId szerezheti be.
Be kell szereznie a beépített szerepkör szerepkördefinícióját DevTest Labs User . A DevTest Labs felhasználói szerepkör GUID-azonosítójának lekéréséhez használhatja a Szerepkör-hozzárendelések REST API-t vagy a Get-AzRoleDefinition parancsmagot.
$dtlUserRoleDefId = (Get-AzRoleDefinition -Name "DevTest Labs User").Id
A szerepkör-azonosító a változók szakaszban van definiálva és elnevezve devTestLabUserRoleId. A sablonban a szerepkör azonosítója a következő: 1111111111-0000-0000-111111111111111111111.
"devTestLabUserRoleId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/111111111-0000-0000-11111111111111111')]",
Egyszerű azonosító
Az egyszerű azonosító annak az Active Directory-felhasználónak, csoportnak vagy szolgáltatásnévnek az objektumazonosítója, amelyet laborfelhasználóként szeretne hozzáadni a laborhoz. A sablon paraméterként használja a ObjectId sablont.
Az ObjectId-et a Get-AzADUser, a Get-AzADGroup vagy a Get-AzADServicePrincipal PowerShell-parancsmagokkal szerezheti be. Ezek a parancsmagok egy vagy több Olyan Active Directory-objektumot ad vissza, amelyek azonosító tulajdonsággal rendelkeznek, ami a szükséges objektumazonosító. Az alábbi példa bemutatja, hogyan szerezheti be egyetlen felhasználó objektumazonosítóját egy vállalatnál.
$userObjectId = (Get-AzADUser -UserPrincipalName 'email@company.com').Id
Használhatja a Microsoft Graph PowerShell-parancsmagokat is, amelyek tartalmazzák a Get-MgUser, a Get-MgGroup és a Get-MgServicePrincipal parancsmagokat.
Hatókör
A hatókör azt az erőforrást vagy erőforráscsoportot határozza meg, amelyre a szerepkör-hozzárendelésnek vonatkoznia kell. Erőforrások esetén a hatókör a következő formában van: /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/{provider-namespace}/{resource-type}/{resource-name}. A sablon a subscription().subscriptionId függvény használatával tölti ki az subscription-id alkatrészt, a sablonfüggvényt pedig resourceGroup().name az resource-group-name alkatrész kitöltéséhez. Ezeknek a függvényeknek a használata azt jelenti, hogy az a tesztkörnyezet, amelyhez szerepkört rendel, az aktuális előfizetésben és ugyanabban az erőforráscsoportban kell lennie, amelyhez a sablon üzembe helyezése történik. Az utolsó rész resource-namea labor neve. Ez az érték a példában szereplő sablonparaméteren keresztül érkezik.
A sablon szerepkör-hatóköre:
"roleScope": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.DevTestLab/labs/', parameters('labName'))]"
A sablon telepítése
Először hozzon létre egy paraméterfájlt (például: azuredeploy.parameters.json), amely a Resource Manager-sablon paramétereinek értékeit adja át.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"principalId": {
"value": "aaaaaaaa-bbbb-cccc-1111-222222222222"
},
"labName": {
"value": "MyLab"
},
"roleAssignmentGuid": {
"value": "22222222-2222-2222-2222-222222222222"
}
}
}
Ezután a New-AzResourceGroupDeployment PowerShell-parancsmaggal telepítse a Resource Manager-sablont. Az alábbi példaparancs egy személyt, csoportot vagy szolgáltatásnevet rendel egy tesztkörnyezet DevTest Labs-felhasználó szerepköréhez.
New-AzResourceGroupDeployment -Name "MyLabResourceGroup-$(New-Guid)" -ResourceGroupName 'MyLabResourceGroup' -TemplateParameterFile .\azuredeploy.parameters.json -TemplateFile .\azuredeploy.json
Feljegyzés
A csoport üzembehelyezési nevének és a szerepkör-hozzárendelés GUID azonosítójának egyedinek kell lennie. Ha nem egyedi GUID használatával próbál erőforrás-hozzárendelést üzembe helyezni, hibaüzenet jelenik meg RoleAssignmentUpdateNotPermitted .
Ha a sablont többször is használni szeretné, hogy több Active Directory-objektumot is hozzáadjon a tesztkörnyezet DevTest Labs-felhasználói szerepköréhez, fontolja meg a dinamikus objektumok használatát a PowerShell-parancsban. Az alábbi példa a New-Guid parancsmagot használja az erőforráscsoport központi telepítési nevének és a szerepkör-hozzárendelés GUID-jának dinamikus megadásához.
New-AzResourceGroupDeployment -Name "MyLabResourceGroup-$(New-Guid)" -ResourceGroupName 'MyLabResourceGroup' -TemplateFile .\azuredeploy.json -roleAssignmentGuid "$(New-Guid)" -labName "MyLab" -principalId "aaaaaaaa-bbbb-cccc-1111-222222222222"
Azure PowerShell használatával
A bevezetésben leírtaknak megfelelően létrehoz egy új Azure-szerepkör-hozzárendelést, amely hozzáad egy felhasználót a tesztkörnyezet DevTest Labs-felhasználó szerepköréhez. Ezt a PowerShellben a New-AzRoleAssignment parancsmaggal teheti meg. Ez a parancsmag számos választható paramétert biztosít a rugalmasság érdekében. A ObjectId, SigninNamevagy ServicePrincipalName megadható az engedélyekkel rendelkező objektumként.
Íme egy minta Azure PowerShell-parancs, amely hozzáad egy felhasználót a DevTest Labs felhasználói szerepköréhez a megadott tesztkörnyezetben.
New-AzRoleAssignment -UserPrincipalName <email@company.com> -RoleDefinitionName 'DevTest Labs User' -ResourceName '<Lab Name>' -ResourceGroupName '<Resource Group Name>' -ResourceType 'Microsoft.DevTestLab/labs'
Annak az erőforrásnak a megadásához, amelyhez engedélyeket adnak, megadható a ( ) ResourceGroupResourceTypekombinációjával ResourceNamevagy a scope paraméterrel. Bármilyen paraméterek kombinációját is használja, adjon meg elegendő információt a parancsmagnak az Active Directory-objektum (felhasználó, csoport vagy szolgáltatásnév), a hatókör (erőforráscsoport vagy erőforrás) és a szerepkör-definíció egyedi azonosításához.
Az Azure parancssori felület használatával
Az Azure CLI-ben a tesztkörnyezet felhasználójának hozzáadása a tesztkörnyezethez a az role assignment create parancs használatával történik. További információ az Azure CLI-parancsmagokról: Azure-szerepkör-hozzárendelések hozzáadása vagy eltávolítása az Azure CLI használatával.
A hozzáférést kapó objektumot a objectId, signInNameparaméterek spn adhatja meg. Az a tesztkörnyezet, amelyhez az objektum hozzáférést kap, az scope URL-cím vagy a resource-name, resource-typeés resource-group paraméterek kombinációja alapján azonosítható.
Az alábbi Azure CLI-példa bemutatja, hogyan vehet fel egy személyt a Megadott tesztkörnyezet DevTest Labs-felhasználói szerepköréhez.
az role assignment create --roleName "DevTest Labs User" --signInName <email@company.com> -–resource-name "<Lab Name>" --resource-type "Microsoft.DevTestLab/labs" --resource-group "<Resource Group Name>" --role Contributor --scope /subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroupName>
Következő lépések
Tekintse meg az alábbi cikkeket: