2016-12-05 5 views
1

외부 응용 프로그램에 대한 인증/권한 부여를 위해 이미 JWT을 지원하는 REST 서버에서 익명으로 정보 검색을 지원해야하는 순수 JavaScript 실용 클라이언트 응용 프로그램을 빌드하려고합니다. 서버는 이미 다중 사용자을 지원하는 다른 클라이언트 응용 프로그램에서 사용 중입니다. 실제로 임차인 정보를 JWT에 임베드합니다.익명 및 인증 된 사용자에 대해 JWT 사용

게다가 응용 프로그램은 일부 자원을 즐겨 찾기로 표시 (또는 선택)하여 사용자/역할 작성 및 사용자에 대한 추가 인증/권한 부여에 필요한 메커니즘을 필요로하는 사용자 (사람)를 지원해야합니다. 그러나이 사용자 은 단일 세입자에 격리 될 수 없으므로 리소스를 통해 을 사용하려고합니다.

지금 당장 익명 데이터 검색을 위해 JWT 값을 사용해야한다는 사실을 알게되었습니다. 물론 테넌트에 대해 불가지론 적이어야합니다. 즉, 읽기 전용 리소스에 대한 사용 권한을 가진 특수한 역할을 가진 사용자를 만들어야한다는 것을 의미합니다. 사용자 작성 권한 (클라이언트 등록시)을 제외하고 다시 테넌트에 의존하지 않아야합니다. 그리고 사용자가 시스템에 로그인 할 때 JWT는 사용자 인증 정보가있는 사용자로 다시 임용되어야합니다. 이것이 완전히 정확한지 확신 할 수 없기 때문에 어떻게 이런 상황을 처리해야합니까?

내 다른 관심사는 우리가 인 그 논리가 (세입자 인식), 그래서 인간의 클라이언트 (세입자에 얽매이지) 및 응용 프로그램 클라이언트에 대한 인증 및 자격 증명 저장을 지원 같은 백엔드을 가지고있다 여기에 특권과 세입자 제한을 처리하기 위해서는 약간 더 복잡합니다. 이것은 내 인상 일지 모르지만 논리 및/또는 데이터 저장소에서 응용 프로그램 사용자와 사용자 간의 구분이 있어야한다고 생각합니다.

하지만 완전히 확신 할 수 없으며 일부 사용자가 이전에 경험했는지 또는이 주제에 대한 아이디어가 있는지 알고 싶습니다.

답변

1

다음 방법을 시도해 볼 수 있습니다. 사용자를 만들고 액세스 권한이 필요한 사용자에게 읽기 전용 역할을 할당합니다. tenant1 - - 관리 역할 사용자 1 - tenant2 - 데이터 리더 역할 사용자 1 - 세입자 - 3 JWT에서 사용자 역할

, 우리는 사용자가 권한이 부여되어 있는지 확인

데이터는 사용자 1과 같은 것입니다. 그런 다음 접근 가능한 세입자 목록을 얻고 위의 데이터에 요청 된 세입자 데이터에 대한 액세스 권한이 있는지 확인한 다음 권한 부여를 완료합니다. HTH

+0

내가 당신의 접근 방식을 시도하고 다시 경험을 언급합니다 감사합니다, 어쩌면 내 질문에 내가 익명 또는 위해 클라이언트에서 JWT를 교체, 역할 기반 논리의 접근 방식을 사용했습니다 너무 결국 기반의 의견 – carpinchosaurio

+0

했다 인증 된 사용자 인 경우 테넌트에 관계없는 사용자를위한 데이터 저장소가 분리되어 있으며 JWT 자체에서 테넌트 정보를 분리하는 것이 유용하다는 것을 알았습니다. 지금은 모든 요청에 ​​특수 헤더를 사용하고 있습니다. 그리고 그것은 현재 일하고 있으며 유지 보수가 가능합니다. 당신의 아이디어에 감사드립니다. – carpinchosaurio