Hjem  >  Maskinporten

Skyporten med Databricks - Maskinporten for deling av skyressurser

Oppskrift for konsument og tilbyder for å benytte Skyporten med Databricks

For deg som skal tilby via Databricks

OIDC Oppsett

For å sette opp Databricks til å bruke Maskinporten, kan man bruke deres oppsett for M2M OIDC delta sharing, se oppsett her.

OIDC Federation Policy må være satt opp på følgende måte:

  • Policy name: Valgfritt
  • Issuer URL: Skyporten issuer url, se .well-known her
  • Subject claim: sub
  • Subject: sub på skyportens format 0192:[RECIPIENT ORGNO];[SKYPORTEN SCOPE] feks: 0192:310175838;difitest:test2
  • Audiences: Valgfritt, feks https://difitest.no

Tildel tabeller til den nyopprettede recipienten som ved vanlig delta sharing

For deg som skal konsumere fra Databricks

Oppsett

Prosjektet krever at man har et ekte Maskinporten-token mot det rette miljøet. Her er informasjon om hvordan du kommer i gang med Maskinporten. Her er et node.js eksempel på token-generering for skyporten.

Ettersom databricks har integrert pålogging og uthenting av data, krever denne pt signering med nøkler, og ikke virksomhetssertifikat. Konsumentbiblioteket er opensource og pull requests er ønsket!

Pakken for automatisert uthenting gjennom python er releaset her

pip3 install delta-sharing

Create a Databricks profile

Følgende må oppgis fra tilbyder basert på oppsett i pakken :

  • endpoint
  • audience
  • scope

Lagre som oauth_config.share

{
    "shareCredentialsVersion": 2,
    "type": "oauth_jwt_bearer_private_key_jwt",
    "endpoint": "[FROM PROVIDER]",
    "auth": {
        "tokenEndpoint": "[SKYPORTEN TOKEN ENDPOINT]",
        "clientId": "[SKYPORTEN CLIENT ID]",
        "issuer": "[SKYPORTEN ISSUER]",
        "audience": "[AUDIENCE SET IN PROVIDERS DATABRICKS OIDC Federation Policy]",
        "scope": "[PROVIDER SCOPE]",
        "privateKey": {
            "privateKeyFile": "[PATH TO PRIVATE KEY FILE]",
            "keyId": "[SKYPORTEN KEY ID]",
            "algorithm": "RS256"
        }
    }
}

Run

Kjør pakken med følgende kommandoer i et python-miljø eller som en del av en notebook

import delta_sharing

# Point to the profile file. It can be a file on the local file system or a file on a remote storage.
 profile_file = "oauth_config.share"

 # Create a SharingClient.
 client = delta_sharing.SharingClient(profile_file)
 #
 # List all shared tables.
 tables = client.list_all_tables()

 print(tables)