نشر وتكوين هوية حمل عمل Microsoft Entra على عنقود خدمة Azure Kubernetes ‏(AKS)

في هذا المقال، ستتعلم كيفية نشر وتكوين عنقود خدمة Azure Kubernetes ‏(AKS) باستخدام هوية حمل عمل Microsoft Entra. تشمل الخطوات الواردة في هذا المقال:

  • أنشئ مجموعة جديدة أو حدثت مجموعة AKS موجودة باستخدام Azure CLI أو Terraform مع إصدار OpenID Connect (OIDC) ومعالج هوية حمل عمل Microsoft Entra مفعل.
  • أنشئ هوية عبء العمل وحساب خدمة Kubernetes.
  • تكوين الهوية المدارة لاتحاد الرمز المميز.
  • انشر حمل العمل وتحقق من المصادقة باستخدام هوية حمل العمل.
  • اختياريا، امنح كبسولة في العنقود وصولا إلى الأسرار في خزنة مفاتيح Azure.

المتطلبات الأساسية

  • إذا لم يكن لديك حساب Azure، أنشئ حسابا مجاني قبل أن تبدأ.
  • تتطلب هذه المقالة الإصدار 2.47.0 أو أحدثه من Azure CLI. إذا كنت تستخدم Azure Cloud Shell، فإن الإصدار الأخير مثبت بالفعل. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى تثبيت أو ترقية، راجع تثبيت Azure CLI.
  • تأكد من أن الهوية التي تستخدمها لإنشاء نظام المجموعة الخاص بك لديها الحد الأدنى المناسب من الأذونات. لمزيد من المعلومات، راجع خيارات الوصول والهوية ل خدمة Azure Kubernetes ‏(AKS).
  • إذا كان لديك عدة اشتراكات Azure، اختر معرف الاشتراك المناسب الذي يجب فيه فوترة الموارد باستخدام أمر az account set.
  • تم تثبيت Terraform محليا. للحصول على تعليمات التثبيت، راجع تثبيت Terraform.

إشعار

يمكنك استخدام Service Connector لمساعدتك في تكوين بعض الخطوات تلقائيا. لمزيد من المعلومات، راجع Instruction: الاتصال بحساب التخزين Azure في خدمة Azure Kubernetes ‏(AKS) باستخدام Service Connector باستخدام هوية حمل عمل Microsoft Entra.

إنشاء ملف تكوين Terraform

ملفات تكوين تيرافورم تحدد البنية التحتية التي ينشئها ويديرها تيرافورم.

  1. أنشئ ملفا باسم main.tf وأضف الكود التالي لتعريف نسخة Terraform وتحديد مزود Azure:

    terraform {
     required_version = ">= 1.5.0"
     required_providers {
       azurerm = {
         source  = "hashicorp/azurerm"
         version = "~> 4.0"
       }
       kubernetes = {
         source  = "hashicorp/kubernetes"
         version = "~> 2.30"
       }
       random = {
         source  = "hashicorp/random"
         version = "~> 3.6"
       }
     }
    }
    provider "azurerm" {
     features {}
     subscription_id = var.subscription_id
    }
    data "azurerm_client_config" "current" {}
    
  2. أضف الكود التالي إلى main.tf لتعريف المتغيرات القابلة لإعادة الاستخدام وتوليد أسماء فريدة لجميع الموارد:

    resource "random_string" "suffix" {
     length  = 6
     upper   = false
     special = false
     numeric = true
    }
    locals {
     suffix = random_string.suffix.result
     resource_group_name       = "rg-aks-wi-${local.suffix}"
     cluster_name              = "akswi${local.suffix}"
     managed_identity_name     = "uami-wi-${local.suffix}"
     federated_credential_name = "fic-wi-${local.suffix}"
     key_vault_name            = lower(substr("kvwi${local.suffix}", 0, 24))
     secret_name               = "secret-${local.suffix}"
     service_account_name      = "workload-sa-${local.suffix}"
     service_account_namespace = "default"
     workload_identity_subject = "system:serviceaccount:${local.service_account_namespace}:${local.service_account_name}"
    }
    

إنشاء مجموعة موارد

إنشاء مجموعة موارد باستخدام az group create الأمر .

