2016-09-29 4 views
0

그래서 전자 메일에 액세스하는 SSIS 패키지에 스크립트 작업이 있습니다.SSIS 스크립트 작업에서 암호를 암호화하는 방법은 무엇입니까?

ExchangeService service = new Microsoft.Exchange.WebServices.Data.ExchangeService(ExchangeVersion.Exchange2010_SP1); 
    service.Credentials = new NetworkCredential("[email protected]", "123"); 

패키지 자체를 암호화했지만 ScriptMain.cs 페이지에 일반 텍스트로 표시되는 것이 불안합니다. 과거에는 WPF 응용 프로그램에서이 데이터를 암호화 할 수 있었지만 어떻게 스크립트 작업으로 변환 할 수 있는지 확신 할 수 없었습니다. 이 생각을 끝내고 있습니까? 하나 이상의 보호 계층을 추가하는 연결 관리자 또는 다른 것을 설정하는 방법이 있습니까?

전자 메일에 연결하기 위해 교환 서비스 API를 사용하고 있습니다.

답변

1

소위 중요한 패키지 또는 프로젝트 매개 변수를 사용할 수 있습니다. 이러한 매개 변수에 매핑 된 환경 매개 변수는 암호화 된 SSIS 카탈로그에 저장됩니다. 그냥 암호를 생성하고 Matt Masson에 의해 설명 된 바와 같이

Dts.Variables["$Package::YourPassword"].GetSensitiveValue().ToString() 

처럼 .GetSensitiveValue() 방법으로 스크립트 작업에 그것을 얻을.

0

EWS Managed API clients에 따르면,

그래서

당신은 할 수있다 '사서함과 연결된 자격 증명을 가정 온 - 프레미스 Exchange 서버에 로그온 한 사용자의 기본 자격 증명을 사용하여 대상 클라이언트를 도메인에 가입' 사용할 수있다;

service.UseDefaultCredentials = true; 

가능하지 않은 경우 검색 할 수 있도록 데이터베이스에 저장하는 것이 좋습니다. 데이터베이스에서 보안/암호화 할 수 있습니다.

또한 SQL 2012 이상을 사용하는 경우 중요한 매개 변수를 사용할 수 있습니다. 이것은 암호 및/또는 사용자 이름을 매개 변수화하려는 것으로 가정합니다.

public void Main() 
    { 
     try 
     { 
      string value = Dts.Variables["$Package::ExchangePassword"].GetSensitiveValue().ToString(); 

      Dts.TaskResult = (int)ScriptResults.Success; 
     } 
     catch (Exception e) 
     { 
      Dts.Log(e.Message, 0, null); 
      Dts.TaskResult = (int)ScriptResults.Failure; 
     } 
    } 
관련 문제