Powershell 명령 new-azureADSSOAuthenticationContext에 필요한 PSCredential 개체를 생성하기 위해 텍스트 파일에 저장된 "암호화된" 암호를 사용하여 자동화된 30일 Kerberos 암호 해독 키 롤오버 프로세스를 수행합니다.
이는 작동하지만 일반 보안을 향상시키고 싶기 때문에 Azure에서 테넌트의 전역 관리자에 대한 PSCredential 개체를 제거하고 싶습니다.
new-azureADSSOAuthenticationContext 명령에도 액세스 토큰이 제공될 수 있음을 확인했습니다(매개 변수 -token을 통해). "Get-MsalToken"을 사용하여 훨씬 더 안전한 컴퓨터 인증서 저장소 내에 저장된 인증서를 사용하여 검색할 수 있는 액세스 토큰
지금까지 Azure 앱을 만들고 SecurityPrincipal에 전역 관리자 역할(엔터프라이즈 앱 아래)을 할당했으며 자체 서명된 인증서(컴퓨터 개인 저장소에 저장됨)를 만들고 이 인증서를 Azure 앱에 업로드했습니다.
다음을 사용하여 토큰을 받고 있습니다: $Token = Get-MsalToken -ClientId $ClientId -TenantId $TenantId -ClientCertificate $Certificate -RedirectUri "http://bla.com"
이는 작동하며 new-azureADSSOAuthenticationContext 내에서 토큰을 사용할 수도 있습니다.
그러나 Update-AzureADSSOForest -OnPremCredentials $OnpremCred를 호출하면 다음 오류가 발생합니다.
"새로운" Powershell 7에서 실행하는 경우: Line | 133 | 업데이트-AzureADSSOForest -OnPremCredentials $OnpremCred | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ | 'System.ServiceModel.Web, 버전=4.0.0.0, Culture=neutral, | 어셈블리에서 'System.ServiceModel.Web.WebChannelFactory`1' 유형을 로드할 수 없습니다. PublicKeyToken=31bf3856ad364e35'.
"이전" Powershell 5.1에서 실행하는 경우: Update-AzureADSSOForest: 컴퓨터 계정 정보 업로드에 실패했습니다. 오류 메시지: 잘못된 authenticatedToken을 사용하여 DesktopSsoNumOfDomains 요청이 이루어졌습니다. 값:'' C:\Scripts\DEV-MIHA\KerberosKeyRollover\M365_Kerberos_Key_Rollover.ps1:133 문자:1
- 업데이트-AzureADSSOForest -OnPremCredentials $OnpremCred
-
+ CategoryInfo : NotSpecified: (:) [Update-AzureADSSOForest], Exception + FullyQualifiedErrorId : System.Exception,Microsoft.KerberosAuth.Powershell.PowershellCommands.UpdateAzureADSSOForestCommand
힌트: 일반적인 문제에 관해 꽤 많은 시간을 읽었지만 지금까지 이 문제에 대한 해결책을 찾지 못했습니다. 일부에서는 이것이 현재 불가능하다고 주장합니다.
하지만 어쩌면 내가 달성하고 싶은 것을 이미 누군가가 관리했을 수도 있습니다.
제안을 환영합니다. :-)
답변1
이것이 답은 아니지만 어쩌면 이를 향해 진전을 이루고 있을 수도 있습니다. 지금까지 내가 찾은 내용은 다음과 같습니다.
첫째로,새로운 AzureADSSOAuthenticationContext실제로 이에 의존하는 명령(예: 또는 ) -Token
을 실행할 때까지 매개변수를 통해 제공한 토큰을 확인하지 않습니다 . 예를 들어 다음은 오류 없이 완료됩니다.Get-AzureADSSOStatus
Update-AzureADSSOForest
New-AzureADSSOAuthenticationContext -Token "12345" -Tenantid <YourTenantId>
둘째New-AzureADSSOAuthenticationContext
, 사용 방법 에 대한 일부 조사를 기반으로바이올리니스트, 나는 그것을 작동시키는 데 성공했습니다.Get-MsalToken다음과 같이 대화형 로그인을 사용하여 토큰을 생성했습니다.
$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
위의 내용을 사용하면 Get-AzureADSSOStatus
올바르게 돌아올 수 있으므로 좋은 시작이어야 합니다. 문제의 다음 부분은 아마도 Azure AD Connect 프록시 애플리케이션이 애플리케이션의 프록시 애플리케이션을 수락하도록 하는 것입니다.클라이언트 자격 증명 부여사용자 대신 토큰인증 코드 부여토큰.