2016-09-14 2 views
0

Java로 구현 된 라이센스를 실행해야하는 새 제품을 개발 중입니다. 라이센스 유효성 검사는 서버 ID를 기반으로합니다. 리눅스 서버에서 직접 실행하면 문제가되지 않습니다.Docker. 호스트 ID에 기반한 라이센스로 소프트웨어 실행

그러나 도커 내부에서 소프트웨어를 실행하는 옵션을 제공하고 싶지만 문제는 도커 컨테이너에서 호스트 ID를 얻는 방법을 모르겠다는 것입니다. 고객이 호스트 갱신 ID (예 : 소프트웨어 업데이트)를 다시 작성해야 할 수 있으므로 도커 컨테이너 ID를 사용하지 않으므로 호스트 서버의 ID를 알아야합니다.

MAC 주소 사용에 대해 생각했지만 "- net = host"옵션으로 컨테이너를 실행해야하며 보안상의 이유로이 옵션을 사용하지 않으려합니다.

+0

"서버 ID"는 무엇을 의미합니까? 그리고 당신의 자바 프로그램은 그것이 실행되고있는 호스트가 "유효"하다고 어떻게 결정할 것입니까? – GhostCat

+0

감사합니다. @GhostCat. "서버 ID"는 호스트 서버가 "고유"하다는 것을 의미합니다 (예 : Mac 주소 또는 많은 서버에서 동일한 라이센스가 사용되지 않는지 확인하는 항목). 라이센스가 단일 서버에 유효하기를 원합니다. – mrt

답변

2

아마 당신은 한 걸음 뒤로 물러나 예를 들어, 다른 방법으로 구성 요소와 함께 작동하는이 시스템을 보일 것입니다 :

  1. 사용자 로컬에 저장할 수있는 ID + 개인 키의 몇 가지 종류가 파일 시스템
  2. 응용 프로그램이 디스크에서 해당 파일을 읽습니다. "홈 서버"에 연락하여이 ID + 키가 실제로 "양호"한지 확인하고, 그렇다면 응용 프로그램이 시작됩니다. 그렇지 않으면 중지합니다.

이러한 솔루션을 사용하면 사람들이 라이센스 파일을 도커 이미지에 포함 할 수도 있습니다.

그리고 기록을 위해 : 응용 프로그램을 중앙 서버와 통신하지 못하게하는 다른 솔루션으로 인해 두통이 생길 수 있습니다.

+0

고마워요 @GhostCat! 나는 그것에 대해 생각 해왔다. 마지막으로 가능한 좋은 대안을 찾았습니다. 호스트 ID를 생성하고 -net = host 옵션으로 시작하는 API를 사용하여 컨테이너를 생성 할 것입니다. 따라서 "고유 한"호스트 ID를 생성 할 수 있습니다. 따라서 메인 컨테이너에서이 API를 호출하여 호스트 ID를 얻고 설치된 라이센스가 유효한지 확인하십시오. 어떻게 생각해? – mrt

관련 문제