SCIM API 2.0 (ServicePrincipals) för arbetsytor

Viktigt

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Det här är en referensartikel för SCIM-API:et på arbetsytenivå för tjänstens huvudnamn.

Du kan använda SCIM (ServicePrincipals) för att lägga till, läsa, uppdatera och ta bort Azure Active Directory-tjänstens huvudnamn i Azure Databricks.

Information om hur du använder API:er för att etablera tjänstens huvudnamn direkt till ditt konto i stället finns i SCIM API 2.0 (Konton). Information om när du ska använda SCIM-etablering på kontonivå eller arbetsytenivå finns i SCIM-etablering på kontonivå och arbetsytenivå.

Felkoder finns i SCIM API 2.0-felkoder.

Fler exempel finns i Tjänstens huvudnamn för Azure Databricks-automatisering.

Krav

Ditt Azure Databricks-konto måste ha Premium-planen.

Hämta tjänstens huvudnamn

Slutpunkt HTTP-metod
2.0/preview/scim/v2/ServicePrincipals GET

Hämta en lista över alla tjänsthuvudnamn på Azure Databricks-arbetsytan.

När den anropas av en icke-administratörsanvändare returneras endast användarnamnet, användarens visningsnamn och objekt.

Exempel

curl --netrc -X GET \
https://<databricks-instance>/api/2.0/preview/scim/v2/ServicePrincipals \
| jq .

Du kan använda filter för att ange delmängder av tjänstens huvudnamn. Du kan till exempel använda filterparametern eq (lika med) för att applicationId hämta ett specifikt huvudnamn för tjänsten:

curl --netrc -X GET \
"https://<databricks-instance>/api/2.0/preview/scim/v2/ServicePrincipals?filter=applicationId+eq+<application-id>" \
| jq .

I arbetsytor med ett stort antal tjänsthuvudnamn kan du exkludera attribut från begäran för att förbättra prestandan.

curl --netrc -X GET \
"https://<databricks-instance>/api/2.0/preview/scim/v2/ServicePrincipals?excludedAttributes=entitlements,groups" \
| jq .

Ersätt:

  • <databricks-instance> med namnet på Azure Databricks-arbetsytans instans, till exempel adb-1234567890123456.7.azuredatabricks.net.
  • <application-id>applicationId med värdet för tjänstens huvudnamn, till exempel 12345a67-8b9c-0d1e-23fa-4567b89cde01.

I de här exemplen används en .netrc-fil och jq.

Hämta tjänstens huvudnamn efter ID

Slutpunkt HTTP-metod
2.0/preview/scim/v2/ServicePrincipals/{id} GET

Hämta en enskild resurs för tjänstens huvudnamn från Azure Databricks-arbetsytan, givet ett ID för tjänstens huvudnamn.

Exempel

curl --netrc -X GET \
https://<databricks-instance>/api/2.0/preview/scim/v2/ServicePrincipals/<service-principal-id> \
| jq .

Ersätt:

I det här exemplet används en .netrc-fil och jq.

Lägg till tjänstens huvudnamn

Slutpunkt HTTP-metod
2.0/preview/scim/v2/ServicePrincipals POST

Lägg till tjänstens huvudnamn för Azure Active Directory (Azure AD) på Azure Databricks-arbetsytan. I Azure Databricks måste du skapa ett program i Azure Active Directory och sedan lägga till det på din Azure Databricks-arbetsyta som ska användas som tjänstens huvudnamn. Tjänstens huvudnamn läggs automatiskt till i kontot. Se Hur synkroniserar Databricks identiteter mellan arbetsytor och kontot?. Tjänstens huvudnamn räknas mot gränsen på 1 0000 användare per arbetsyta.

Begärandeparametrar följer standardprotokollet SCIM 2.0.

Exempel

curl --netrc -X POST \
https://<databricks-instance>/api/2.0/preview/scim/v2/ServicePrincipals \
--header 'Content-type: application/scim+json' \
--data @add-service-principal.json \
| jq .

add-service-principal.json:

{
  "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal" ],
  "applicationId": "<azure-application-id>",
  "displayName": "<display-name>",
  "groups": [
    {
      "value": "<group-id>"
    }
  ],
  "entitlements": [
    {
      "value":"allow-cluster-create"
    }
  ]
}

