다음을 통해 공유


Power BI에 대한 자격 증명을 프로그래밍 방식으로 구성

적용 대상: 앱 소유 데이터 사용자 소유 데이터

Power BI에 대한 자격 증명을 프로그래밍 방식으로 구성하려면 이 문서의 단계를 따르세요. 또한 프로그래밍 방식으로 자격 증명을 구성하면 자격 증명을 암호화할 수 있습니다.

참고 항목

  • 호출하는 사용자는 의미 체계 모델 소유자 또는 게이트웨이 관리자여야 합니다. 서비스 주체를 사용할 수도 있습니다. 예를 들어 서비스 주체는 의미 체계 모델 소유자일 수 있습니다.
  • 클라우드 데이터 원본과 해당 자격 증명은 사용자 수준에서 관리됩니다.

데이터 원본에 대한 자격 증명 흐름 업데이트

  1. 데이터 원본 가져오기를 호출하여 의미 체계 모델의 데이터 원본을 검색합니다. 각 데이터 원본의 응답 본문에는 형식, 연결 세부 정보, 게이트웨이 및 데이터 원본 ID가 포함되어 있습니다.

    // Select a datasource
    var datasources = pbiClient.Datasets.GetDatasources(datasetId).Value;
    var datasource = datasources.First();
    
  2. 데이터 원본 업데이트 예제에 따라 자격 증명 문자열을 빌드합니다. 자격 증명 문자열의 콘텐츠는 자격 증명 유형에 따라 달라집니다.

    var credentials =  new BasicCredentials(username: "username", password :"*****");
    

    참고 항목

    클라우드 데이터 원본을 사용 중인 경우에는 이 섹션의 다음 단계를 수행하지 마세요. 데이터 원본 업데이트를 호출하여 1단계에서 얻은 게이트웨이 ID와 데이터 원본 ID를 사용하여 자격 증명을 설정합니다.

  3. 게이트웨이 가져오기를 호출하여 게이트웨이 공용 키를 검색합니다.

    var gateway = pbiClient.Gateways.GetGatewayById(datasource.GatewayId);
    
  4. 자격 증명을 암호화합니다.

    var credentialsEncryptor = new AsymmetricKeyEncryptor(gateway.publicKey);
    
  5. 암호화된 자격 증명을 사용하여 자격 증명 세부 정보를 빌드합니다.

    3단계에서 검색된 공개 키를 통해 AsymetricKeyEncryptor 클래스를 사용합니다.

    var credentialDetails = new CredentialDetails(
            credentials,
            PrivacyLevel.Private,
            EncryptedConnection.Encrypted,
            credentialsEncryptor);
    
  6. 데이터 원본 업데이트를 호출하여 자격 증명을 설정합니다.

    pbiClient.Gateways.UpdateDatasource(datasource.GatewayId.Value, datasource.DatasourceId.Value, new UpdateDatasourceRequest(credentialDetails));
    

데이터 게이트웨이에 대한 새 데이터 원본 구성

  1. 머신에 온-프레미스 데이터 게이트웨이를 설치합니다.

  2. 게이트웨이 가져오기를 호출하여 게이트웨이 ID 및 공용 키를 검색합니다.

    // Select a gateway
    var gateways = pbiClient.Gateways.GetGateways().Value;
    var gateway = gateways.First();
    
  3. 2단계에서 검색한 게이트웨이 공개 키를 사용하여 데이터 원본에 대한 자격 증명 흐름 업데이트 섹션에 설명된 절차에 따라 자격 증명 세부 정보를 작성합니다.

  4. 요청 본문을 빌드합니다.

    var request = new PublishDatasourceToGatewayRequest(
            dataSourceType: "SQL",
            connectionDetails: "{\"server\":\"myServer\",\"database\":\"myDatabase\"}",
            credentialDetails: credentialDetails,
            dataSourceName: "my sql datasource");
    
  5. 데이터 원본 만들기 API를 호출합니다.

    pbiClient.Gateways.CreateDatasource(gateway.Id, request);
    

자격 증명 유형

엔터프라이즈 온-프레미스 게이트웨이의 Power BI REST API에서 데이터 원본 만들기 또는 데이터 원본 업데이트를 호출할 때 게이트웨이 공개 키를 사용하여 자격 증명 값을 암호화합니다.

참고 항목

.NET SDK v3 역시 .NET SDK v2 예제를 실행할 수 있습니다.

Windows 및 기본 자격 증명

// Windows credentials
var credentials = new WindowsCredentials(username: "john", password: "*****");

// Or

// Basic credentials
var credentials = new BasicCredentials(username: "john", password: "*****");

var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);

키 자격 증명

var credentials = new KeyCredentials("TestKey");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);

OAuth2 자격 증명

var credentials = new OAuth2Credentials("TestToken");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);

익명 자격 증명

var credentials = new AnonymousCredentials();
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.NotEncrypted);

문제 해결

데이터 원본 가져오기를 호출할 때 게이트웨이 및 데이터 원본 ID를 찾을 수 없음

이 문제는 의미 체계 모델이 게이트웨이에 바인딩되지 않았음을 의미합니다. 새 의미 체계 모델을 만들면 자격 증명이 없는 데이터 원본이 각 클라우드 연결에 대한 사용자의 클라우드 게이트웨이에 자동으로 생성됩니다. 클라우드 게이트웨이는 클라우드 연결에 대한 자격 증명을 저장하는 데 사용됩니다.

의미 체계 모델을 만든 후에는 의미 체계 모델과 적절한 게이트웨이 간에 자동 바인딩이 만들어집니다. 이 게이트웨이에는 모든 연결에 대해 일치하는 데이터 원본이 포함되어 있습니다. 적절한 게이트웨이 또는 게이트웨이가 없으면 자동 바인딩이 실패합니다.

온-프레미스 의미 체계 모델을 사용하는 경우 누락된 온-프레미스 데이터 원본을 만들고 게이트웨이에 바인딩을 사용하여 수동으로 의미 체계 모델을 게이트웨이에 바인딩합니다.

바인딩 가능한 게이트웨이를 검색하려면 게이트웨이 검색을 사용합니다.