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

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!

Create a Databricks profile

Følgende må oppgis fra tilbyder basert på oppsett hos dem:

  • 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": "[SKYPORTEN SCOPE]",
        "privateKey": {
            "privateKeyFile": "[PATH TO PRIVATE KEY FILE]",
            "keyId": "[SKYPORTEN KEY ID]",
            "algorithm": "RS256"
        }
    }
}

Run

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)