DotNetOpenID와 함께 OpenID를 사용하여 ASP.NET 사이트에서 관리자를 인증하는 안전한 방법

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

  •  09-06-2019
  •  | 
  •  

문제

SO에 힘입어 사용자 인증을 위해 OpenID를 사용하는 ASP.NET 사이트를 작성하려고 합니다.이는 MVC.NET이 아닌 일반 WinForms 사이트입니다. DotNetOpenId 인증을 위한 라이브러리

현재 세션의 "ClaimedID"(OpenIdLogin_LoggedIn 이벤트에서 반환된 DotNetOpenId.RelyingParty,OpenIdEventArgs.Response.ClaimedIdentifier 멤버)를 알려진 관리자의 OpenID(예:내 거)?

그렇다면 이 ID가 표시되는 것이 안전한가요?(예:오픈 소스 코드에서), 아니면 구성 파일이나 데이터베이스 행에 "숨겨져" 있어야 합니까?(구성 가능하게 만드는 것이 더 나은 디자인이라는 것을 알고 있습니다. 제 질문은 안전에 관한 것입니다.)

도움이 되었습니까?

해결책

Jarrett은 데이터베이스 테이블 사용에 대해 좋은 의견을 제시합니다.

귀하의 질문 중 하나에 대답하자면, 아닙니다. 일반적으로 OpenID를 코드에 넣는 것은 기밀 사항이 아닙니다.역할 설정이 사이트에 과도해 보인다면 ClaimedIdentifier에 대한 간단한 동등성 확인이 완벽합니다.

다른 팁

내 해결책은 역할 테이블과 동일한 아이디어를 따르는 것입니다.사용자를 인증한 후 해당 사용자의 역할을 찾아보세요.사용자가 UserRoles 테이블에서 "관리자" 역할을 갖고 있는 경우 관리자가 할 수 있는 모든 작업을 수행할 수 있습니다.

내 앱에서는 오픈 ID를 공개하지 않습니다.테이블에 저장되어 있습니다.모든 작업 결과에서 다양한 사용자 상태 정보를 저장하도록 내 테이블도 수정했기 때문에 사용자 테이블을 방문합니다.홈 페이지를 제외하고 해당 테이블에는 필요한 일부 사용자 정보가 있습니다.저는 LINQ를 사용하고 있으므로 직렬화할 때 역할 목록과 함께 사용자를 로드하기 위해 .LoadWith()를 포함합니다.

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