【问题标题】:How can I get the service principal name of app object guid?如何获取应用程序对象 guid 的服务主体名称?
【发布时间】:2022-10-06 20:23:26
【问题描述】:

我正在尝试在调用者字段中获取服务主体 guid 的等效显示名称。

我正在使用下面的 powershell 代码。

$app = Get-AzActivityLog -ResourceId $resource.id -StartTime (get-date).AddDays(-90) -EndTime (get-date) | `
        Where-Object { $_.Authorization.Action -like \"*/write\" } | Sort-Object EventTimestamp | Select-Object caller, EventTimestamp -First 1

谢谢你。

  • 现有代码有什么问题?
  • 我是否理解正确 - 您想获取与 Apple 注册相关的服务主体(企业应用程序)?
  • 嗨,当我执行该命令时,它将从 JSON 返回调用者值。如果服务主体是在 Azure 中部署资源的人,则调用方值将是服务主体的 GUID(这与应用程序 ID 和对象 ID 不同)。要求是需要根据其 id 获取应用程序名称或应用程序的显示名称。在此先感谢您的帮助。

标签: azure powershell service-principal


【解决方案1】:

使用Get-AzActivityLog我们无法直接获取服务主体名称。如果我们想要获取服务主体名称/应用程序显示名称,您必须使用Get-AzADServicePrincipal.

通向使用对象 guid 获取应用程序 ID/显示名称或服务主体名称.

$app = Get-AzActivityLog -StartTime 2022-10-01T10:30 -EndTime 2022-10-14T11:30 | Where-Object { $_.Authorization.Action -like "*/write" } | Sort-Object EventTimestamp | Select-Object caller, EventTimestamp -First 1

# it will return either e-mail or ObjectId
# If it returns Object Id only we can get the Service principal/Application Display Name using Eg cmd "Get-AzADApplication -DisplayName $name | Get-AzADServicePrincipal"

(Get-AzADServicePrincipal -ObjectId $app.Caller).DisplayName

有电子邮件的来电者

具有对象 ID 的调用者

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-08
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    相关资源
    最近更新 更多