Aanvullende connectorfunctionaliteit

Dit artikel bevat informatie over verschillende typen aanvullende connectorfunctionaliteit waarin connectorontwikkelaars mogelijk willen investeren. Voor elk type bevat dit artikel een overzicht van de beschikbaarheid en instructies voor het inschakelen van de functionaliteit.

Verificatie

Tijdens het implementeren van verificatie wordt beschreven in het artikel over verificatie, zijn er andere methoden die eigenaren van connectors mogelijk willen aanbieden.

Windows-verificatie

Windows verificatie wordt ondersteund. Als u Windows in uw connector wilt inschakelen, voegt u de volgende regel toe in de sectie Verificatie van uw connector.

Windows = [ SupportsAlternateCredentials = true ]

Door deze wijziging wordt Windows verificatie beschikbaar gemaakt als een optie in Power BI Desktop verificatie-ervaring. Met de vlag SupportsAlternateCredentials wordt de optie beschikbaar gemaakt voor 'Verbinding maken met behulp van alternatieve referenties'. Nadat deze vlag is ingeschakeld, kunt u expliciete Windows accountreferenties (gebruikersnaam en wachtwoord) opgeven. U kunt deze functie gebruiken om imitatie te testen door uw eigen accountreferenties op te geven.

Verificatie met een aanmelding

In deze sectie worden de beschikbare opties beschreven voor het implementeren van eenmalige aanmelding (SSO) in uw gecertificeerde connector. Op dit moment is er geen ondersteuning voor de 'plug en play'-extensibility voor eenmalige aanmelding. Voor het inschakelen van eenmalige aanmelding zijn wijzigingen en samenwerking vereist, zowel aan de zijde van Microsoft als aan de gegevensbron of connectorzijde. Neem daarom contact op met uw contactpersoon van Microsoft voordat u aan het werk gaat.

Azure Active Directory SSO

Azure Active Directory eenmalige aanmelding (Azure AD) wordt ondersteund in cloudscenario's. De gegevensbron moet Azure AD-toegangstokens accepteren, omdat Power BI Azure AD-gebruikerstoken wordt uitgewisseld met een gegevensbrontoken van Azure AD. Als u een gecertificeerde connector hebt, kunt u contact opnemen met uw contactpersoon van Microsoft voor meer informatie.

Kerberos SSO

Een aanmelding op basis van Kerberos wordt ondersteund in gatewayscenario's. De gegevensbron moet ondersteuning bieden Windows verificatie. Over het algemeen hebben deze scenario's betrekking op directquery-rapporten en een connector op basis van een ODBC-stuurprogramma. De primaire vereisten voor het stuurprogramma zijn dat het Kerberos-configuratie-instellingen van de huidige threadcontext kan bepalen en dat deze ondersteuning biedt voor imitatie van threadgebruikers. De gateway moet worden geconfigureerd voor de ondersteuning van beperkte Kerberos-delegering (KCD). Een voorbeeld vindt u in de Impala-voorbeeldconnector.

Power BI verzendt de huidige gebruikersgegevens naar de gateway. De gateway gebruikt beperkte Kerberos-delegering om het queryproces aan te roepen als de imiteerde gebruiker.

Nadat de bovenstaande wijzigingen zijn aangebracht, kan de eigenaar van de connector de volgende scenario's testen om de functionaliteit te valideren.

  • In Power BI Desktop: Windows imitatie (huidige gebruiker)
  • In Power BI Desktop: Windows imitatie met behulp van alternatieve referenties
  • In de gateway: Windows imitatie met behulp van alternatieve referenties door de gegevensbron vooraf te configureren met Windows-accountreferenties in de gateway Power BI-beheerportal.

