2016-10-24 5 views
1

OWIN ASP.NET ID 아키텍처를 구현하는 중앙 집중식 ASP.NET MVC 웹 사이트를 사용하는 프로젝트가 있습니다. 우리의 중앙 집중식 웹 사이트에 사용되었다 : OWIN 인증 및 "온라인 사용자"

  • 보조금/토큰
  • 추가 새로 고침 제거하고 사용자/역할을 수정할 사용자 이름/암호로

    • 부여 토큰 및 OAuthentication 사회 로그인을 통해
    • 부여 토큰을 주장 (Twitter, Facebook ...)

    지금까지는 좋았지 만 지금은 새로운 요청을 받았습니다. ASP.NET Identity OAuth가 토큰을 부여하고 토큰을 새로 고침하지만 "세션"및 "온라인 인증 된 사용자"개념이 없으므로 계층은 "온라인 사용자를 추적"할 수 있어야합니다. .

    이 기능을 구현하는 방법에 대한 의견이나 제안이 있으십니까?

  • +0

    인가는 "계층"기능을 요구하는 영업 관리자를위한 단지 좋은 이름을? – trailmax

    답변

    0

    은 온라인 사용자에 대한 정확한 정의에 약간의 영향을 미칩니다. 그러나 편안한 정의로 가정하면 말하지 않은 내용을 정확하게 소개하면됩니다. 세션.

    인증 측면에서 ASP.NET MVC 응용 프로그램은 IP/AS (Identity Provider/Authorization Server) 역할을하지만 세션의 개념을 가질 수 없거나 가질 수 없다는 것을 의미하지는 않습니다. 일반적으로 세션은 IP/AS에서 일반적으로 사용되는 방식이므로 세션은 세션에 의존하는 응용 프로그램에 대한 단일 로그온을 제공 할 수 있습니다.

    예를 들어, Google과 Facebook은 모두 다른 응용 프로그램의 IP/AS 역할을하며 둘 다 세션을 유지 관리합니다. 두 가지 경우에 단순히 IP/AS로 활동하는 것 이상으로 세션이 반드시 있어야한다고 주장 할 수 있습니다.

    그러나 인증 및 권한 부여 서비스에만 초점을 맞춘 공급자도 세션에 의존합니다. 예를 들어, 앞서 언급 한 Auth0 uses sessions as a way to provide the single sign-on experience입니다.

    세션을 도입함으로써 IP/AS의 관점에서 온라인/인증 된 사용자 목록을 유지 관리 할 수 ​​있어야합니다. 가장 큰 문제는 실제로 비즈니스 사용자가 온라인 사용자을 추적 할 때 원하는 내용이 맞는지 여부입니다.

     
    공개는 : 나는 Auth0 엔지니어입니다.


     
    업데이트 : 세션의 실제 구현에 관한

    , 그것은 요구 사항에 따라 다르지만 클라이언트 측 쿠키와 서버 측 내구성 스토리지의 전통적인 방법은 어떻게해야 장난. ASP.NET ID와 통합 할 필요는 없지만 사용자 고유 식별자를 통해 지정된 사용자 ID에 활성 세션이 있음을 추적하면됩니다. 인증시 완료됩니다.

    그런 다음 세션 종료 시점을 결정하는 문제가 있습니다. 그 부분은 대부분 정확한 요구 사항에 따라 달라집니다.사용자가 다른 응용 프로그램에서 단일 로그 아웃을 실행하려는 경우 로그 아웃하기 위해 IP/AS로 이동하거나 더 까다로울 수 있습니다.

    토큰과 관련하여 세션 종료 (로그 아웃)시 새로 고침 토큰을 취소하는 것도 고려할 수 있습니다. 요약하면 구현할 많은 움직이는 부분이 있습니다. 당신이 이미하지 않은 경우

    당신은 또한 확인해야합니다 :

    +0

    Auth0을 잘 알고 있지만 유감스럽게도 예산이 아니기 때문에 사용할 수 없습니다. 우리는 클라우드 제품을 보유하고 있으며 Auth0의 사용은 2 년 전에 높은 비용으로 인해 거부되었습니다. 그러나 ASP.NET ID 및 토큰을 사용하여 세션 관리에 관해서는 아무 것도 찾을 수 없습니다. – Raffaeu

    +0

    예, 저는 수년간 기업 세계에 있었기 때문에 그 느낌을 알고 있습니다. 관리자가 외부에서 가격을 확인하는 것은 쉽지만 사내 솔루션을 구현, 보안 및 유지 관리하는 실제 비용을 결코 계산하지는 않습니다. 세션 관리에 대한 귀하의 요점에 관해서, 나는 대답을 업데이트했다. –

    +0

    Angelo님께 감사드립니다. 불행히도 OAuth0과 같은 외부 도구의 비용은 수천 명의 사용자가있는 클라우드 고객에게 인출해야합니다. 따라서 우리는 자체 구현을 선택합니다 – Raffaeu