Saturday, August 11, 2018

ASP.NET 2.1 Secret Manager 사용

튜토리얼이랍시고 써 놓은 것이, 저자가 설명충이 빙의했는지 길고 지루하여 다시 쓴다.
ASP.NET 2.0 -> 2.1이 되면서 많은 부분이 바뀌었고, 튜토리얼 코드가 안 돌아가는 것도 있는데 Documentation도 부실하고 Tutorial은 업데이트 안 돼 있고 어쩌란 말인가!

코드 중간중간에  비밀번호를 막 쓰면 안 된다.

ASP.NET Core에서는 개발 단계에서 쓸 목적으로 이런 중요 문자열을 관리할 'Secret Manager'를 제공한다(배포 때는 쓰면 안 되지만).

DB 접속 문자열이나 OAuth secret 등이 흔한 예가 되겠다.

프로젝트에 Rt-click 하고 '사용자 암호 관리(Manage User Secrets)'를 누르면 빈 json이 하나 뜨는데 그걸 편집(key-value pair 추가)하면 된다(cmd 열고 dotnet user-secrets set KEY VALUE 치고 싶은 사람은 열심히 치든가...).

읽을 때는 Configuration["Key"]로 읽으면 된다.


Secret manager를 사용하면 사용자 폴더(홈 디렉토리)의 하위 폴더인 %APPDATA% 밑에 내용이 저장된다고 한다. 그래서 Project 폴더와 분리되고 보호된다고...ASP.NET 'Core'는 macOS나 Linux에서도 돌아가므로 거기는 그 OS의 홈 디렉토리에 저장될 것이다. 그리고 이런 구현은 나중에 바뀔 수 있으니 여기 의존하지 않게 코딩하는 게 중요하다. 그런 것과 상관없이 코딩하게 해 주는 것이 Secret Manager의 의의이기도 하다.

'사용자 암호 관리'는 번역이 잘못됐다. Secret이 password가 아니거늘... 요새 MS 번역 상태는 많이 안 좋다. 정말 안 좋다.

No comments:

Post a Comment

창 핸들을 만드는 동안 오류가 발생했습니다

System.ComponentModel.Win32Exception was unhandled   MyForm w = new MyForm IntPtr handle = wnd.Handle;   // Exception occurs here class MyFo...