DS1NMA Blog

● ADFS 구축

  - 단계 1. ADFS 서버를 구성한다.
-
단계 2. VMWare vCenter ID공급자를 구성된 ADFS로 설정하고 성공한다.  
-
단계 3. https://learn.microsoft.com/ko-kr/windows-server/identity/ad-fs/operations/configure-ad-fs-and-azure-mfa 링크에  설명된 내용에 따라 ADFS MFA 구성을 실시한다.

 

AD FS 및 Microsoft Entra 다단계 인증 구성

AD FS를 사용하여 Microsoft Entra 다단계 인증을 인증 공급자로 구성하는 방법에 대해 자세히 알아보세요.

learn.microsoft.com

- 단계 4. VMWare vCenter에 로그인 페이지에서 ID를 입력한다.
- 
단계 5. ADFS 로그인 페이지로 리다이렉션 된다.
- 
단계 6. ADFS 로그인 페이지에서 ID를 입력하고, MFA 인증코드를 호출하게 되면,
- 
단계 7. 403 에러가 표시된다. (Exception calling SAS)

 

(클라이언트 표시)
Activity ID: c4fa6ce5-693d-45a4-1000-0040000000d6

Relying party: vCenter-DEP-2FA - API
Error details: Exception calling SAS.
Node name: d436b22c-f2a2-4ea9-a70e-6d17cc5608ad
Error time: Tue, 24 Sep 2024 12:10:21 GMT
Cookie: enabled
User agent string: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0
 
(서버 이벤트로그 표시)
페더레이션 수동 요청 중에 오류가 발생했습니다.

 
추가 데이터
 
프로토콜 이름:
OAuthAuthorizationProtocol
 
신뢰 당사자:
0d81cad4-5275-45aa-9f68-2146d619488d
 
예외 세부 정보:
System.Exception: Exception calling SAS. ---> System.Net.WebException: 원격 서버에서 (403) 사용할 수 없음 오류를 반환했습니다.
   위치: System.Net.HttpWebRequest.GetResponse()
   위치: Microsoft.IdentityServer.Aad.Sas.HttpClientHelper.PostXml[TRequest,TResponse](String url, String authenticationMethod, TRequest request, Action`2 httpRequestModifier)
   위치: Microsoft.IdentityServer.Aad.Sas.RealSasProvider.GetAvailableAuthenticationMethods(GetAvailableAuthenticationMethodsRequest request)
   위치: Microsoft.IdentityServer.Adapter.AzureMfa.PrimaryAuthenticationAdapter.ProcessUsernameOathCodePin(IAuthenticationContext authContext, IProofData proofData, Claim[]& outgoingClaims)
   --- 내부 예외 스택 추적의 끝 ---
   위치: Microsoft.IdentityServer.Adapter.AzureMfa.PrimaryAuthenticationAdapter.ProcessUsernameOathCodePin(IAuthenticationContext authContext, IProofData proofData, Claim[]& outgoingClaims)
   위치: Microsoft.IdentityServer.Adapter.AzureMfa.PrimaryAuthenticationAdapter.TryEndAuthentication(IAuthenticationContext authContext, IProofData proofData, HttpListenerRequest request, Claim[]& outgoingClaims)
   위치: Microsoft.IdentityServer.Web.Authentication.External.ExternalAuthenticationHandlerBase.TryEndAuthentication(IAuthenticationContext authContext, IProofData proofData, HttpListenerRequest request, Claim[]& adapterClaims)
   위치: Microsoft.IdentityServer.Web.Authentication.Azure.AzurePrimaryAuthenticationHandler.Process(ProtocolContext context)
   위치: Microsoft.IdentityServer.Web.Authentication.AuthenticationOptionsHandler.Process(ProtocolContext context)
   위치: Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)
 
System.Net.WebException: 원격 서버에서 (403) 사용할 수 없음 오류를 반환했습니다.
   위치: System.Net.HttpWebRequest.GetResponse()
   위치: Microsoft.IdentityServer.Aad.Sas.HttpClientHelper.PostXml[TRequest,TResponse](String url, String authenticationMethod, TRequest request, Action`2 httpRequestModifier)
   위치: Microsoft.IdentityServer.Aad.Sas.RealSasProvider.GetAvailableAuthenticationMethods(GetAvailableAuthenticationMethodsRequest request)
   위치: Microsoft.IdentityServer.Adapter.AzureMfa.PrimaryAuthenticationAdapter.ProcessUsernameOathCodePin(IAuthenticationContext authContext, IProofData proofData, Claim[]& outgoingClaims)

 

원인 : Microsoft 제공 가이드에 보면, 레지스트리에 SasUrl, StsUrl, ResourceUri 를 특정한 값으로 입력하라고 언급하였으나, 해당 값으로 적용시 동작하지 않음. 

MS가 하란대로 하면 절대 안된다!!!

 

해결방법 : 레지스트리 값 변경

컴퓨터\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ADFS

 

SasUrl : https://adnotifications.windowsazure.com/StrongAuthenticationService.svc/Connector

StsUrl : https://login.microsoftonline.com

ResourceUri : https://adnotifications.windowsazure.com/StrongAuthenticationService.svc/Connector

 

이렇게 해서 해결 완료!

 

결론..

"MS... 이자식들이.. SISISISISISISISI;;;;BALBALBALBALBALBAL;;;;;;;;;;;"