منح حق وصول الهوية المدارة لتطبيق Service Fabric إلى موارد Azure

قبل أن يتمكن التطبيق من استخدام الهوية المُدارة الخاصة به للوصول إلى الموارد الأخرى، يجب منح الأذونات لتلك الهوية على مورد Azure المحمي الذي يتم الوصول إليه. عادةً ما يكون منح الأذونات إجراءً إدارياً على 'وحدة التحكم' لخدمة Azure التي تمتلك المورد المحمي الموجه عبر Azure Resource Manager، والذي سيفرض أي فحص وصول قابل للتطبيق على أساس الأدوار.

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

منح حق الوصول إلى تخزين Azure

يمكنك استخدام الهوية المُدارة لتطبيق Service Fabric (المعينة من قبل المستخدم في هذه الحالة) لاسترداد البيانات من كائن تخزين Azure الثنائي كبير الحجم. منح الهوية الأذونات المطلوبة لحساب التخزين عن طريق تعيين دور قارئ بيانات كائن التخزين الثنائي كبير الحجم إلى الهوية المدارة للتطبيق في نطاق مجموعة الموارد.

للحصول على خطوات تفصيلية، راجع ⁧⁩تعيين أدوار Azure باستخدام مدخل Microsoft Azure⁧⁩.

منح حق الوصول إلى Azure Key Vault

وبالمثل مع الوصول إلى موقع التخزين، يمكنك الاستفادة من الهوية المُدارة لتطبيق Service Fabric للوصول إلى مخزن مفاتيح Azure. تشبه خطوات منح حق الوصول في مدخل Azure تلك المذكورة أعلاه، ولن تتكرر هنا. الرجوع إلى الصورة أدناه لمعرفة الاختلافات.

Key Vault access policy

يوضح المثال التالي منح حق الوصول إلى مخزن عبر توزيع القالب؛ أضف القصاصة البرمجية (القصاصات البرمجية) أدناه كإدخال آخر ضمن عنصر resources في القالب. توضح العينة منح الوصول لكل من أنواع الهوية المعينة من المستخدم ومن النظام، على التوالي - اختر النوع المناسب.

    # under 'variables':
  "variables": {
        "userAssignedIdentityResourceId" : "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]",
    }
    # under 'resources':
    {
        "type": "Microsoft.KeyVault/vaults/accessPolicies",
        "name": "[concat(parameters('keyVaultName'), '/add')]",
        "apiVersion": "2018-02-14",
        "properties": {
            "accessPolicies": [
                {
                    "tenantId": "[reference(variables('userAssignedIdentityResourceId'), '2018-11-30').tenantId]",
                    "objectId": "[reference(variables('userAssignedIdentityResourceId'), '2018-11-30').principalId]",
                    "dependsOn": [
                        "[variables('userAssignedIdentityResourceId')]"
                    ],
                    "permissions": {
                        "keys":         ["get", "list"],
                        "secrets":      ["get", "list"],
                        "certificates": ["get", "list"]
                    }
                }
            ]
        }
    },

وبالنسبة للهويات المُدارة المعينة من النظام:

    # under 'variables':
  "variables": {
        "sfAppSystemAssignedIdentityResourceId": "[concat(resourceId('Microsoft.ServiceFabric/clusters/applications/', parameters('clusterName'), parameters('applicationName')), '/providers/Microsoft.ManagedIdentity/Identities/default')]"
    }
    # under 'resources':
    {
        "type": "Microsoft.KeyVault/vaults/accessPolicies",
        "name": "[concat(parameters('keyVaultName'), '/add')]",
        "apiVersion": "2018-02-14",
        "properties": {
            "accessPolicies": [
            {
                    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
                    "tenantId": "[reference(variables('sfAppSystemAssignedIdentityResourceId'), '2018-11-30').tenantId]",
                    "objectId": "[reference(variables('sfAppSystemAssignedIdentityResourceId'), '2018-11-30').principalId]",
                    "dependsOn": [
                        "[variables('sfAppSystemAssignedIdentityResourceId')]"
                    ],
                    "permissions": {
                        "secrets": [
                            "get",
                            "list"
                        ],
                        "certificates": 
                        [
                            "get", 
                            "list"
                        ]
                    }
            },
        ]
        }
    }

لمزيد من التفاصيل، يرجى الاطلاع على المخازن - تحديث نهج الوصول.

الخطوات التالية