Freigeben über


Konfigurieren einer Verbundrichtlinie

Mit dem OAuth-Tokenverbund von Databricks können Sie mithilfe von Token von Ihrem Identitätsanbieter (IdP) sicher auf Databricks-APIs zugreifen. Um den OAuth-Tokenverbund zu aktivieren, müssen Sie eine Verbundrichtlinie konfigurieren, entweder als Databricks-kontoweit oder für Workloads.

Auf dieser Seite wird beschrieben, wie Sie eine OAuth-Tokenverbundrichtlinie erstellen und konfigurieren.

Workload-Identitätsverbund

Der Workload-Identitätsverbund ermöglicht Es Ihren automatisierten Workloads, die außerhalb von Azure Databricks ausgeführt werden, auf Azure Databricks-APIs zuzugreifen, ohne dass Azure Databricks geheime Schlüssel erforderlich sind. Kontoadministratoren können den Workload-Identitätsverbund mithilfe einer Verbundrichtlinie für Dienstprinzipale konfigurieren.

Eine Dienstprinzipalverbundrichtlinie ist einem Dienstprinzipal in Ihrem Azure Databricks-Konto zugeordnet und gibt Folgendes an:

  • Der Identitätsanbieter (oder Aussteller), von dem der Dienstprinzipal authentifiziert werden kann.
  • Die Workload-Identität (oder der Betreff), die als Azure Databricks-Dienstprinzipal authentifiziert werden darf.

Beispielsweise, in Anbetracht der folgenden Dienstprinzipalverbundrichtlinie für ein GitHub Actions-Workload:

  • Emittent:https://token.actions.githubusercontent.com
  • Leserkreis:https://github.com/my-github-org
  • Betreff:repo:my-github-org/my-repo:environment:prod

Sie können diesen JWT-Text verwenden, um sich bei Azure Databricks zu authentifizieren:

{
  "iss": "https://token.actions.githubusercontent.com",
  "aud": "https://github.com/my-github-org",
  "sub": "repo:my-github-org/my-repo:environment:prod"
}

Konfigurieren einer Dienstprinzipalverbundrichtlinie

Kontoadministratoren können eine Dienstprinzipalverbundrichtlinie mithilfe der Databricks CLI oder der Databricks-API konfigurieren. Sie können maximal 20 Dienstprinzipalverbundrichtlinien pro Azure Databricks-Dienstprinzipal erstellen.

Um eine Dienstprinzipalverbundrichtlinie zu konfigurieren, müssen Sie Folgendes angeben:

  • Aussteller-URL: Eine HTTPS-URL, die den Workload-Identitätsanbieter identifiziert, der iss im Anspruch von Workload-Identitätstoken angegeben ist.

  • Betreff: Der eindeutige Bezeichner für die Workload in der Workload-Laufzeitumgebung. Wenn nicht angegeben, lautet subder Standardwert .

  • Leserkreis: Der beabsichtigte Empfänger des Tokens, der im aud Anspruch angegeben ist. Das Token wird als Übereinstimmung betrachtet, wenn seine Zielgruppe mindestens einer Benutzergruppe in der Richtlinie entspricht. Wenn nicht angegeben, ist die Standardeinstellung Ihre Azure Databricks-Konto-ID.

  • Antragstelleranspruch: (Optional) Gibt den Tokenanspruch an, der die Workload-Identität (auch als Betreff bezeichnet) des Tokens enthält. Wenn nicht festgelegt, verwendet sub Azure Databricks standardmäßig. Databricks empfiehlt, den Standardanspruch sub für den Workload-Identitätsverbund beizubehalten. Wählen Sie nur einen anderen Anspruch aus, wenn sub es sich nicht um einen geeigneten oder stabilen Antragstellerbezeichner handelt, der selten ist. Ausführliche Informationen finden Sie unter Beispiel für Dienstprinzipalverbundrichtlinien.

  • Tokensignaturüberprüfung: (Optional) Die öffentlichen Schlüssel oder ihre URL im JSON Web Key Sets (JWKS)-Format, das zum Überprüfen von Tokensignaturen verwendet wird. JWKS JSON unterstützt bis zu 5 Schlüssel. Wenn Ihr Identitätsanbieter mehr veröffentlicht, verwenden Sie stattdessen einen JWKS-URI.

    Wenn nicht angegeben, ruft Azure Databricks die Schlüssel vom bekannten Endpunkt des Ausstellers ab, was der empfohlene Ansatz ist. Ihr Identitätsanbieter muss OpenID-Anbietermetadaten unter <issuer-url>/.well-known/openid-configuration bereitstellen, die einen jwks_uri enthalten, der den Speicherort der öffentlichen Schlüssel angibt, die zum Überprüfen von Tokensignaturen verwendet werden.

