문제

웹 서비스를 인증하는 가장 좋은 방법에 대한 지침을 찾고 있습니다. 현재 .NET 3.5에 표준 웹 서비스가 있고이 웹 서비스 위에있는 MVC 웹 사이트가 있습니다.

MVC 웹 사이트는 OpenID를 사용하여 사용자를 인증하며 개발 단계에서 사용자의 OpenID 청구 식별자를 웹 서비스에 전달하여 인증하기 위해 간단히 전달했습니다. 분명히 이것은 우리가 살 때 고객에게 공개 할 것이 아닙니다.

그래서 내 질문은 이것입니다. 웹 서비스를 인증하는 가장 좋은 방법은 무엇입니까?

API 중 일부는 사용 인증 토큰과 함께 연주했습니다. 우리가 가진 또 다른 아이디어는 웹 서비스에 연결되면 클라이언트에게 모든 전송에 사용할 수있는 암호화 키를 전달하는 것이 었습니다.

나는 여기서 큰 소리로 생각하고 다시, 어떤 도움이든 큰 감사를 표합니다! 감사!

...

업데이트 : 지금 당장 OpenIdurl 속성이있는 사용자 정의 SOAPAuthenticationHeader를 만들었습니다. 이것은 모든 서비스 호출에 사용됩니다. 문제는 두 가지입니다.

  1. 해커가 사용자의 OpenIdurl이라는 것을 알고 있으면 웹 서비스에 쉽게 액세스 할 수 있습니다.
  2. OpenIdurl은 현재 일반 텍스트로 전달됩니다.

따라서 웹 서비스에 연결될 때 클라이언트에 암호화 키를 전달할 수 있으며 클라이언트가 SOAPAuthentication 헤더에서 OpenIdurl을 암호화하도록 할 수 있습니다. 그러나 나는 그것에 대해 가장 잘 어울리는 방법에 대해 잘 모르겠습니다 ...

도움이 되었습니까?

해결책

Oauth를 살펴보고 싶을 수도 있습니다.

http://oauth.net/

(사용 http://oauth.net/code/ 코딩 용.)

이 시나리오를 위해 특별히 준비되어 있으므로 (Open ID는 실제로 그렇지 않습니다).

SA에는 웹 서비스를 보호하는 가장 좋은 방법에 대해 묻는 또 다른 질문이 있으며 Open ID 및 OAUth가 모두 논의됩니다.

OpenID를 사용한 웹 서비스 인증

다른 팁

ASMX 웹 서비스 (Microsoft는 이제 "레거시"라고 생각하는)는 인증에 OpenID를 사용할 수있는 능력이 없습니다. 그들은 IIS가 제공하는 것만 사용할 수 있습니다. 당신은 그들을 위해 OpenID 인증을하는 soapextension을 추가 할 수 있지만, 나는 거기에서 시간을 보내지 않을 것입니다.

나는 OpenID에 대해 확신 할만 큼 충분히 알지 못하지만 연합 보안을 통해 WCF와 통합 할 수 있다고 생각합니다. 나는 다른 사람이 그것에 대한 세부 사항으로 대답 할 것이라고 확신합니다.

이것은 실제로 답이 아니지만 의견을 남길 수는 없습니다 ...

".NET 3.5에 표준 웹 서비스가 있고이 웹 서비스 위에있는 MVC 웹 사이트가 있습니다"라고 말합니다.

나는 여기에서 벗어날 수 있지만 언어는이 두 사람이 같은 서버에 앉아 있음을 의미합니다. 그렇다면 왜 사용자 데이터베이스와 쿠키 토큰을 공유 할 수 없습니까?

제임스

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