주어진 다음의 자 :웹 클라이언트 사이의 클레임 기반 보안, ASP.Net MVC 4 ASP.Net WebAPI
브라우저 기반 클라이언트
ASP.Net MVC 4 웹 응용 프로그램
ASP.Net 웹 API 서비스
보안 토큰 서비스 (STS) 즉 Thinktecture IdentityServer
:
내가이 작업과 유사한 흐름을 좀하고 싶습니다 (주 웹 응용 프로그램 및 WebAPI 서비스가 다른 상자에 살고) :
사용자가 웹 응용 프로그램을 탐색 할 때 응용 프로그램이 요청에서 유효한 토큰을 보지 못하고 STS로 인증되도록 사용자를 리디렉션합니다. 사용자가 STS에 로그인하고 인증이 성공하면 WebApp로 다시 리디렉션됩니다. 웹 애플리케이션은 유효한 토큰을보고 사용자 액세스 권한을 부여합니다. 사용자가 WebAPI에 대한 서비스 호출이 필요한 웹 애플리케이션에서 작업을 시도합니다. 웹 애플리케이션은 서비스 요청시 사용자 토큰을 전달합니다. WebAPI 서비스는 토큰을보고 액세스를 허용하지 않고 오류를 반환하거나 사용자를 대신하여 요청을 승인하고 결과를 반환합니다.
또한 클라이언트가 AJAX 호출을 통해 WebAPI 서비스에 직접 서비스를 요청할 수 있기를 바랍니다.
지금까지 웹 응용 프로그램을 STS로 리디렉션하고 다시 돌아 오는 흐름을 얻을 수 있지만 웹 응용 프로그램에서 웹 API 서비스로 토큰을 전달하는 방법은 무엇입니까?
또한 AJAX 호출에서 토큰을 전달하는 JavaScript 클라이언트를 얻으려면 어떻게해야합니까?
또는 쿠키를 사용하십시오. – flup
음. 물론 쿠키는 없습니다. 다양한 구성 요소는 서로 다른 상자 (잠재적으로 다른 도메인 - 현재는 아니지만 - 아마도 내일)에 있습니다. – leastprivilege