• 2024/05/04

Convert SecureString to String for UiPath

UiPath에서 문자열 변수는 기본적으로 String 타입이다.
단, Orchestrator(이하 오케스트레이터)에 Credential을 저장하는 경우,
이에 대한 정보를 얻기 위해서 String 타입으로 변환해야할 경우가 생긴다.

위와 같이 RPA 스크립트를 작성하는 과정 중에서 어떠한 연유로 인해,
SecureString을 String으로 변환하게 되는데,
이 과정은 개인적으로도 많이 사용하기에, 이 글에서 그 과정을 정리해두었다.

실습을 위한 준비

오케스트레이터에 Credential 추가

실습을 위해서, 사전에 미리 오케스트레이터에 Credetial Asset을 추가했다.
오케스트레이터는 UiPath Community 등록시 제공되는 Cloud를 사용했다.
(바로가기: http://cloud.uipath.com)

Asset 등록 확인

UiPath Studio(이하 스튜디오)에서 Asset이 정상적으로 존재하는지 확인 가능하다.

SecureString을 String으로

먼저, 스튜디오에서 오케스트레이터의 에셋을 가져와 출력해본다.
이때, SecureString은 곧바로 출력되지 않으므로, ToString을 붙여본다.

자격증명을 출력해주는 단순 스크립트 예시
출력된 결과

출력 결과에서 계정명은 정상적으로 Asset에서 지정한 대로 출력되었지만,
패스워드는 ‘System.Security.SecureString’으로 변수의 타입이 출력되었다.
우리는 이 다음에 쓸 과정을 통해, String 타입으로 출력할 것이다.

Assign 액티비티 추가

String 타입 변수와 Assign 액티비티를 추가하여, 한 가지 과정을 거친다.
<To>에는 String 타입의 변수를, <Value>에는 다음 코드를 집어 넣는다.

New System.Net.NetworkCredential(String.Empty,"암호화된 변수명").Password

앞서, “암호화된 변수명”으로 ‘sstr_비밀번호’를 사용했기에, 인자로 ‘sstr_비밀번호’를 사용했다.

예시에 따른 표현식

이제, 코드를 실행해서 정상적으로 출력되는지 확인해본다.

지정한 패스워드가 출력되었다

앞서 오케스트레이터에 등록했던 Credential Asset의 내용대로 출력됨을 확인할 수 있다.

주의사항

당연하게도, 이 스크립트는 상당히 주의해서 사용해야 한다.
오케스트레이터 혹은 시스템에 등록된 Credential을 그대로 출력하기 때문에,
거의 대부분의 환경, 장담컨데 99%의 비즈니스 환경에서는 ‘심각한 보안의 위협‘에 해당한다.

따라서, 불가피하게 위 코드를 사용하게 될 경우에는 반드시 후속조치로서 해당 코드를 삭제해야 한다.
디버그 혹은 잊어버린 패스워드를 찾는 용도 외로 사용할 경우, 그 책임은 온전히 사용자 본인의 몫이다.
절대로 운영환경에서는 사용하지 말아야 한다.

‘UiPath’ 관련 글

[catlist name=”uipath” date=yes]

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다