export RANDOM_ID="$(openssl rand -hex 3)"
export RESOURCE_GROUP="myResourceGroup$RANDOM_ID"
export LOCATION="<your-preferred-region>"
az group create --name "${RESOURCE_GROUP}" --location "${LOCATION}"

أضف الكود التالي إلى main.tf لإنشاء مجموعة موارد Azure. قم بتحديث قيمة location لتتناسب مع منطقة Azure المفضلة لديك.

resource "azurerm_resource_group" "this" {
 name     = local.resource_group_name
 location = "eastus"
}

تمكين مصدر OIDC ومعرف هوية حمل عمل Microsoft Entra على عنقود AKS

يمكنك تفعيل إصدار OIDC ومعرف هوية حمل عمل Microsoft Entra على عنقود AKS جديد أو موجود.

إنشاء عنقود AKS باستخدام أمر az aks create مع معامل --enable-oidc-issuer لتمكين مصدر OIDC ومعلمة --enable-workload-identity لتفعيل هوية حمل عمل Microsoft Entra. ينشئ المثال التالي مجموعة مع عقدة واحدة:

export CLUSTER_NAME="myAKSCluster$RANDOM_ID"
az aks create \
    --resource-group "${RESOURCE_GROUP}" \
    --name "${CLUSTER_NAME}" \
    --enable-oidc-issuer \
    --enable-workload-identity \
    --generate-ssh-keys

بعد بضع دقائق، الأمر إكمال وإرجاع معلومات منسقة JSON حول الكتلة.

أضف الكود التالي إلى main.tf لإنشاء مجموعة AKS مع مفعل مصدر OIDC هوية حمل عمل Microsoft Entra:

resource "azurerm_kubernetes_cluster" "this" {
 name                              = local.cluster_name
 location                          = azurerm_resource_group.this.location
 resource_group_name               = azurerm_resource_group.this.name
 dns_prefix                        = local.cluster_name
 oidc_issuer_enabled               = true
 workload_identity_enabled         = true
 role_based_access_control_enabled = true
 default_node_pool {
   name       = "system"
   node_count = 1
   vm_size    = "Standard_B4ms"
 }
 identity {
   type = "SystemAssigned"
 }
}

استرداد عنوان URL لمصدر OIDC

احصل على رابط مصدر OIDC باستخدام az aks show الأمر واحفظه في متغير بيئي.

export AKS_OIDC_ISSUER="$(az aks show --name "${CLUSTER_NAME}" \
    --resource-group "${RESOURCE_GROUP}" \
    --query "oidcIssuerProfile.issuerUrl" \
    --output tsv)"

يجب أن يحتوي متغير البيئة على عنوان URL المصدر، على غرار المثال التالي:

https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/11111111-1111-1111-1111-111111111111/

بشكل افتراضي، يتم تعيين المصدر لاستخدام عنوان URL https://{region}.oic.prod-aks.azure.com/{tenant_id}/{uuid}الأساسي ، حيث تطابق قيمة الموقع {region} الذي يتم نشر نظام مجموعة AKS إليه. تمثل القيمة {uuid} مفتاح OIDC، وهو واجهة مستخدم عشوائي وغير قابلة للتغيير لكل عنقود.

أضف الرمز التالي إلى main.tf لاسترجاع عنوان مصدر OIDC:

output "oidc_issuer_url" {
 value = azurerm_kubernetes_cluster.this.oidc_issuer_url
}

