如何使用 Powershell 获取与服务主体关联的证书的指纹?
How to get thumbprint of the certificate associated with a service principal using Powershell?
我有一个与 Azure AD 中的服务主体关联的证书。如何使用 powershell 获取与其关联的证书名称或指纹?
我尝试了 Get-AzureRmADServicePrincipalCredential
、Get-AzureRmADSpCredential
和 Get-AzureADServicePrincipalKeyCredential
命令,但它们 return Key Identifier
不是指纹。
基本上我想在撤销之前识别哪个证书与主体相关联。
尝试使用下面的 PS 命令通过 Microsoft Graph API 获取证书指纹:
$clientId = "<your Azure AD App ID>"
$clientSec="<your Azure AD App Secret>"
$appObjId = "<object ID of the app that you want to query>"
$tenant = "<your tenant ID>"
$body=@{
"grant_type"="client_credentials";
"resource"="https://graph.microsoft.com/";
"client_id"= $clientId;
"client_secret" = $clientSec
}
$accessToken=(Invoke-RestMethod -Uri "https://login.windows.net/$tenant/oauth2/token" -Method POST -Body $body ).access_token
$keyCreds = Invoke-RestMethod -Uri "https://graph.microsoft.com/beta/applications/$appObjId/keyCredentials" -Method Get -Headers @{"Authorization" = "Bearer $accessToken"}
$keyCreds.value.customKeyIdentifier
结果:
我在门户网站上的证书:
查询结果:
请注意,确保您用于获取令牌的应用具有以下权限,以便它可以调用 Microsoft graph API 来查询您的应用:
正如@Stanley Gong 提到的,您可以使用 MS Graph 来获取它。
还有一种方法,试试下面的命令,$Thumbprint
就是你想要的。
注意<object-id>
是你的AD App(App注册)的object id,不是service principal(Enterprise application),它们是不同的。
$CustomKeyIdentifier = (Get-AzureADApplicationKeyCredential -ObjectId "<object-id>").CustomKeyIdentifier
$Thumbprint = [System.Convert]::ToBase64String($CustomKeyIdentifier)
我有一个与 Azure AD 中的服务主体关联的证书。如何使用 powershell 获取与其关联的证书名称或指纹?
我尝试了 Get-AzureRmADServicePrincipalCredential
、Get-AzureRmADSpCredential
和 Get-AzureADServicePrincipalKeyCredential
命令,但它们 return Key Identifier
不是指纹。
基本上我想在撤销之前识别哪个证书与主体相关联。
尝试使用下面的 PS 命令通过 Microsoft Graph API 获取证书指纹:
$clientId = "<your Azure AD App ID>"
$clientSec="<your Azure AD App Secret>"
$appObjId = "<object ID of the app that you want to query>"
$tenant = "<your tenant ID>"
$body=@{
"grant_type"="client_credentials";
"resource"="https://graph.microsoft.com/";
"client_id"= $clientId;
"client_secret" = $clientSec
}
$accessToken=(Invoke-RestMethod -Uri "https://login.windows.net/$tenant/oauth2/token" -Method POST -Body $body ).access_token
$keyCreds = Invoke-RestMethod -Uri "https://graph.microsoft.com/beta/applications/$appObjId/keyCredentials" -Method Get -Headers @{"Authorization" = "Bearer $accessToken"}
$keyCreds.value.customKeyIdentifier
结果:
我在门户网站上的证书:
查询结果:
请注意,确保您用于获取令牌的应用具有以下权限,以便它可以调用 Microsoft graph API 来查询您的应用:
正如@Stanley Gong 提到的,您可以使用 MS Graph 来获取它。
还有一种方法,试试下面的命令,$Thumbprint
就是你想要的。
注意<object-id>
是你的AD App(App注册)的object id,不是service principal(Enterprise application),它们是不同的。
$CustomKeyIdentifier = (Get-AzureADApplicationKeyCredential -ObjectId "<object-id>").CustomKeyIdentifier
$Thumbprint = [System.Convert]::ToBase64String($CustomKeyIdentifier)