Convert SecureString to String for UiPath
UiPath에서 문자열 변수는 기본적으로 String 타입이다.
단, Orchestrator(이하 오케스트레이터)에 Credential을 저장하는 경우,
이에 대한 정보를 얻기 위해서 String 타입으로 변환해야할 경우가 생긴다.
위와 같이 RPA 스크립트를 작성하는 과정 중에서 어떠한 연유로 인해,
SecureString을 String으로 변환하게 되는데,
이 과정은 개인적으로도 많이 사용하기에, 이 글에서 그 과정을 정리해두었다.
실습을 위한 준비
실습을 위해서, 사전에 미리 오케스트레이터에 Credetial Asset을 추가했다.
오케스트레이터는 UiPath Community 등록시 제공되는 Cloud를 사용했다.
(바로가기: http://cloud.uipath.com)
UiPath Studio(이하 스튜디오)에서 Asset이 정상적으로 존재하는지 확인 가능하다.
SecureString을 String으로
먼저, 스튜디오에서 오케스트레이터의 에셋을 가져와 출력해본다.
이때, SecureString은 곧바로 출력되지 않으므로, ToString을 붙여본다.
출력 결과에서 계정명은 정상적으로 Asset에서 지정한 대로 출력되었지만,
패스워드는 ‘System.Security.SecureString’으로 변수의 타입이 출력되었다.
우리는 이 다음에 쓸 과정을 통해, String 타입으로 출력할 것이다.
String 타입 변수와 Assign 액티비티를 추가하여, 한 가지 과정을 거친다.
<To>에는 String 타입의 변수를, <Value>에는 다음 코드를 집어 넣는다.
New System.Net.NetworkCredential(String.Empty,"암호화된 변수명").Password
앞서, “암호화된 변수명”으로 ‘sstr_비밀번호’를 사용했기에, 인자로 ‘sstr_비밀번호’를 사용했다.
이제, 코드를 실행해서 정상적으로 출력되는지 확인해본다.
앞서 오케스트레이터에 등록했던 Credential Asset의 내용대로 출력됨을 확인할 수 있다.
주의사항
당연하게도, 이 스크립트는 상당히 주의해서 사용해야 한다.
오케스트레이터 혹은 시스템에 등록된 Credential을 그대로 출력하기 때문에,
거의 대부분의 환경, 장담컨데 99%의 비즈니스 환경에서는 ‘심각한 보안의 위협‘에 해당한다.
따라서, 불가피하게 위 코드를 사용하게 될 경우에는 반드시 후속조치로서 해당 코드를 삭제해야 한다.
디버그 혹은 잊어버린 패스워드를 찾는 용도 외로 사용할 경우, 그 책임은 온전히 사용자 본인의 몫이다.
절대로 운영환경에서는 사용하지 말아야 한다.
‘UiPath’ 관련 글
[catlist name=”uipath” date=yes]