Substituição da chave de descriptografia do Azure AD Kerberos; novo-azureADSSOAuthenticationContext; usando token em vez de pscredential

Substituição da chave de descriptografia do Azure AD Kerberos; novo-azureADSSOAuthenticationContext; usando token em vez de pscredential

Fazemos o processo de substituição da chave de descriptografia Kerberos de 30 dias automatizado usando uma senha "criptografada" armazenada em um arquivo de texto para criar o objeto PSCredential necessário para o comando Powershell new-azureADSSOAuthenticationContext.

Isso funciona - mas quero melhorar a segurança geral e, portanto, eliminar o objeto PSCredential para o Administrador Global do nosso Locatário no Azure.

Vi que o comando new-azureADSSOAuthenticationContext também pode ser alimentado com um token de acesso (por meio do parâmetro -token). Um token de acesso que posso recuperar usando um certificado armazenado no armazenamento de certificados de máquina muito mais seguro usando "Get-MsalToken"

Até agora, criei um aplicativo do Azure, atribuí ao SecurityPrincipal a função de Administrador Global (em Aplicativos Corporativos) e criei um certificado autoassinado (armazenado no armazenamento pessoal da máquina) e carreguei esse certificado no aplicativo do Azure.

Estou recebendo o token com: $Token = Get-MsalToken -ClientId $ClientId -TenantId $TenantId -ClientCertificate $Certificate -RedirectUri "http://bla.com"

Isso funciona e também posso usar o token no new-azureADSSOAuthenticationContext.

Mas quando chamo Update-AzureADSSOForest -OnPremCredentials $OnpremCred, recebo o seguinte erro:

  • Quando executado no "novo" Powershell 7: Line | 133 | Update-AzureADSSOForest -OnPremCredentials $OnpremCred | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ | Não foi possível carregar o tipo 'System.ServiceModel.Web.WebChannelFactory`1' do assembly 'System.ServiceModel.Web, Versão=4.0.0.0, Culture=neutral, | PublicKeyToken=31bf3856ad364e35'.

  • Quando executado no "antigo" Powershell 5.1: Update-AzureADSSOForest: falha no upload das informações da conta do computador. Mensagem de erro: a solicitação DesktopSsoNumOfDomains foi feita com authenticatedToken inválido. Valor:'' Em ​​C:\Scripts\DEV-MIHA\KerberosKeyRollover\M365_Kerberos_Key_Rollover.ps1:133 char:1

  • Atualização-AzureADSSOForest -OnPremCredentials $OnpremCred
  •   + CategoryInfo          : NotSpecified: (:) [Update-AzureADSSOForest], Exception
      + FullyQualifiedErrorId : System.Exception,Microsoft.KerberosAuth.Powershell.PowershellCommands.UpdateAzureADSSOForestCommand
    
    

Dica: li algumas horas sobre o problema geral - e até agora não encontrei nenhuma solução para esse problema. Exceto que alguns afirmam que isso não é possível atualmente.

Mas talvez alguém já tenha conseguido o que eu quero alcançar

Sugestões são bem-vindas. :-)

Responder1

Esta não é a resposta - mas talvez haja progresso nesse sentido. Aqui está o que descobri até agora:

Primeiramente,Novo AzureADSSOAuthenticationContextnão verifica o token fornecido por meio do -Tokenparâmetro até que você realmente execute um comando que dependa dele (como Get-AzureADSSOStatusou Update-AzureADSSOForest) - por exemplo, o seguinte será concluído sem erro:

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

Em segundo lugar, com base em alguma investigação sobre como New-AzureADSSOAuthenticationContextfunciona usandoViolinista, consegui fazê-lo funcionar com umObter-MsalTokentoken gerado usando login interativo da seguinte forma:

$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

O que foi dito acima permitirá Get-AzureADSSOStatusretornar corretamente, o que deve ser um bom começo. A próxima parte do problema é provavelmente fazer com que o aplicativo proxy do Azure AD Connect aceite o pedido de um aplicativo.concessão de credenciais do clientetoken em vez do de um usuárioconcessão de código de autorizaçãosímbolo.

informação relacionada