Connectorontwikkelaars kunnen deze procedure ook gebruiken om hun implementatie van eenmalige aanmelding op basis van Kerberos te testen.

  1. Stel een on-premises gegevensgateway in met eenmalige aanmelding ingeschakeld met behulp van de instructies in het Power BI kerberos SSO-documentatie.

  2. Valideer de installatie door te testen met SQL Server en Windows accounts. Stel de SQL Server Kerberos Configuration Manager in. Als u Eenmalige aanmelding van Kerberos met SQL Server kunt gebruiken, is uw Power BI-gegevensgateway correct ingesteld om kerberos-SSO ook in teschakelen voor andere gegevensbronnen.

  3. Maak een toepassing (bijvoorbeeld een opdrachtregelprogramma) die verbinding maakt met uw server via uw ODBC-stuurprogramma. Zorg ervoor dat uw toepassing gebruik kan Windows verificatie voor de verbinding.

  4. Wijzig de testtoepassing zodat deze een gebruikersnaam (UPN) als argument kan gebruiken en de WindowsIdentity-constructor erop kan gebruiken. Zodra dit is voltooid, moet u de eigenschap AccessToken van de gebruiker kunnen verkrijgen en dit token kunnen imiteren met de bevoegdheden die zijn verleend aan het gatewayaccount dat is ingesteld in stap 1.

  5. Nadat u de wijzigingen in uw toepassing hebt aangebracht, moet u ervoor zorgen dat u imitatie kunt gebruiken om uw service te laden en er verbinding mee te maken via het ODBC-stuurprogramma. Zorg ervoor dat gegevens kunnen worden opgehaald. Als u in plaats daarvan native C- of C++-code wilt gebruiken, moet u LsaLoginUser gebruiken om een token op te halen met alleen de gebruikersnaam en de optie KERB_S4U_LOGON gebruiken.

Nadat deze functionaliteit is gevalideerd, wijzigt Microsoft de UPN vanuit de Power BI service omlaag via de gateway. Eenmaal bij de gateway zal deze in wezen op dezelfde manier werken als uw testtoepassing om gegevens op te halen.

Neem contact op met uw Contactpersoon van Microsoft voordat u aan de slag gaat voor meer informatie over het aanvragen van deze wijziging.

Eenmalige aanmelding op basis van SAML

Eenmalige aanmelding op basis van SAML wordt vaak niet ondersteund door eindgegevensbronnen en is geen aanbevolen benadering. Als voor uw scenario het gebruik van eenmalige aanmelding op basis van SAML is vereist, kunt u contact opnemen met uw contactpersoon van Microsoft of onze documentatie bezoeken voor meer informatie.

Ondersteuning voor native databasequery's

Sommige Power Query bieden eindgebruikers de mogelijkheid om systeemeigen databasequery's op te geven onder Geavanceerde opties in de verbindingservaring. Ontwikkelaars van aangepaste connectors zijn mogelijk geïnteresseerd in het bieden van ondersteuning voor native databasequery's in hun connector.

Gebruikers toestaan om een aangepaste SQL uit te voeren via een aangepaste connector op basis van ODBC

Scenario: een eindgebruiker kan aangepaste instructies SQL via de odbc-connector. De instructie wordt uitgevoerd in de importmodus en de transformaties hoeven niet te worden gevouwen.

Status: deze functie wordt momenteel niet ondersteund in onze SDK voor extensibility. Het productteam onderzoekt de haalbaarheid van dit scenario. Zonder de extensibility van het beveiligingsmodel raden we connectors niet aan om de functionaliteit van native query's beschikbaar te maken, tenzij u een van de onderstaande tijdelijke oplossingen gebruikt.

Tijdelijke oplossingen: als de gegevensbron de algemene ODBC-connector kan gebruiken die momenteel ondersteuning biedt voor native databasequery's, wordt dit gebruik aanbevolen. Het kan echter voorkomen dat het algemene ODBC-connectiviteitsscenario niet werkt, bijvoorbeeld als verificatie moet worden geïmplementeerd op connectorniveau.