Databricks UI

  1. Melden Sie sich als Kontoadministrator bei der Azure Databricks-Kontokonsole bei https://accounts.azuredatabricks.net.
  2. Klicken Sie auf "Benutzerverwaltung".
  3. Wechseln Sie zur Registerkarte "Dienstprinzipale" .
  4. Wählen Sie den Dienstprinzipal aus, für den die Richtlinie erstellt werden soll.
  5. Wechseln Sie zur Registerkarte "Anmeldeinformationen" und "Geheime Schlüssel ".
  6. Klicken Sie auf der Registerkarte "Verbundrichtlinien " auf " Richtlinie erstellen".
  7. Wählen Sie einen Verbundanmeldeinformationsanbieter aus, und konfigurieren Sie die entsprechenden Felder.
  8. Klicken Sie auf Create policy.

Databricks-Befehlszeilenschnittstelle

Sie können die Azure Databricks CLI im Azure Databricks-Arbeitsbereich-Webterminal nicht verwenden, um eine Verbundrichtlinie zu erstellen.

  1. Installieren oder aktualisieren Sie die neueste Version der Azure Databricks CLI.

  2. Als Kontoadministrator authentifizieren Sie sich mit der CLI bei Ihrem Azure Databricks-Konto. Geben Sie die ACCOUNT_CONSOLE_URL und Ihre Azure Databricks ACCOUNT_ID an:

    databricks auth login --host ${ACCOUNT_CONSOLE_URL} --account-id ${ACCOUNT_ID}
    
  3. Rufen Sie die numerische ID des Dienstprinzipals ab, auf den die Verbundrichtlinie angewendet wird. (Beispiel: 3659993829438643.)

    Wenn Sie die Dienstprinzipalanwendungs-ID (normalerweise ein GUID-Wert, z.B. bc3cfe6c-469e-4130-b425-5384c4aa30bb) im Voraus kennen, können Sie die numerische ID des Dienstprinzipals mithilfe der Databricks CLI ermitteln.

    databricks account service-principals list --filter 'applicationId eq "<service-principal-application-id>"'
    
  4. Erstellen der Dienstprinzipalverbundrichtlinie. Hier ist ein Beispiel für das Erstellen einer Verbundrichtlinie für eine GitHub-Aktion:

    databricks account service-principal-federation-policy create ${SERVICE_PRINCIPAL_NUMERIC_ID} --json \
    '{
      "oidc_policy": {
        "issuer": "https://token.actions.githubusercontent.com",
        "audiences": [
          "https://github.com/my-github-org"
        ],
        "subject": "repo:my-github-org/my-repo:environment:prod"
      }
    }'
    

