es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo recuperar el secreto del Azure Service Principal en Powershell 7.

Recientemente empecé a utilizar PowerShell 7.x y me he encontrado con algunos problemas. No puedo recuperar el secreto de mi servicio principal cuando lo creo a través de PowerShell 7. El cuerpo de retorno no proporciona la propiedad “Secret”. Solía trabajar con PowerShell 5.x y solía obtener una propiedad “Secret” en el objeto de retorno después de crear un servicio principal. He añadido las capturas de pantalla de la creación del servicio principal tanto en PowerShell 7.x como en PowerShell 5.x.

Como se puede ver, al trabajar con PowerShell 5 podía simplemente utilizar un objeto y guardar el objeto devuelto en él y acceder al secreto de la siguiente manera:

$sp = New-AzADServicePrincipal -DisplayName "xyz"
$secret = $sp.Secret 
$plainSecret = convertFromSecureString $secret

convertFromSecureString es solo una función básica que convierte el secreto en “texto plano”.

Pero no puedo usar el mismo enfoque con PowerShell 7. ¿Cómo puedo recuperar el secreto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que la estructura del objeto de retorno ha cambiado en PowerShell 7.x en comparación con PowerShell 5.x, y la propiedad “Secret” ya no está disponible en el objeto de retorno después de crear un servicio principal. Sin embargo, aún puede recuperar la clave secret utilizando el siguiente comando:

    $sp = New-AzADServicePrincipal -DisplayName "xyz"
    $secret = (New-AzADAppCredential -ApplicationId $sp.ApplicationId).Secret
    $plainSecret = ConvertFrom-SecureString $secret
    

    Este comando utiliza el cmdlet New-AzADAppCredential para crear un nuevo objeto de credencial para la aplicación del servicio principal, y luego recupera la clave secreta del objeto de credencial. A continuación, la clave secreta se convierte de una cadena segura a texto plano utilizando el cmdlet ConvertFrom-SecureString.

    Tenga en cuenta que este enfoque requiere que el módulo de PowerShell AzureAD esté instalado e importado, y también debe tener los permisos adecuados para recuperar la clave secreta de la aplicación del servicio principal.

Comments are closed.