In dergelijke gevallen kan de connectorontwikkelaar ervoor kiezen om algemene ODBC-functionaliteit te gebruiken met de functie Odbc.Query in plaats van een aangepaste connector. In tegenstelling tot Odbc.DataSource, waarmee de aangepaste connector stuurprogramma-instellingen kan overschrijven en het vouwgedrag van query's kan verbeteren, voert Odbc.Query de query uit zoals deze is opgegeven en profiteert deze niet van de aangepaste connector-wrapper.

Als de gegevensbron alleen-lezentoegang kan afdwingen en u wilt doorgaan met het beschikbaar maken van de functionaliteit Odbc.Query voor uw connector, raden we u aan een tweede gegevensbronfunctie met een eigen publicatierecord op te geven en twee vermeldingen te hebben in het dialoogvenster Gegevens opvragen (DataSource.Database, DataSource.Query). De functie Odbc.Query ondersteunt alleen de importmodus in Power BI, niet Direct Query. Het onderscheid wordt aanbevolen, omdat het combineren van Odbc.Query (dat geen ondersteuning biedt voor het vouwen van query's) en Odbc.DataSource (die ondersteuning biedt voor het vouwen van query's) verwarrend kan zijn voor eindgebruikers. Zorg er ook voor dat u duidelijk onderscheid maakt tussen de naamgeving van uw twee Publish-records om duidelijk te communiceren met gebruikers welke functie moet worden gebruikt voor een native query.

Als de gegevensbron geen alleen-lezentoegang afdwingt, moet de connector ook gebruikmaken van onze eigen beveiligingsmodelfunctie voor databasequery's. Houd er rekening mee dat de prompt Native Database Query niet werkt in Visual Studio SDK. Wanneer u probeert uit te voeren Extension.Query in Visual Studio, ontvangt u een foutmelding.

The evaluation requires a permission that has not been provided. Data source kind: 'Extension'. Data source path: 'test'. Permission kind: 'Native Query'

U moet testen uitvoeren in Power BI Desktop.

In het volgende voorbeeld van connectorcode worden twee functies bevraagd, één die een systeemeigen query accepteert en één die dat niet doet.

section Extension;

// This function would call Odbc.DataSource
[DataSource.Kind = "Extension"]
shared Extension.DataSource = (server as text) => server;

// This function would call Odbc.Query
[DataSource.Kind = "Extension"]
shared Extension.Query = (server as text, query as text) => query;

Extension = [
    // MakeResourcePath overrides the default Data Source Path creation logic that serializes
    // all required parameters as a JSON encoded value. This is required to keep the data source
    // path the same between the Extension.DataSource and Extension.Query functions. Alternatively,
    // you can provide a function documentation type and use DataSource.Path = false for the query
    // parameter to exclude it from the data source path calculation.
    Type="Custom",
    MakeResourcePath = (server) => server,
    ParseResourcePath = (resource) => { resource },

    // Use NativeQuery to enable a Native Database Query prompt in the Power Query user experience.
    NativeQuery = (optional query) => query,
    Authentication=[Anonymous=null]
];

Als de parameternamen van de functie van de gegevensbron kunnen worden toe te schrijven aan de parameternamen van de functie in de gegevensbrondefinitie en de functie tekst retourneert, genereert de aanroepsite een native NativeQuery NativeQuery queryprompt. In dit geval genereert een uitdaging voor de native Extension.Query("server", "select 1") querytekst, terwijl er geen native select 1 Extension.DataSource("server") query-uitdaging wordt gegenereerd.

Gebruikers toestaan Direct Query te gebruiken via een aangepaste SQL-instructie

Scenario: een eindgebruiker kan Direct Query gebruiken voor native databasequery's.

Status: deze functie wordt momenteel niet ondersteund in onze SDK voor extensibility. Het productteam onderzoekt dit scenario en verwacht dat dit scenario uiteindelijk mogelijk is voor connectors met ODBC-stuurprogramma's en eindgegevensbronnen die de 'pass through'-modus van ANSI SQL92 ondersteunen.

Tijdelijke oplossingen: geen.