Databricks-Konto-API

  1. Rufen Sie die numerische ID des Dienstprinzipals (z. B. 3659993829438643) aus der Kontokonsole oder mithilfe der Dienstprinzipal-API ab.

  2. Erstellen Sie die Dienstprinzipalverbundrichtlinie:

    curl --request POST \
      --header "Authorization: Bearer $TOKEN" \
      "https://accounts.cloud.databricks.com/api/2.0/accounts/${ACCOUNT_ID}/servicePrincipals/${SERVICE_PRINCIPAL_NUMERIC_ID}/federationPolicies" \
      --data '{
        "oidc_policy": {
          "issuer": "https://token.actions.githubusercontent.com",
          "audiences": [
            "https://github.com/my-github-org"
          ],
          "subject": "repo:my-github-org/my-repo:environment:prod"
        }
      }'
    

    Vollständige API-Referenzdokumentation finden Sie in der API für Kontoverbundrichtlinien.

Beispiel für Databricks-Dienstprinzipalverbundrichtlinien

Die folgende Tabelle enthält Beispiel-Dienstprinzipalverbundrichtlinien und den entsprechenden JWT-Text.

Vollständige Konfigurationsschritte zum Aktivieren des Workload-Identitätsverbunds für einige dieser allgemeinen Identitätsanbieter finden Sie unter Aktivieren des Workload-Identitätsverbunds in CI/CD.

Tool Verbundrichtlinie Beispiel für ein passendes Token
GitHub-Aktionen Emittent:https://token.actions.githubusercontent.comPublikum:https://github.com/<github-org>Betreff:repo:<github-org>/<repo>:environment:prod { "iss": "https://token.actions.githubusercontent.com", "aud": "https://github.com/<github-org>", "sub": "repo:<github-org>/<repo>:environment:prod" }
Kubernetes Emittent:https://kubernetes.default.svcPublikum:https://kubernetes.default.svcBetreff:system:serviceaccount:namespace:podnameJWKS JSON:{"keys":[{"kty":"rsa","e":"AQAB","use":"sig","kid":"<key-id>","alg":"RS256","n":"uPUViFv..."}]} { "iss": "https://kubernetes.default.svc", "aud": ["https://kubernetes.default.svc"], "sub": "system:serviceaccount:namespace:podname" }
Azure DevOps Emittent:https://vstoken.dev.azure.com/<org_id>Publikum:api://AzureADTokenExchangeBetreff:sc://my-org/my-project/my-connection { "iss": "https://vstoken.dev.azure.com/<org_id>", "aud": "api://AzureADTokenExchange", "sub": "sc://my-org/my-project/my-connection" }
GitLab Emittent:https://gitlab.example.comPublikum:https://gitlab.example.comBetreff:project_path:my-group/my-project:... { "iss": "https://gitlab.example.com", "aud": "https://gitlab.example.com", "sub": "project_path:my-group/my-project:..." }
CircleCI Emittent:https://oidc.circleci.com/org/<org_id>Publikum:<org_id>Betreff:7cc1d11b-46c8-4eb2-9482-4c56a910c7ceAntragstelleranspruch:oidc.circleci.com/project-id { "iss": "https://oidc.circleci.com/org/<org_id>", "aud": "<org_id>", "oidc.circleci.com/project-id": "7cc1d11b-46c8-4eb2-9482-4c56a910c7ce" }

Kontoweiter Tokenverbund

Kontoadministratoren können den OAuth-Tokenverbund im Azure Databricks-Konto mithilfe einer Kontoverbundrichtlinie konfigurieren. Mit einer Kontoverbundrichtlinie können alle Benutzer und Dienstprinzipale in Ihrem Azure Databricks-Konto mithilfe von Token von Ihrem Identitätsanbieter auf Databricks-APIs zugreifen. Eine Kontoverbundrichtlinie gibt Folgendes an:

  • Der Identitätsanbieter oder Aussteller, von dem Azure Databricks Token akzeptieren.
  • Die Kriterien zum Zuordnen eines Tokens zum entsprechenden Azure Databricks-Benutzer oder Dienstprinzipal.

Beispiel: Eine Verbundrichtlinie mit den folgenden Feldern:

  • Emittent:https://idp.mycompany.com/oidc
  • Leserkreis:databricks
  • Antragstelleranspruch:sub

Verwenden Sie diesen JWT-Text, um sich bei Azure Databricks zu authentifizieren als username@mycompany.com:

