1

신뢰할 수있는 IdP에서 발급 된 ID 토큰을 인증과 함께 웹 메서드를 호출하는 데 사용하기 위해 javaScript 코드로 보낸다면 문제가 있습니까?신뢰할 수있는 IdP에서 발급 한 보안 토큰을 javaScript로 보낸 경우 보안 문제가 있습니까?

토큰이 암호화되어 있는지 여부에 관계없이 보안 문제가 있습니까?

필자의 경우 IdP에 사용자 인증을 요청하는 웹 응용 프로그램이 있습니다. 보안 토큰을 보내려면 Ws2007FederationBinding과 함께 WCF 웹 서비스를 사용하고 있습니다. 서버에서 서비스를 호출하면 모든 것이 잘되지만, JavaScript를 사용하여 클라이언트 측에서 어떻게 소비 할 수 있습니까?

답변

1

저는 Ws2007FederationBinding에 익숙하지 않습니다. 클라이언트 측에서 호출해야한다는 점을 감안할 때 클라이언트에 해당 토큰을 포함시키는 데는 문제가 없습니다.

외부 API를 사용해야하고 서비스와 관련된 일종의 "인증"토큰이있는 경우에도 마찬가지라고 생각합니다.

1

Ws2007FederationBinding은 봉투에 SAML 보안 토큰이있는 SOAP 바인딩입니다. 매우 JavaScript에서이 바인딩으로 서비스를 호출하기가 어렵습니다.

이 바인딩을 사용하려면 클라이언트가 STS와 통신하여 SAML 토큰을 가져 와서 서비스 (신뢰 당사자)에 대한 토큰 (소유자 보유자)의 요청자임을 증명해야합니다. 여기에는 JavaScript에서 수행하기 어려운 암호화 작업이 포함됩니다.

이 문제를 해결하는 가장 좋은 방법은 자바 스크립트 레이어가 말하는 RESTful 프록시 서비스를 만들고이 REST 서비스가 SOAP 백엔드 서비스와 통신하도록하는 것입니다. 베어러 토큰 (JWT)으로 REST 서비스를 보호하고 SOAP 서비스를 호출하기 전에 SAML 토큰으로 교환해야합니다.

JWT와 SAML 간의 변환을 위해 .NET에서 JWT token handler 클래스를 사용할 수 있습니다.

+0

이미 서버 응용 프로그램에 토큰이 있습니다. 사용자가 다시 인증하도록하는 대신 자바 스크립트에서 다시 사용하고 싶습니다. – Homam

+0

내가 말했듯이, JavaScript로부터 보안 SOAP 서비스를 호출하는 것은 쉽지 않습니다. 토큰이 의도하는 의존 당사자에 따라 서비스를 호출하려면 다른 토큰이 필요할 수 있습니다. 토큰 변환을 원하지 않으면 POST 데이터의 보안 토큰을 가져와 서비스 호출에 사용할 인증되지 않은 RESTful 프록시 서비스를 가질 수 있습니다. – MvdD