إنشاء هوية مدارة

  1. احصل على معرف اشتراكك واحفظه في متغير بيئي باستخدام az account show الأمر.

    export SUBSCRIPTION="$(az account show --query id --output tsv)"
    
  2. إنشاء هوية مدارة يعينها المستخدم باستخدام az identity create الأمر .

    export USER_ASSIGNED_IDENTITY_NAME="myIdentity$RANDOM_ID"
    az identity create \
        --name "${USER_ASSIGNED_IDENTITY_NAME}" \
        --resource-group "${RESOURCE_GROUP}" \
        --location "${LOCATION}" \
        --subscription "${SUBSCRIPTION}"
    

    يوضح مثال الإخراج التالي الإنشاء الناجح لهوية مدارة:

    {
      "clientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroupxxxxxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentityxxxxxx",
      "location": "eastus",
      "name": "myIdentityxxxxxx",
      "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "resourceGroup": "myResourceGroupxxxxxx",
      "systemData": null,
      "tags": {},
      "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    
  3. احصل على معرف العميل للهوية المدارة واحفظه في متغير بيئة باستخدام az identity show الأمر.

    export USER_ASSIGNED_CLIENT_ID="$(az identity show \
        --resource-group "${RESOURCE_GROUP}" \
        --name "${USER_ASSIGNED_IDENTITY_NAME}" \
        --query 'clientId' \
        --output tsv)"
    

أضف الكود التالي إلى main.tf لإنشاء هوية مدارة:

resource "azurerm_user_assigned_identity" "this" {
 name                = local.managed_identity_name
 location            = azurerm_resource_group.this.location
 resource_group_name = azurerm_resource_group.this.name
}

إنشاء حساب خدمة Kubernetes

  1. اتصل بمجموعة AKS الخاصة بك باستخدام az aks get-credentials الأمر .

    az aks get-credentials --name "${CLUSTER_NAME}" --resource-group "${RESOURCE_GROUP}"
    
  2. أنشئ حساب خدمة Kubernetes وقم بإضافة معرف العميل للهوية المدارة عليه عن طريق تطبيق البيان التالي باستخدام kubectl apply الأمر.

    export SERVICE_ACCOUNT_NAME="workload-identity-sa$RANDOM_ID"
    export SERVICE_ACCOUNT_NAMESPACE="default"
    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      annotations:
        azure.workload.identity/client-id: "${USER_ASSIGNED_CLIENT_ID}"
      name: "${SERVICE_ACCOUNT_NAME}"
      namespace: "${SERVICE_ACCOUNT_NAMESPACE}"
    EOF
    

    يظهر الإخراج التالي الإنشاء الناجح لهوية حمل العمل:

    serviceaccount/workload-identity-sa created
    
  1. أضف الكود التالي لتكوين main.tf وصول Kubernetes للسماح بإنشاء موارد Kubernetes:

    data "azurerm_kubernetes_cluster" "this" {
     name                = azurerm_kubernetes_cluster.this.name
     resource_group_name = azurerm_resource_group.this.name
    }
    provider "kubernetes" {
     host                   = data.azurerm_kubernetes_cluster.this.kube_config[0].host
     client_certificate     = base64decode(data.azurerm_kubernetes_cluster.this.kube_config[0].client_certificate)
     client_key             = base64decode(data.azurerm_kubernetes_cluster.this.kube_config[0].client_key)
     cluster_ca_certificate = base64decode(data.azurerm_kubernetes_cluster.this.kube_config[0].cluster_ca_certificate)
    }
    
  2. أضف الكود التالي لإنشاء main.tf حساب خدمة Kubernetes وأضف له التعليق عليه بمعرف العميل للهوية المدارة:

    resource "kubernetes_service_account" "this" {
     metadata {
       name      = local.service_account_name
       namespace = local.service_account_namespace
       annotations = {
         "azure.workload.identity/client-id" = azurerm_user_assigned_identity.this.client_id
       }
     }
    }
    

إنشاء بيانات اعتماد الهوية الموحدة

إنشاء بيانات اعتماد هوية اتحادية بين الهوية المدارة، ومصدري حساب الخدمة، والموضوع باستخدام الأمر az identity federated-credential create .

export FEDERATED_IDENTITY_CREDENTIAL_NAME="myFedIdentity$RANDOM_ID"
az identity federated-credential create \
    --name ${FEDERATED_IDENTITY_CREDENTIAL_NAME} \
    --identity-name "${USER_ASSIGNED_IDENTITY_NAME}" \
    --resource-group "${RESOURCE_GROUP}" \
    --issuer "${AKS_OIDC_ISSUER}" \
    --subject system:serviceaccount:"${SERVICE_ACCOUNT_NAMESPACE}":"${SERVICE_ACCOUNT_NAME}" \
    --audience api://AzureADTokenExchange

إشعار

يستغرق نشر بيانات اعتماد الهوية الموحدة بضع ثوان بعد إضافتها. إذا تم إجراء طلب رمز مميز مباشرة بعد إضافة بيانات اعتماد الهوية الموحدة، فقد يفشل الطلب حتى يتم تحديث ذاكرة التخزين المؤقت. لتجنب هذه المشكلة، يمكنك إضافة تأخير طفيف بعد إضافة بيانات اعتماد الهوية الموحدة.

أضف الكود التالي لإنشاء main.tf بيانات هوية اتحادية بين الهوية المدارة، ومصدري حساب الخدمة، والموضوع:

resource "azurerm_federated_identity_credential" "this" {
 name                = local.federated_credential_name
 resource_group_name = azurerm_resource_group.this.name
 parent_id           = azurerm_user_assigned_identity.this.id
 issuer              = azurerm_kubernetes_cluster.this.oidc_issuer_url
 subject             = local.workload_identity_subject
 audience            = ["api://AzureADTokenExchange"]
}

لمزيد من المعلومات حول بيانات الهوية الفيدرالية في Microsoft Entra، راجع نظرة عامة على بيانات الهوية الفيدرالية في Microsoft Entra ID.

إنشاء خزنة مفاتيح باستخدام تفويض Azure RBAC

يوضح المثال التالي كيفية استخدام نموذج الإذن Azure التحكم في الوصول القائم على الأدوار (Azure RBAC) لمنح الوحدة الوصول إلى خزنة المفاتيح. لمزيد من المعلومات حول نموذج Azure صلاحيات RBAC ل Azure Key Vault، راجع منح الإذن للطلبات للوصول إلى Azure key vault باستخدام Azure RBAC.

  1. أنشئ خزنة مفاتيح مع حماية التطهير وتفويض Azure تفويض RBAC باستخدام أمر az keyvault create. يمكنك أيضا استخدام خزنة مفاتيح موجودة إذا كانت مهيأة لكل من الحماية من التطهير وتفويض Azure RBAC.

    export KEYVAULT_NAME="keyvault-workload-id$RANDOM_ID" # Ensure the key vault name is between 3-24 characters
    az keyvault create \
        --name "${KEYVAULT_NAME}" \
        --resource-group "${RESOURCE_GROUP}" \
        --location "${LOCATION}" \
        --enable-purge-protection \
        --enable-rbac-authorization
    
  2. احصل على معرف مورد خزنة المفاتيح واحفظه في متغير بيئة باستخدام az keyvault show الأمر.

    export KEYVAULT_RESOURCE_ID=$(az keyvault show --resource-group "${RESOURCE_GROUP}" \
        --name "${KEYVAULT_NAME}" \
        --query id \
        --output tsv)
    

أضف الكود التالي إلى main.tf لإنشاء خزنة مفاتيح بموافقة Azure RBAC:

resource "azurerm_key_vault" "this" {
 name                          = local.key_vault_name
 location                      = azurerm_resource_group.this.location
 resource_group_name           = azurerm_resource_group.this.name
 tenant_id                     = data.azurerm_client_config.current.tenant_id
 sku_name                      = "standard"
 rbac_authorization_enabled    = true
}

تعيين صلاحيات RBAC لإدارة خزنة المفاتيح

  1. احصل على معرف كائن المتصل واحفظه في متغير بيئة باستخدام az ad signed-in-user show الأمر.

    export CALLER_OBJECT_ID=$(az ad signed-in-user show --query id -o tsv)
    
  2. خصص لنفسك دور Azure RBAC Key Vault ضابط الأسرار حتى تتمكن من إنشاء سر في key vault الجديد باستخدام أمر az role assignment create.

    az role assignment create --assignee "${CALLER_OBJECT_ID}" \
        --role "Key Vault Secrets Officer" \
        --scope "${KEYVAULT_RESOURCE_ID}"
    

أضف الكود التالي إلى main.tf لتعيين دور Azure RBAC Key Vault مسؤول الأسرار حتى تتمكن من إنشاء سر في key vault الجديد وتعيين دور Key Vault Secrets User إلى الهوية المدارة التي يعينها المستخدم:

resource "azurerm_role_assignment" "user" {
 scope                = azurerm_key_vault.this.id
 role_definition_name = "Key Vault Secrets Officer"
 principal_id         = data.azurerm_client_config.current.object_id
}
resource "azurerm_role_assignment" "identity" {
 scope                = azurerm_key_vault.this.id
 role_definition_name = "Key Vault Secrets User"
 principal_id         = azurerm_user_assigned_identity.this.principal_id
}

إنشاء وتكوين الوصول السري

  1. إنشاء سر في مخزن المفاتيح باستخدام az keyvault secret set الأمر .

    export KEYVAULT_SECRET_NAME="my-secret$RANDOM_ID"
    az keyvault secret set \
        --vault-name "${KEYVAULT_NAME}" \
        --name "${KEYVAULT_SECRET_NAME}" \
        --value "Hello\!"
    
  2. احصل على المعرف الرئيسي للهوية المدارة المعينة من قبل المستخدم واحفظه في متغير بيئة باستخدام az identity show الأمر.

    export IDENTITY_PRINCIPAL_ID=$(az identity show \
        --name "${USER_ASSIGNED_IDENTITY_NAME}" \
        --resource-group "${RESOURCE_GROUP}" \
        --query principalId \
        --output tsv)
    
  3. تعيين دور Key Vault Secrets User للهوية المدارة المعينة من قبل المستخدم باستخدام أمر az role assignment create. تمنح هذه الخطوة الهوية المدارة إذنا لقراءة الأسرار من خزنة المفاتيح.

    az role assignment create \
        --assignee-object-id "${IDENTITY_PRINCIPAL_ID}" \
        --role "Key Vault Secrets User" \
        --scope "${KEYVAULT_RESOURCE_ID}" \
        --assignee-principal-type ServicePrincipal
    
  4. أنشئ متغير بيئة لعنوان URL خزنة المفاتيح باستخدام az keyvault show الأمر.

    export KEYVAULT_URL="$(az keyvault show \
        --resource-group "${RESOURCE_GROUP}" \
        --name ${KEYVAULT_NAME} \
        --query properties.vaultUri \
        --output tsv)"
    

أضف الكود التالي لإنشاء main.tf سر في خزنة المفاتيح:

resource "azurerm_key_vault_secret" "this" {
 name         = local.secret_name
 value        = "Hello from Key Vault"
 key_vault_id = azurerm_key_vault.this.id
}

نشر وحدة التحقق واختبار الوصول

  1. نشر وحدة للتحقق من أن هوية عبء العمل يمكنها الوصول إلى السر في خزنة المفتاح. المثال التالي يستخدم صورة ghcr.io/azure/azure-workload-identity/msal-go، والتي تحتوي على تطبيق نموذجي يستخرج سرا من Azure Key Vault باستخدام هوية حمل عمل Microsoft Entra:

    kubectl apply -f - <<EOF
    apiVersion: v1
    kind: Pod
    metadata:
        name: sample-workload-identity-key-vault
        namespace: ${SERVICE_ACCOUNT_NAMESPACE}
        labels:
            azure.workload.identity/use: "true"
    spec:
        serviceAccountName: ${SERVICE_ACCOUNT_NAME}
        containers:
          - image: ghcr.io/azure/azure-workload-identity/msal-go
            name: oidc
            env:
              - name: KEYVAULT_URL
                value: ${KEYVAULT_URL}
              - name: SECRET_NAME
                value: ${KEYVAULT_SECRET_NAME}
        nodeSelector:
            kubernetes.io/os: linux
    EOF
    
  2. انتظر حتى تصل الكبسولة إلى الحالة التي Ready تستخدم الأمر kubectl wait .

    kubectl wait --namespace ${SERVICE_ACCOUNT_NAMESPACE} --for=condition=Ready pod/sample-workload-identity-key-vault --timeout=120s
    
  3. تحقق من أن متغير SECRET_NAME البيئة مضبوط في الوحدة باستخدام kubectl describe الأمر.

    kubectl describe pod sample-workload-identity-key-vault | grep "SECRET_NAME:"
    

    إذا نجحت ، يجب أن يكون الإخراج مشابها للمثال التالي:

    SECRET_NAME: ${KEYVAULT_SECRET_NAME}
    
  4. تحقق من أن الكبسولات يمكنها الحصول على رمز والوصول إلى المورد باستخدام الأمر kubectl logs .

    kubectl logs sample-workload-identity-key-vault
    

    إذا نجحت ، يجب أن يكون الإخراج مشابها للمثال التالي:

    I0114 10:35:09.795900       1 main.go:63] "successfully got secret" secret="Hello\\!"
    

    هام

    قد تستغرق تعيينات أدوار Azure RBAC حتى 10 دقائق للنشر. إذا تعذر على الجراب الوصول إلى السر، فقد تحتاج إلى الانتظار حتى يتم نشر تعيين الدور. لمزيد من المعلومات، راجع Troubleshoot Azure RBAC.

