문제

저는 사용자가 로그인하여 더 많은 개인 정보를 얻을 수 있는 사이트를 만들고 있습니다.내 고객이 해당 사이트를 사용하는 다른 사이트를 가지고 있습니다. NT 인증 액세스하기 위해.

그들이 하고 싶은 것은 button 내가 작업 중인 사이트의 비공개 영역에서 인증되지 않음 사이트에 로그인하는 대신 해당 사이트에 로그온하도록 요구하지는 않습니다. 사용자 이름 그리고 비밀번호 그들은 내 사이트에 다른 사이트로 로그인하곤 했습니다.

이것이 가능합니까?어떻게 하면 달성할 수 있을까요?이를 수행하는 더 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

다음은 (테스트되지 않은) 이론입니다. 자세한 내용은 Sharepoint 사이트에서 허용하는 인증 유형에 따라 크게 달라집니다.내가 처리할게 기초적인, 그게 가장 쉽거든요.

XMLHttpRequest를 사용하여 Sharepoint 사이트에 요청을 제출하고 해당 사용자 이름과 비밀번호를 요청 헤더에 추가하는 일부 JavaScript를 작성합니다.브라우저는 해당 JavaScript를 실행하고 Sharepoint 사이트에 로그인됩니다.

이제 링크를 클릭하면 클라이언트 브라우저에 Sharepoint 사이트로 보낼 캐시된 자격 증명이 있어야 합니다.

가능한 문제:

  • XMLHttpRequest는 도메인 간 인증을 허용하지 않습니다.
  • 브라우저와 XHR은 인증 정보를 공유하지 않습니다.
  • Sharepoint와 XHR이 인증 방법에 동의할 수 없습니다.

또 다른 옵션은 Sharepoint에 대한 연결을 프록시하는 것입니다. 이를 통해 서버측에 로그인할 수 있지만(XHR 제한 및 브라우저 보안 우회) 서버에 로드가 필요하고 일부 URL 대상 문제가 발생할 수 있습니다.

다른 팁

다른 사이트에서는 귀하의 사용자 이름과 비밀번호를 어떻게 확인합니까?

이상적으로는 사이트가 사용자의 비밀번호를 다른 사이트에 전달할 수 있도록 기억하지 않아야 합니다(비밀번호 자체가 아닌 비밀번호의 해시를 저장하고 유효성 검사 중에 실제 비밀번호만 사용함).

귀하의 사이트가 사용자에게 토큰을 제공하고, 사용자가 해당 토큰을 새 사이트에 제시하고, 사용자가 귀하의 사이트에 토큰의 유효성을 검사하도록 요청한다면 어떻게 될까요?기본적으로 두 번째 사이트는 사용자가 누구인지 알려주는 것을 신뢰합니다.

이 시나리오에서는 사용자가 실제 Windows 사용자 계정으로 로그온하지 않았기 때문에 두 번째 사이트가 사용자 이름(예: 기본 파일에 대한 권한) 검색 이외의 목적으로 실제로 Windows 계정을 사용하는 경우 이 모든 것이 중단됩니다.

두 번째 사이트에 대해 인증해야 하는 경우 새 스레드를 생성하고 Windows LogonUser API를 호출해야 할 수도 있습니다.보안 토큰이 있으면 이를 새 스레드에 할당하고 해당 스레드를 통해 연결하십시오.

LogonUser에는 향상된 권한이 필요하며 관리 코드가 아니므로 사용 시 심각한 문제가 있습니다.하지만 이것이 Windows 인증 서비스/사이트와 통신하는 Forms 인증 사이트를 찾을 수 있는 유일한 해결 방법이었습니다.

도움이 되었기를 바랍니다.

인트라넷 환경인가요?그렇다면 어쨌든 로그인할 필요는 없습니다."통합 인증"을 사용하여 Sharepoint가 설정되고 사이트가 IE에서 신뢰할 수 있는 사이트로 나열되는 경우 브라우저는 자동 로그인을 위해 해당 네트워크 자격 증명을 사용합니다.이는 다음에서 설정할 수 있습니다. 파이어폭스 또한.

사용자는 NTLM 챌린지를 받지 않고는 NTLM 사이트에 직접 연결할 수 없습니다.나는 NTLM 사이트에 대한 프록시가 될 수 있는 내용을 작성하겠습니다.즉, 서버 측 코드에는 NTLM 사이트에 연결하기 위한 자격 증명이 있으며 사용자의 요청을 통과합니다.

말씀하신 대로 SharePoint() SharePoint에는 화면 스크래핑을 수행하는 대신 이를 위해 사용할 수 있는 다양한 웹 서비스가 있다는 점을 명심하세요.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top