2017-11-01 1 views
-1

모바일 (이오니아) 앱의 경우 net.core를 사용하여 웹 API를 만들어야합니다. 이 앱의 일부로 인증 된 제품 목록을 볼 필요가 없습니다.인증없이 net.core api를 보호하십시오.

내 문제는 다음과 같습니다

내가, 웹 API를 작성하려면이 제품을 나열하지만, ​​사용자가 응용 프로그램에 로그인해야하지만 더 낫다고 생각하지 않는다 필요 등이이 API를 소비 할 수 없습니다 내 응용 프로그램 모두에게 열려 있어야합니다 (단지 내 앱이 소비 할 수 있음).

가능합니까? 그렇다면, 내가해야 할 일은 무엇입니까?

감사

답변

2

당신이 세계 산세의 인증에 노출하지 않고 응용 프로그램에 API를 사용할 수 있도록 할 수있는 유일한 방법은 당신의 웹 사이트와 동일한 LAN과 방화벽 뒤에, 내부 즉, 그것을 유지하는 것입니다. 이것은 공개적으로 사용하는 것처럼 공개적으로 사용하지 않는 경우 일반적으로 선호되는 접근 방식입니다. 인증이 필요한지 여부에 관계없이 항상 위반 가능성이 있습니다.

그러나이 접근 방식의 한 단점은 AJAX 나 시나리오에서 모바일 응용 프로그램과 같은 외부 통신에 활용할 수 없다는 것입니다. 따라서 모바일 앱을 통해 액세스 할 수 있어야하는 경우이 방법으로 구현할 수 없으므로 이이를 보호하기 위해 인증 레이어를 구현해야합니다. 다른 대안은 없습니다.

또한 하이브리드 방식을 사용할 수도 있습니다. 공개적으로 액세스해서는 안되는 특정 API 엔드 포인트가있는 경우 API 앱을 외부 및 내부로 분할 한 다음 내부 콘텐츠를 내부에 보관하여 모바일 앱 기능에 절대적으로 필요한 API 만 노출 할 수 있습니다. 다시 말하지만, 공개 된 것이면 인증 레이어를 구현해야하거나 그렇지 않으면 열어 볼 수 있습니다.

즉, 인증은 최종 사용자 인증 일 필요는 없습니다. 모바일 애플리케이션을 클라이언트로 인증하면됩니다. 일반적으로 클라이언트 비밀 인증을 통해 응용 프로그램에 클라이언트 ID와 비밀이 제공됩니다. 클라이언트는이를 인증 엔드 포인트에 제출하고 토큰을 다시받습니다. 그런 다음 해당 토큰은 요청이 필요한 요청의 경우 Authorization 헤더로 전달됩니다. 최종 사용자에게는 아무런 문제가 없으며 실제 로그인이 필요하지 않습니다.

관련 문제