Windows Server AD FS(Active Directory Federation Services)를 사용하면 개발 중인 애플리케이션에 OpenID Connect 및 OAuth 2.0 기반 인증 및 권한 부여를 추가할 수 있습니다. 이러한 애플리케이션은 AD FS에 대해 직접 사용자를 인증할 수 있습니다. 자세한 내용은 개발자용 AD FS 시나리오를 참조하세요.
일반적으로 AD FS에 대해 인증하는 방법에는 두 가지가 있습니다.
- MSAL은 Microsoft Entra ID 연결한 다음 AD FS에 페더레이션됩니다.
- MSAL은 AD FS 기관에 직접 연결합니다.
MSAL4J는 이러한 흐름을 모두 지원합니다.
MSAL은 Microsoft Entra ID 연결한 다음 AD FS에 페더레이션됩니다.
MSAL4J는 관리되는 사용자(Microsoft Entra ID 관리되는 사용자) 또는 페더레이션된 사용자(AD FS와 같은 다른 ID 공급자가 관리하는 사용자)에 로그인하는 Microsoft Entra ID 연결을 지원합니다. MSAL4J는 사용자가 페더레이션되었다는 사실을 알지 못합니다. 해당 항목은 Microsoft Entra ID와 통신합니다.
이 경우 사용하는 권한은 일반적인 기관(기관 호스트 이름 + 테넌트, 일반 또는 조직)입니다.
페더레이션된 사용자를 위해 대화형으로 토큰 획득
AuthorizationCodeParameters 또는 DeviceCodeParameters를 사용하여 AcquireToken을 호출하는 경우 사용자 환경은 일반적으로 다음과 같습니다.
- 사용자가 자신의 계정 ID를 입력합니다.
- Microsoft Entra ID "조직의 페이지로 이동"이라는 메시지를 간략하게 표시합니다. 사용자는 ID 공급자의 로그인 페이지로 리디렉션됩니다. 로그인 페이지는 일반적으로 조직의 로고를 사용하여 사용자 지정됩니다.
- 이 페더레이션 시나리오에서 지원되는 AD FS 버전은 AD FS v2, AD FS v3(Windows Server 2012 R2) 및 AD FS v4(AD FS 2016)입니다.
MSAL은 AD FS 기관에 직접 연결합니다.
MSAL4J는 AD FS 2019를 사용하여 직접 인증할 수 있는 지원을 제공합니다. 이 경우 클라이언트를 초기화할 때 MSAL4J에 ADFS 특정 기관 URL을 제공할 수 있습니다. authority 값은 대략 https://adfs.contoso.com/adfs와 비슷해야 합니다.
AcquireToken에서 IntegratedWindowsAuthenticationParameters 또는 UsernamePasswordParameters를 사용해 토큰 가져오기
AcquireToken을 IntegratedWindowsAuthenticationParameters 또는 UsernamePasswordParameters와 함께 사용하여 토큰을 획득하는 경우, MSAL4J는 사용자 이름을 기준으로 어느 ID 공급자에 요청할지 결정합니다. MSAL4J는 ID 공급자에게 문의한 후 SAML 토큰을 받습니다. 그런 다음 MSAL4J는 JWT를 받기 위해 SAML 토큰을 사용자 어설션으로(온-비하프-오브 흐름과 유사) Microsoft Entra ID에 제공합니다.