Ersätt:

  • <databricks-instance> med namnet på Azure Databricks-arbetsytans instans, till exempel adb-1234567890123456.7.azuredatabricks.net.
  • <azure-application-id>med program-ID:t för Azure Active Directory-programmet (Azure AD), till exempel12345a67-8b9c-0d1e-23fa-4567b89cde01
  • <display-name> med visningsnamnet för tjänstens huvudnamn, till exempel someone@example.com.
  • <group-id> med ID:t för gruppen på Azure Databricks-arbetsytan, till exempel 2345678901234567. Om du vill hämta grupp-ID:t anropar du Hämta grupper.

I det här exemplet används en .netrc-fil och jq.

Uppdatera tjänstens huvudnamn efter ID (PATCH)

Slutpunkt HTTP-metod
2.0/preview/scim/v2/ServicePrincipals/{id} PATCH

Uppdatera en resurs för tjänstens huvudnamn med åtgärder för specifika attribut, förutom displayName, applicationIdoch id, som inte kan ändras.

PATCH Använd metoden för att lägga till, uppdatera eller ta bort enskilda attribut. Använd PUT-metoden för att skriva över hela tjänstens huvudnamn i en enda åtgärd.

Begärandeparametrar följer standardprotokollet SCIM 2.0 och är beroende av attributets schemas värde.

Lägga till rättigheter

Exempel

curl --netrc -X PATCH \
https://<databricks-instance>/api/2.0/preview/scim/v2/ServicePrincipals/<service-principal-id> \
--header 'Content-type: application/scim+json' \
--data @change-service-principal.json \
| jq .

change-service-principal.json:

{
  "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
  "Operations": [
    {
      "op": "add",
      "path": "entitlements",
      "value": [
        {
          "value": "allow-cluster-create"
        }
      ]
    }
  ]
}

Ersätt:

I det här exemplet används en .netrc-fil och jq.

Ta bort rättigheter

Exempel

curl --netrc -X PATCH \
https://<databricks-instance>/api/2.0/preview/scim/v2/ServicePrincipals/<service-principal-id> \
--header 'Content-type: application/scim+json' \
--data @change-service-principal.json \
| jq .

change-service-principal.json:

{
  "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
  "Operations": [
    {
      "op": "remove",
      "path": "entitlements",
      "value": [
        {
          "value": "allow-cluster-create"
        }
      ]
    }
  ]
}

Ersätt:

I det här exemplet används en .netrc-fil och jq.

Lägg till i en grupp

Exempel

curl --netrc -X PATCH \
https://<databricks-instance>/api/2.0/preview/scim/v2/ServicePrincipals/<service-principal-id> \
--header 'Content-type: application/scim+json' \
--data @change-service-principal.json \
| jq .

change-service-principal.json:

{
  "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
  "Operations": [
    {
      "op": "add",
      "path": "groups",
      "value": [
        {
          "value": "<group-id>"
        }
      ]
    }
  ]
}

Ersätt:

  • <databricks-instance> med namnet på Azure Databricks-arbetsytans instans, till exempel adb-1234567890123456.7.azuredatabricks.net.
  • <service-principal-id> med ID:t för tjänstens huvudnamn, till exempel 2345678901234567. Om du vill hämta tjänstens huvudnamns-ID anropar du Hämta tjänstens huvudnamn.
  • <group-id> med ID:t för gruppen på Azure Databricks-arbetsytan, till exempel 2345678901234567. Om du vill hämta grupp-ID:t anropar du Hämta grupper.

I det här exemplet används en .netrc-fil och jq.

Ta bort från en grupp

Exempel

curl --netrc -X PATCH \
https://<databricks-instance>/api/2.0/preview/scim/v2/Groups/<group-id> \
--header 'Content-type: application/scim+json' \
--data @remove-from-group.json \
| jq .

remove-from-group.json:

{
  "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
  "Operations": [
    {
      "op": "remove",
      "path": "members[value eq \"<service-principal-id>\"]"
    }
  ]
}

Ersätt:

  • <databricks-instance> med namnet på Azure Databricks-arbetsytans instans, till exempel adb-1234567890123456.7.azuredatabricks.net.
  • <group-id> med ID:t för gruppen på Azure Databricks-arbetsytan, till exempel 2345678901234567. Om du vill hämta grupp-ID:t anropar du Hämta grupper.
  • <service-principal-id> med ID:t för tjänstens huvudnamn, till exempel 2345678901234567. Om du vill hämta tjänstens huvudnamns-ID anropar du Hämta tjänstens huvudnamn.

