如何将活动日志中的对象ID与用户,SPN声明或UPN声明相关联

时间:2019-06-20 14:08:53

标签: azure azure-active-directory

浏览我的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:>

2 个答案:

答案 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