New AzureADApplicationKeyCredential是否对CustomKeyIdentifier和Va



我正在使用New-AzureADApplicationKeyCredential为应用程序创建KeyCredentials。文件

首先,我对指纹进行base64编码

$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cer.Import("C:UsersPFullerDesktopabc.cer") 
...
$bin = $cer.GetCertHash()
$base64Thumbprint = [System.Convert]::ToBase64String($bin)
...
New-AzureADApplicationKeyCredential -ObjectId <id> 
-CustomKeyIdentifier $base64Thumbprint  
-Type AsymmetricX509Cert 
-Usage Verify -Value $base64Value

但AAD清单上的结果是双基64编码

"keyCredentials": [
{
"customKeyIdentifier": "base64(base64Thumbprint)",
...
}
],

根据微软身份平台应用认证证书凭证

customKeyIdentifier只能base64编码一次并存储在清单的keyCredentials上。

我是不是滥用了这个命令或者这里出了什么问题?因为在我将清单转换为base64编码一次之后,每件事都能正常工作。

谢谢你的帮助。

根据我的测试,当我们使用New-AzureADApplicationKeyCredential为应用程序创建KeyCredential时,customKeyIdentifiervalue都是双基64编码的。

之后,我使用以下代码来获得带有此证书的访问令牌:

var app = ConfidentialClientApplicationBuilder.Create("{clientId}")
.WithAuthority(AzureCloudInstance.AzurePublic, "{tenantId}")
.WithCertificate(cer)
.Build();
var result = await app.AcquireTokenForClient(new[] { "https://graph.microsoft.com/.default" }).ExecuteAsync();
Console.WriteLine(result.AccessToken);

我发现我们可以成功地获得具有正确角色的访问令牌。

所以我认为New-AzureADApplicationKeyCredentialbase64编码customKeyIdentifiervalue还有一段时间。但当我们使用X509Certificate获取访问令牌时,它也能正确处理它们。

相关内容

最新更新