0

Azure AD가 내가 사용하는 유일한 IdP는 아니지만 웹 응용 프로그램과 기본 모바일 응용 프로그램을 통해 Azure AD 사용자를 확인하려고합니다.Azure AD는 프로그래밍 방식으로 사용자의 유효성을 검사하는 API 방법을 제공합니까?

나는 OAuth2 article을 읽었지만 사용자에 대해 유효성을 검사하는 API 메소드를 추적하는 데 문제가 있습니다. One answer은 토큰을 가져올 때 usernamepassword 매개 변수를 전달할 수 있지만이를 확인하지는 않습니다.

이 DOTNET 솔루션의 예입니다하지만 .NET에 익숙하지 않다가 - 그것을 실행하려고하고 System.TypeLoad의 내가 이전에 설치를 시도했습니다 예외 (Could not load type of field 'Microsoft.Owin.Security.ActiveDirectory.WsFedMetadataRetriever:CS$<>9__CachedAnonymousMethodDelegate5')

SimpleSAML 솔루션 만에 달렸다 단점은 기본 앱의 경우 추가 작업이 필요하며 적합하지 않을 수 있다는 것입니다.

답변

2

사용자를 Azure AD 로그인 페이지로 리디렉션 할 것을 권장합니다.

기술적으로 자원 소유자 암호 자격 증명을 사용하여 사용자의 유효성을 검사 할 수 있습니다. 하지만 항상 작동하지는 않습니다.

이렇게하면 다음과 유사한 형태의 데이터로의 OAuth 토큰 엔드 포인트에 POST 요청을 포함한다 : 당신은 기본적으로 그에 액세스 할 수 있기 때문에

grant_type=password&[email protected]&password=Password&client_id=your-client-id&client_secret=your-client-secret&resource=resource-you-want-the-token-for 

자원이 https://graph.windows.net을 수 있습니다. 결과가 성공한 경우 예, 사용자가 존재하며 신임이 유효합니다.

그러나 실패하면 때문 발생할 수 :

  • 사용자는 암호는
  • 사용자는 다중 요소 인증 사용자는
  • 에 돌았 다 잘못
  • 존재하지 않습니다 ADFS를 통해 페더레이션 된 사용자 (인증 기관)

그래서 일부 c에서는 작동하지 않습니다. ases.

+0

MFA가 켜져있는 경우 해결책이 있습니까? 그리고 "on-prem AD에서 연합 사용자"에 대해 자세히 설명 할 수 있습니까? 그 의미는 무엇입니까? –

+0

테스트에서, 당신이 권고 한 것처럼 보입니다! 비록 내가 위에서 언급 한 것에 대해 호기심이 있지만. 또한 가장 신뢰할 수있는 솔루션으로 무엇을 제안 하시겠습니까? 사용자가 직접 로그인 할 수 있도록 Microsoft 로그인 페이지를 만들거나 위의 두 가지 항목도 사용하기 쉬운가? –

+0

Microsoft 로그인 페이지를 사용하는 것이 좋습니다. 사용자가 유효한 ID 토큰을 가지고 돌아 오면 성공적으로 로그인됩니다. – juunas