{
  "iss": "https://idp.mycompany.com/oidc",
  "aud": "databricks",
  "sub": "username@mycompany.com"
}

Konfigurieren einer Kontoverbundrichtlinie

Kontoadministratoren können eine Kontoverbundrichtlinie mithilfe der Azure Databricks-Benutzeroberfläche, der Databricks CLI oder der Databricks-REST-API konfigurieren. Sie können maximal 20 Kontoverbundrichtlinien in Ihrem Azure Databricks-Konto angeben.

Um eine Kontoverbundrichtlinie zu konfigurieren, müssen Sie Folgendes angeben:

  • Aussteller-URL: Eine HTTPS-URL, die Ihren Identitätsanbieter identifiziert, der iss im Anspruch Ihrer Token angegeben ist.

  • Leserkreis: Der beabsichtigte Empfänger des Tokens, der im aud Anspruch angegeben ist. Das Token wird als Übereinstimmung betrachtet, wenn seine Zielgruppe mindestens einer Benutzergruppe in der Richtlinie entspricht. Wenn nicht angegeben, ist die Standardeinstellung Ihre Azure Databricks-Konto-ID.

  • Antragstelleranspruch: Der Tokenanspruch, der den Azure Databricks-Benutzernamen des Benutzers enthält, für den das Token ausgestellt wurde. Wenn nicht angegeben, lautet subder Standardwert .

  • Tokensignaturüberprüfung: (Optional) Die öffentlichen Schlüssel oder ihre URL im JSON Web Key Sets (JWKS)-Format, das zum Überprüfen von Tokensignaturen verwendet wird. JWKS JSON unterstützt bis zu 5 Schlüssel. Wenn Ihr Identitätsanbieter mehr veröffentlicht, verwenden Sie stattdessen einen JWKS-URI.

    Wenn nicht angegeben, ruft Azure Databricks die Schlüssel vom bekannten Endpunkt des Ausstellers ab, was der empfohlene Ansatz ist. Ihr Identitätsanbieter muss OpenID-Anbietermetadaten unter <issuer-url>/.well-known/openid-configuration bereitstellen, die einen jwks_uri enthalten, der den Speicherort der öffentlichen Schlüssel angibt, die zum Überprüfen von Tokensignaturen verwendet werden.

Important

Registrieren Sie für einen kontoweiten Partnerverbund nur IDPs, die vollständig von Ihrer Organisation verwaltet und als vertrauenswürdig eingestuft werden, z. B. den eigenen IdP Ihres Unternehmens. Konfigurieren Sie keinen kontoweiten Partnerverbund mit externen IPs, die Sie nicht steuern, z. B. von Kunden oder Partnern verwaltete.

Databricks UI

  1. Melden Sie sich als Kontoadministrator bei der Azure Databricks-Kontokonsole bei https://accounts.azuredatabricks.net.
  2. Klicken Sie auf "Einstellungen ", und wechseln Sie zur Registerkarte " Authentifizierung ".
  3. Klicken Sie unter "Verbundrichtlinien" auf " Richtlinie erstellen".
  4. Geben Sie die Aussteller-URL, Zielgruppen, Antragstelleransprüche und optionale Tokensignaturüberprüfung ein.
  5. Klicken Sie auf Create policy.

Databricks-Befehlszeilenschnittstelle

Sie können die Azure Databricks CLI im Azure Databricks-Arbeitsbereich-Webterminal nicht verwenden, um eine Verbundrichtlinie zu erstellen.

  1. Installieren oder aktualisieren Sie die neueste Version der Databricks CLI.

  2. Als Kontoadministrator authentifizieren Sie sich mit der CLI bei Ihrem Azure Databricks-Konto. Geben Sie die ACCOUNT_CONSOLE_URL und Ihre Azure Databricks ACCOUNT_ID an.

    databricks auth login --host ${ACCOUNT_CONSOLE_URL} --account-id ${ACCOUNT_ID}
    
  3. Erstellen Sie die Kontoverbundrichtlinie. Beispiel:

    databricks account federation-policy create --json \
    '{
      "oidc_policy": {
        "issuer": "https://idp.mycompany.com/oidc",
        "audiences": [
          "databricks"
        ],
        "subject_claim": "sub"
      }
    }'
    