I det här exemplet används en .netrc-fil och jq.

Uppdatera tjänstens huvudnamn efter ID (PUT)

Slutpunkt HTTP-metod
2.0/preview/scim/v2/ServicePrincipals/{id} PUT

Skriv över hela resursen för tjänstens huvudnamn, med undantag för displayName, applicationIdoch id, som inte kan ändras.

Använd METODEN PATCH för att lägga till, uppdatera eller ta bort enskilda attribut.

Viktigt

Du måste inkludera schemas attributet i begäran med det exakta värdet urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal.

Exempel

Lägga till en rättighet

curl --netrc -X PUT \
https://<databricks-instance>/api/2.0/preview/scim/v2/ServicePrincipals/<service-principal-id> \
--header 'Content-type: application/scim+json' \
--data @update-service-principal.json \
| jq .

update-service-principal.json:

{
  "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal" ],
  "applicationId": "<applicationId-id>",
  "displayName": "<display-name>",
  "groups": [
    {
      "value": "<group-id>"
    }
  ],
  "entitlements": [
    {
      "value":"allow-cluster-create"
    }
  ]
}

Ersätt:

  • <databricks-instance> med namnet på Azure Databricks-arbetsytans instans, till exempel adb-1234567890123456.7.azuredatabricks.net.
  • <service-principal-id> med ID:t för tjänstens huvudnamn, till exempel 2345678901234567. Om du vill hämta tjänstens huvudnamns-ID anropar du Hämta tjänstens huvudnamn.
  • <application-id>applicationId med värdet för tjänstens huvudnamn, till exempel 12345a67-8b9c-0d1e-23fa-4567b89cde01.
  • <display-name> med visningsnamnet för tjänstens huvudnamn, till exempel someone@example.com.
  • <group-id> med ID:t för gruppen på Azure Databricks-arbetsytan, till exempel 2345678901234567. Om du vill hämta grupp-ID:t anropar du Hämta grupper.

I det här exemplet används en .netrc-fil och jq.

Ta bort alla rättigheter och grupper

Att ta bort alla rättigheter och grupper är ett reversibelt alternativ för att inaktivera tjänstens huvudnamn.

PUT Använd metoden för att undvika behovet av att kontrollera befintliga rättigheter och gruppmedlemskap först.

curl --netrc -X PUT \
https://<databricks-instance>/api/2.0/preview/scim/v2/ServicePrincipals/<service-principal-id> \
--header 'Content-type: application/scim+json' \
--data @update-service-principal.json \
| jq .

update-service-principal.json:

{
  "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal" ],
  "applicationId": "<application-id>",
  "displayName": "<display-name>",
  "groups": [],
  "entitlements": []
}

Ersätt:

  • <databricks-instance> med namnet på Azure Databricks-arbetsytans instans, till exempel adb-1234567890123456.7.azuredatabricks.net.
  • <service-principal-id> med ID:t för tjänstens huvudnamn, till exempel 2345678901234567. Om du vill hämta tjänstens huvudnamns-ID anropar du Hämta tjänstens huvudnamn.
  • <application-id>applicationId med värdet för tjänstens huvudnamn, till exempel 12345a67-8b9c-0d1e-23fa-4567b89cde01.
  • <display-name> med visningsnamnet för tjänstens huvudnamn, till exempel someone@example.com.

I det här exemplet används en .netrc-fil och jq.

Inaktivera tjänstens huvudnamn efter ID

Slutpunkt HTTP-metod
2.0/preview/scim/v2/ServicePrincipals/{id} DELETE

Inaktivera en resurs för tjänstens huvudnamn. Den här åtgärden är inte reversibel.

Exempel

curl --netrc -X DELETE \
https://<databricks-instance>/api/2.0/preview/scim/v2/ServicePrincipals/<service-principal-id>

Ersätt:

I det här exemplet används en .netrc-fil .

Som ett reversibelt alternativ kan du ta bort alla dess rättigheter och grupper i stället för att ta bort tjänstens huvudnamn.

Ett huvudnamn för tjänsten som inte äger eller tillhör en Azure Databricks-arbetsyta rensas automatiskt efter 30 dagar.