تعطيل معرف هوية حمل عمل Microsoft Entra على مجموعة AKS

قم بتعطيل هوية حمل عمل Microsoft Entra في عنقود AKS حيث تم تفعيله وتكوينه، وقم بتحديث تجمع AKS باستخدام أمر az aks update مع معامل --disable-workload-identity.

az aks update \
    --resource-group "${RESOURCE_GROUP}" \
    --name "${CLUSTER_NAME}" \
    --disable-workload-identity

نشر وحدة التحقق

أضف الكود التالي لنشر main.tf وحدة تحقق تستخدم هوية عبء العمل للوصول إلى السر في خزنة المفاتيح:

resource "kubernetes_pod" "test" {
 metadata {
   name      = "workload-identity-test"
   namespace = local.service_account_namespace
   labels = {
     "azure.workload.identity/use" = "true"
   }
 }
 spec {
   service_account_name = kubernetes_service_account.this.metadata[0].name
   container {
     name  = "test"
     image = "ghcr.io/azure/azure-workload-identity/msal-go"
     env {
       name  = "KEYVAULT_URL"
       value = azurerm_key_vault.this.vault_uri
     }
     env {
       name  = "SECRET_NAME"
       value = azurerm_key_vault_secret.this.name
     }
   }
 }
}

تهيئة Terraform