Databricks-Konto-API

Der folgende REST-API-Aufruf von Azure Databricks erstellt eine Kontoverbundrichtlinie:

curl --request POST \
  --header "Authorization: Bearer $TOKEN" \
  "https://accounts.cloud.databricks.com/api/2.0/accounts/${ACCOUNT_ID}/federationPolicies" \
  --data '{
    "oidc_policy": {
      "issuer": "https://idp.mycompany.com/oidc",
      "audiences": [
        "databricks"
      ],
      "subject_claim": "sub"
    }
  }'

Vollständige API-Referenzdokumentation finden Sie in der API für Kontoverbundrichtlinien.

Beispiel für Kontoverbundrichtlinien

Die folgende Tabelle enthält Beispiel-Kontoverbundrichtlinien und den entsprechenden JWT-Text.

Verbundrichtlinie Beispiel für ein passendes Token
Emittent:https://idp.mycompany.com/oidcPublikum:2ff814a6-3304-4ab8-85cb-cd0e6f879c1d { "iss": "https://idp.mycompany.com/oidc", "aud": "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d", "sub": "username@mycompany.com" }
Emittent:https://idp.mycompany.com/oidcPublikum:2ff814a6-3304-4ab8-85cb-cd0e6f879c1dAntragstelleranspruch:preferred_username { "iss": "https://idp.mycompany.com/oidc", "aud": ["2ff814a6-3304-4ab8-85cb-cd0e6f879c1d", "other-audience"], "preferred_username": "username@mycompany.com", "sub": "some-other-ignored-value" }
Emittent:https://idp.mycompany.com/oidcPublikum:2ff814a6-3304-4ab8-85cb-cd0e6f879c1dJWKS JSON:{"keys":[{"kty":"RSA","e":"AQAB","use":"sig","kid":"<key-id>","alg":"RS256","n":"uPUViFv..."}]} { "iss": "https://idp.mycompany.com/oidc", "aud": "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d", "sub": "username@mycompany.com" } (Signatur mit öffentlichem Schlüssel in der Richtlinie überprüft)
Emittent:https://idp.mycompany.com/oidcPublikum:2ff814a6-3304-4ab8-85cb-cd0e6f879c1dJWKS-URI:https://idp.mycompany.com/jwks.json { "iss": "https://idp.mycompany.com/oidc", "aud": "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d", "sub": "username@mycompany.com" } (Signatur mit öffentlichem Schlüssel überprüft, der von jwks_uri abgerufen wurde)

Nächste Schritte

Nachdem Sie eine Verbundrichtlinie für Ihr Konto konfiguriert haben:

  • Konfigurieren Sie Ihren Identitätsanbieter (IdP), um Token zu generieren, die Ihre Benutzer mit Azure Databricks austauschen können. Details zur Einrichtung finden Sie in der Dokumentation ihres IdP. Anweisungen zum Aktivieren des Workload-Identitätsverbunds mit allgemeinen IPs finden Sie unter Aktivieren des Workloadidentitätsverbunds in CI/CD.
  • Verwenden Sie ein JWT von Ihrem IdP, um auf die Azure Databricks-API zuzugreifen, indem Sie es zuerst für ein Azure Databricks OAuth-Token austauschen. Schließen Sie das OAuth-Token von Azure Databricks in den Bearer: Header Ihres API-Aufrufs ein, um die Anforderung abzuschließen. Das JWT muss mit den Algorithmen RS256 oder ES256 gültig und signiert sein. Details zur Implementierung finden Sie unter Authentifizieren mit einem Identitätsanbietertoken.