1

je tentais de créer une application dans AD Azure avec l'authentification Azure PowerShell certificat, ci-dessous est l'Powershell Snippet:Créer une application AD Azure avec keyvault & Azure certificat d'authentification PowerShell

Login-AzureRmAccount 

$certPassword = ConvertTo-SecureString $CertPassword -AsPlainText -Force 

$x509 = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 -ArgumentList  $certPath,$certPassword 

$credValue = [System.Convert]::ToBase64String($x509.GetRawCertData()) 

$adapp = New-AzureRmADApplication -DisplayName $ApplicationName -HomePage $URL -IdentifierUris $URL -CertValue $credValue -StartDate $startDate -EndDate $endDate  

$sp = New-AzureRmADServicePrincipal -ApplicationId $adapp.ApplicationId 

Set-AzureRmKeyVaultAccessPolicy -VaultName $VaultName -ServicePrincipalName $sp.ServicePrincipalNames[1] -PermissionsToKeys all –PermissionsToSecrets all -ResourceGroupName $ResourceGroupName 

L'application AD Azure a été créé avec succès, mais pour Azure application AD avec certificat d'authentification, la customKeyIdentifier et la valeur des keyCredentials est nul après la création, c'est la partie manifeste de ma demande j'ai téléchargé à partir du portail Azure:

"keyCredentials": [{ 
     "customKeyIdentifier": null, 
     "endDate": "2018-01-25T11:55:35.7680698Z", 
     "keyId": "ca1e536c-2220-478b-af73-1198d125bb5f", 
     "startDate": "2017-01-25T11:55:35.7680698Z", 
     "type": "AsymmetricX509Cert", 
     "usage": "Verify", 
     "value": null 
    } ] 

Le certificat est un certificat auto-signé créé à l'aide de la commande makecert générée localement. J'utilise Powershell version 2.0.1

code C# pour récupérer le jeton avec application Id & Thumbprint

(autorité de chaîne, ressource de chaîne , la portée de chaîne) public static async Tâche GetAccessToken { var context = new AuthenticationContext (autorité, TokenCache.DefaultShared); var resultat = wait context.AcquireTokenAsync (ressource, AssertionCert); renvoie le résultat.AccessToken; }

Ce code des erreurs sur au résultat var avec « keyset n'existe pas »

est-il un moyen de résoudre ce problème?

Merci

Répondre

1

Avez-vous regardé la réponse ici?

Create a Application in Azure AD with Azure PowerShell Certificate authentication

Dans les commentaires, il mentionne que CustomKeyIdentifier être ne nul pas d'importance pour l'authentification.

Avez-vous essayé d'authentification quelle que soit la valeur nulle \

EDIT: Si vous voulez générer une empreinte du pouce pour un certificat public que vous possédez, vous pouvez le faire en utilisant les applets de commande PowerShell suivante:

$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 
$cer.Import(“mycer.cer”) 
$bin = $cer.GetCertHash() 
$base64Thumbprint = [System.Convert]::ToBase64String($bin) 

J'espère que cela aide.

+0

Oui ... J'ai jeté un coup d'oeil à la réponse pour le lien spécifié .. – Amruta

+0

Donc votre question concerne la valeur étant nulle plutôt que votre application ne fonctionne pas? –

+0

J'ai écrit le même code que mentionné ci-dessus selon la version Powershell (2.0.1). Les commandlets ont changé pour créer une nouvelle AzureADApplication dans cette version. Mais l'authentification de l'application AD avec certificat pour récupérer le secret Keyvault ne fonctionne pas ... Par conséquent, je regardais le fichier manifeste, là j'ai trouvé "customKeyIdentifier": null. Comment obtenir cette valeur? Ou toute commande Powershell pour créer une application AD avec certificat et obtenir cette valeur CustomerKeyIdentifier – Amruta