قم بتهيئة Terraform في الدليل الذي يحتوي على ملفك main.tf باستخدام الأمر.terraform init يقوم هذا الأمر بتنزيل مزود Azure المطلوب لإدارة موارد Azure باستخدام Terraform.

terraform init

إنشاء خطة تنفيذ Terraform

إنشاء خطة تنفيذ Terraform باستخدام terraform plan الأمر . هذا الأمر يعرض لك الموارد التي سيخلقها Terraform أو يعدلها في اشتراكك في Azure.

terraform plan

تطبيق تكوين Terraform

بعد مراجعة وتأكيد خطة التنفيذ، طبق تكوين Terraform باستخدام terraform apply الأمر. يقوم هذا الأمر بإنشاء أو تعديل الموارد المعرفة في ملف main.tf الخاص بك في اشتراك Azure الخاص بك.

terraform apply

تحقق من التوزيع

  1. اتصل بمجموعة AKS الخاصة بك باستخدام az aks get-credentials الأمر .

    az aks get-credentials --name <cluster-name> --resource-group <resource-group>
    
  2. تحقق من حالة وحدة التحقق باستخدام kubectl get pods الأمر.

  3. بمجرد وصول Ready الكبسولة إلى حالة، تحقق من أنها تستطيع الوصول إلى سر خزنة المفاتيح من خلال التحقق من سجلات الكبسولة باستخدام kubectl logs الأمر.

    kubectl logs workload-identity-test
    

في هذا المقال، قمت بنشر عنقود Kubernetes وقمت بتكوينها لاستخدام هوية حمل عمل Microsoft Entra استعدادا لأحمال العمل للتطبيقات للتحقق باستخدام تلك الاعتمادات. الآن أنت جاهز لنشر تطبيقك وتكوينه لاستخدام هوية عبء العمل مع أحدث إصدار من مكتبة عملاء Azure Identity. إذا لم تتمكن من إعادة كتابة التطبيق الخاص بك لاستخدام أحدث إصدار لمكتبة العميل، يمكنك إعداد جراب التطبيق الخاص بك للمصادقة باستخدام الهوية المدارة مع هوية حمل العمل كحل ترحيل قصير الأجل.

يساعد تكامل Service Connector في تبسيط تكوين الاتصال لأحمال عمل AKS وخدمات الدعم Azure. يتعامل مع المصادقة وتكوينات الشبكة بشكل آمن ويتبع أفضل الممارسات للاتصال بخدمات Azure. لمزيد من المعلومات، راجع Connect to Azure OpenAI في نماذج Foundry Models في AKS باستخدام Microsoft Entra Workload Identity ومقدمة Service Connector.