고객이 웹 서비스를 사용할 수 있도록 권한을 부여하려면 무엇을 구현해야합니까?

StackOverflow https://stackoverflow.com/questions/557979

문제

우리는 공개 웹 서버에서 호스팅 할 웹 서비스가 있으며 병원 벽의 웹 서버에서 호스팅되는 웹 서비스로 연락 할 것입니다. 우리는 두 가지 소프트웨어를 작성하여 구현 된 내용을 완전히 제어 할 수 있도록했습니다.

두 웹 서버간에 통신을 보장하고 싶습니다. 현재 우리가 갖고있는 유일한 것은 공개 웹 서버의 HTTP와 클라이언트를 식별하기위한 안내입니다.

우리가 지원할 수있는 네트워크 수준의 승인 유형이 있지만 모든 고객 (병원)이 같은 일을 할 수 없기 때문에 이에 의존하는 것을 좋아하지 않습니다. 일부는 정적 IP를 제공 할 수있는 능력이 없으며 일부는 VPN을 수행 할 수 없으므로 이러한 방법에만 의존 할 수는 없습니다.

웹 서비스에 대한 커뮤니케이션을 승인하기 위해 어떤 기술을 사용하거나 권장합니까? 우리의 주요 관심사는 사람들이 병원 ID (현재 만지도)를받지 못하고 병원을위한 웹 서비스에서 데이터를 얻지 못하게하는 것입니다.

우리는 시스템에 대한 공개 액세스를 제한하기 위해 다른 네트워킹 수준 보안 조치를 사용하지만 소프트웨어 솔루션도 필요하다고 생각합니다.

이 시스템은 아직 생산에 없지만 개발 완료에 가깝습니다. .NET 3.5의 C#에서 개발되었습니다

fwiw 나는 이전 고용주가 그 라인을 따라 무언가를 사용했기 때문에 일종의 토큰 기반 승인을 생각하고있었습니다. 그러나 나는 구체적으로 무엇을 찾아야하는지 또는 주제에 대한 다른 정보를 모른다.

편집하다: WCF를 사용하고 싶지만 현재 팀의 어느 누구도 (나 자신을 포함하여) 사용 경험이 없으며 이미 웹 서비스를 상호 작용하는 코드와 함께 개발했습니다. .NET 2.0 메소드 (vs.net08에서 .NET 3.5를 대상으로)를 사용하여 추가 된 모든 웹 참조는 완전히 다시 실행되지 않습니다. 나는 WCF가 옵션이 아니라고 말하지 않을 것이지만, 우리는 그 옵션을 기꺼이 갈 것이라고 생각하지 않습니다.

도움이 되었습니까?

해결책

HTTPS를 통한 기본 인증과 같은 것을 사용하여 사용자 이름 비밀번호를 도전 할 수 있습니까? 나는 Microsoft Soap이 상당히 잘 지원한다고 생각합니다. IIS를 사용하여 기본 인증 (SSL을 사용해야 함)을 구성하고 C#에서 icredentials를 프록시로 전달하십시오.

인터넷 검색에서 다른 언어는 비누를 통해 기본 인증을 지원하는 것처럼 보입니다.

다른 팁

클라이언트 인증서를 사용하여 발신자로부터 웹 사이트에 자격 증명을 제공 할 수 있습니다. 통과 된 인증서를 복용하고 추가 평가를 수행하여 해당 인증서에 가시성이있는 것을 지시하는 것은 어렵지 않습니다.

아마도 Oauth와 같은 것을 사용하고 싶을 것입니다.

http://oauth.net/

그런 다음 WCF와 함께 사용하여 엔드 포인트를 제공 할 수 있습니다.

거기에서 청구를 고객의 내부 ID에 매핑하려고합니다 (이 매핑이 무엇인지 결정해야합니다).

이런 식으로, 당신은 다른 사람에게 아무것도 발행하는 데 의존 할 필요가 없습니다. 당신이해야 할 일은 당신에게 전송 된 청구를 기반으로 매핑을 만드는 것입니다.

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