Transferencia de clave de descifrado de Azure AD Kerberos; nuevo-azureADSSOAuthenticationContext; usando token en lugar de pscredential

Transferencia de clave de descifrado de Azure AD Kerberos; nuevo-azureADSSOAuthenticationContext; usando token en lugar de pscredential

Realizamos el proceso de transferencia de clave de descifrado Kerberos de 30 días de forma automatizada mediante el uso de una contraseña "cifrada" almacenada en un archivo de texto para crear el objeto PSCredential necesario para el comando de Powershell new-azureADSSOAuthenticationContext.

Esto funciona, pero quiero mejorar la seguridad general y, por lo tanto, quiero eliminar el objeto PSCredential para el administrador global de nuestro inquilino en Azure.

He visto que el comando new-azureADSSOAuthenticationContext también se puede alimentar con un token de acceso (a través del parámetro -token). Un token de acceso que puedo recuperar usando un certificado almacenado en el almacén de certificados de la máquina, mucho más seguro, usando "Get-MsalToken".

Hasta ahora, creé una aplicación de Azure, asigné a su SecurityPrincipal la función de Administrador global (en Aplicaciones empresariales) y creé un certificado autofirmado (almacenado en el almacén personal de la máquina) y cargué este certificado en la aplicación de Azure.

Obtengo el token con: $Token = Get-MsalToken -ClientId $ClientId -TenantId $TenantId -ClientCertificate $Certificate -RedirectUri "http://bla.com"

Esto funciona y también puedo usar el token dentro de new-azureADSSOAuthenticationContext.

Pero cuando llamo a Update-AzureADSSOForest -OnPremCredentials $OnpremCred, aparece el siguiente error:

  • Cuando se ejecuta bajo el "nuevo" Powershell 7: Línea | 133 | Actualización-AzureADSSOForest -OnPremCredentials $OnpremCred | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ | No se pudo cargar el tipo 'System.ServiceModel.Web.WebChannelFactory`1' del ensamblado 'System.ServiceModel.Web, Versión=4.0.0.0, Cultura=neutral, | PublicKeyToken=31bf3856ad364e35'.

  • Cuando se ejecuta bajo el "antiguo" Powershell 5.1: Update-AzureADSSOForest: Error al cargar la información de la cuenta de la computadora. Mensaje de error: La solicitud DesktopSsoNumOfDomains se realizó con un token autenticado no válido. Valor:'' En C:\Scripts\DEV-MIHA\KerberosKeyRollover\M365_Kerberos_Key_Rollover.ps1:133 char:1

  • Actualización-AzureADSSOForest -OnPremCredentials $OnpremCred
  •   + CategoryInfo          : NotSpecified: (:) [Update-AzureADSSOForest], Exception
      + FullyQualifiedErrorId : System.Exception,Microsoft.KerberosAuth.Powershell.PowershellCommands.UpdateAzureADSSOForestCommand
    
    

Sugerencia: He leído bastantes horas sobre el problema general y hasta ahora no he encontrado ninguna solución para este problema. Excepto que algunos afirman que esto no es posible actualmente.

Pero tal vez alguien ya haya logrado lo que quiero lograr.

Las sugerencias son bienvenidas. :-)

Respuesta1

Ésta no es la respuesta, pero tal vez se esté avanzando hacia ella. Esto es lo que he encontrado hasta ahora:

En primer lugar,Nuevo contexto de autenticación de AzureADSSOno verifica el token que proporciona a través del -Tokenparámetro hasta que realmente ejecuta un comando que depende de él (como Get-AzureADSSOStatuso Update-AzureADSSOForest); por ejemplo, lo siguiente se completará sin un error:

New-AzureADSSOAuthenticationContext -Token "12345" -Tenantid <YourTenantId>

En segundo lugar, basado en algunas investigaciones sobre cómo New-AzureADSSOAuthenticationContextfunciona el usoViolinista, he logrado que funcione con unObtener-MsalTokentoken generado mediante el inicio de sesión interactivo de la siguiente manera:

$TenantId = '<Your Tenant ID>'
Import-Module 'C:\Program Files\Microsoft Azure Active Directory Connect\AzureADSSO.psd1'

$Token = Get-MsalToken -ClientId '55747057-9b5d-4bd4-b387-abf52a8bd489' -TenantId $TenantId -Interactive -Scopes 'https://proxy.cloudwebappproxy.net/registerapp/.default'
New-AzureADSSOAuthenticationContext -Token $Token.AccessToken -TenantId $TenantId

Get-AzureADSSOStatus | ConvertFrom-Json

Lo anterior permitirá Get-AzureADSSOStatusregresar correctamente, lo cual tiene que ser un buen comienzo. La siguiente parte del problema probablemente sea lograr que la aplicación proxy de Azure AD Connect acepte la solicitud de una aplicación.concesión de credenciales de clientetoken en lugar del de un usuarioconcesión de código de autorizaciónsimbólico.

información relacionada