浏览我的Azure审核日志,发现有人删除了一堆服务。我在“发起者”下看到一个对象ID(GUID)。文档说这在JSON中也称为“调用者”。
主叫方:根据可用性执行操作,UPN声明或SPN声明的用户的电子邮件地址。
因此,现在没有运气尝试了这些AZ CLI命令:
寻找用户
sdistefa@Azure:~$ az ad user show --upn-or-object-id 5e9a4129-c335-4dcb-84d0-488531e7b026
但是得到:
Resource '5e9a4129-c335-4dcb-84d0-488531e7b026' does not exist or one of its queried reference-property objects are not present.
寻找服务主体:
sdistefa@Azure:~$ az ad sp list --subscription 9350e6db-d02d-4db7-baee-76f9498dfd13 --spn 5e9a4129-c335-4dcb-84d0-488531e7b026
[]
我需要弄清楚如何查询UPN索赔或服务主体索赔……我想?
我切换到Powershell。我问自己要查看我的ObjectId,然后尝试使用有效ID来查找自己的命令。 PS Azure:> Get-AzureADUser -ObjectId“ sdistefa@itron.com”
ObjectId DisplayName UserPrincipalName UserType -------- ----------- ----------------- -------- f9f1560e-ecba-461d-a811-c0f923a7895a DiStefano,Steve sdistefa@itron.com会员 Azure:/ PS Azure:> Get-AzureADObjectByObjectId -objectid f9f1560e-ecba-461d-a811-c0f923a7895a
ObjectId DisplayName UserPrincipalName UserType -------- ----------- ----------------- -------- f9f1560e-ecba-461d-a811-c0f923a7895a DiStefano,史蒂夫sdistefa@itron.com成员
现在,我尝试通过活动Log:中的ObjectId,它返回一个空白: Azure:/ PS Azure:> Get-AzureADObjectByObjectId -objectid 5e9a4129-c335-4dcb-84d0-488531e7b026 Azure:/ PS Azure:>
答案 0 :(得分:0)
您正在使用命令az ad sp list
将ID传递给-spn标志,但是spn代表“服务主体名称”,因为在这里处理id时,最好使用{{ 3}},并使用-id
标志:
az ad sp show --id 00000000-0000-0000-0000-000000000000
答案 1 :(得分:0)
使用PowerShell,这就是我要做的:
$valid_email_regex = '^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$'
if ($activityLogs.Caller -match $valid_email_regex) {
$resourceLogs["event_initiated_by"] = $activityLogs.Caller
}
else {
$resourceLogs["event_initiated_by"] = "{0} ({1})" -f (Get-AzADServicePrincipal -ObjectId $activityLogs.Caller).DisplayName, $activityLogs.Caller
}
如果不是电子邮件,则为ObjectId,因此我使用“ Get-AzADServicePrincipal”来检索DisplayName(实际上是使用ObjectId)。然后,我格式化结果以在DisplayName之后的括号中添加ObjectId。
所以回答您问题的主要命令是:
(Get-AzADServicePrincipal -ObjectId ***************).DisplayName