如何使用Azure PowerShell SDK将必需的权限添加到Azure Active Directory(AAD)应用程序?
我的方案,我试图使用守护进程在这里列出的指示,以自动化的我AAD应用之一的创建它们,让另一其他的WebAPI服务电话(AAD不同的应用程序):如何使用Azure PowerShell SDK将必需的权限添加到Azure Active Directory(AAD)应用程序?
https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-daemon/
我已经能够通过PowerShell自动创建AAD应用程序和所需的访问密钥。
下面是如何创建一个附加的关键应用程序:
# Generate all the keys (secrets) for the AAD application.
$passwordCredentials = @()
foreach ($key in $activeDirectoryApplication.Keys.Key)
{
$keyKeyVaultName = $key.KeyVaultName
$keyName = $key.KeyVaultKeyName
$expiration = $key.Expiration
LogInfo "Generating key with key name '$keyName' into key vault '$keyKeyVaultName' with key expiry of '$expiration'."
$passwordCredential = GenerateActiveDirectoryApplicationKeyPasswordCredential $key
$passwordCredentials += $passwordCredential
PublishActiveDirectoryApplicationKeyToKeyVault $key $passwordCredential
}
$existingApplication = New-AzureRmADApplication -DisplayName $applicationName -HomePage $applicationHomePage -IdentifierUris @($applicationIdentifier) -PasswordCredentials $passwordCredentials
我想不出什么了是如何在其授予的权限访问的WebAPI应用上面的链接自动第8步:
开始=“8”>
- 配置权限的应用程序 - 在设置菜单中,选择“必需的权限”部分中,单击Add(添加),然后在文本框中选择一个API,并键入“TodoListService” 。然后,点击Select Permissions并选择'Access TodoListService'。
有谁知道这是可能的在Azure SDK的PowerShell或者,我需要做一些其他的方式(也许AAD图形API)?
谢谢!
要分配权限,您需要使用New-AzureRmRoleAssignment
。这将允许您在某个范围内为某个对象(用户\组\应用程序)分配权限。如果你需要内置角色,那么你很好。如果您需要创建角色,请使用New-AzureRmRoleDefinition
。
$role = Get-AzureRmRoleDefinition "Virtual Machine Contributor"
$role.Id = $null
$role.Name = "Classic storage reader"
$role.Actions.Clear()
$role.Actions.Add("Microsoft.ClassicStorage/storageAccounts/read")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/xxxx")
New-AzureRmRoleDefinition -Role $role
阅读:
https://docs.microsoft.com/en-us/azure/active-directory/role-based-access-control-manage-access-powershell
https://docs.microsoft.com/en-us/powershell/module/azurerm.resources/new-azurermroleassignment?view=azurermps-4.1.0
https://docs.microsoft.com/en-us/powershell/module/azurerm.resources/new-azurermroledefinition?view=azurermps-4.1.0