在 Azure Logic Apps 中保護工作流程的存取和資料
Azure Logic Apps 依靠 Azure 儲存體來儲存和自動加密待用資料。 這道加密可保護您的資料安全,並協助您符合組織安全性和合規性承諾。 根據預設,Azure 儲存體會使用 Microsoft 管理的金鑰來加密您的資料。 如需詳細資訊,請檢閱待用資料的 Azure 儲存體加密。
若要在 Azure Logic Apps 中進一步控制存取及保護敏感性資料,您可以提升這幾個方面的安全性:
- 存取邏輯應用程式作業
- 存取執行歷程記錄輸入和輸出
- 存取參數輸入
- 支援驗證的觸發程序和動作驗證類型
- 要求型觸發程序的輸入呼叫存取權
- 對其他服務和系統的輸出呼叫存取權
- 封鎖針對特定連接器建立連線
- 邏輯應用程式的隔離指引
- 適用於 Azure Logic Apps 的 Azure 安全性基準
如需 Azure 中安全性的詳細資訊,請檢閱下列主題:
存取邏輯應用程式作業
僅針對取用邏輯應用程式,您必須先有特定權限,才能建立或管理邏輯應用程式及其連線,這些權限是使用 Azure 角色型存取控制 (Azure RBAC) 透過角色所提供。 您也可以設定權限,僅允許特定使用者或群組可執行特定工作,例如管理、編輯和檢視邏輯應用程式。 若要控制其權限,您可以將內建或自訂角色指派給可存取 Azure 訂用帳戶的成員。 Azure Logic Apps 具有下列特定角色,取決於您有使用量或標準邏輯應用程式工作流程:
取用工作流程
角色 | 描述 |
---|---|
邏輯應用程式參與者 | 您可以管理邏輯應用程式工作流程,但無法變更其存取權。 |
邏輯應用程式操作員 | 您可以讀取、啟用及停用邏輯應用程式工作流程,但無法加以編輯或更新。 |
參與者 | 您具備管理所有資源的完整存取權,但無法在 Azure RBAC 中指派角色、在 Azure 藍圖中管理指派,或共用映像庫。 |
例如,假設您必須使用未建立的邏輯應用程式工作流程,並驗證該邏輯應用程式工作流程所使用的連線。 您的 Azure 訂用帳戶需要包含該邏輯應用程式資源的資源群組參與者權限。 如果您建立邏輯應用程式資源,便會自動獲得參與者存取權。
若要防止變更或刪除邏輯應用程式工作流程,您可以使用 Azure 資源鎖定。 這項功能可防止其他人變更或刪除生產資源。 如需連線安全性的詳細資訊,請參閱 Azure Logic Apps 中的連線組態和連線安全性與加密。
標準工作流程
注意
此功能處於預覽狀態,且受限於 Microsoft Azure 預覽版的補充使用規定。
角色 | 描述 |
---|---|
Logic Apps 標準讀取者 (預覽) | 您有標準邏輯應用程式和工作流程中所有資源的唯讀存取權,包括工作流程執行及其歷程記錄。 |
Logic Apps 標準操作員 (預覽) | 您具有為標準邏輯應用程式啟用、重新提交和停用工作流程,以及建立服務、系統和網路連線的存取權。 操作員角色可以在 Azure Logic Apps 平台上執行管理和支援工作,但沒有權限可編輯工作流程或設定。 |
Logic Apps 標準開發人員 (預覽) | 您具有為標準邏輯應用程式建立和編輯工作流程、連線和設定的存取權。 開發人員角色沒有在工作流程範圍外進行變更的權限,例如,設定虛擬網路整合等全應用程式變更。 不支援 App Service 方案。 |
Logic Apps 標準參與者 (預覽) | 您具有管理標準邏輯應用程式的所有層面的存取權,但無法變更存取權或擁有權。 |
存取執行歷程記錄資料
在邏輯應用程式執行期間,所有資料都在傳輸期間加密,使用的是傳輸層安全性 (TLS) 和待用。 當邏輯應用程式執行完成時,您可以檢視本次執行的歷程記錄,包括已執行的步驟,以及每個動作的狀態、持續時間、輸入和輸出。 這項豐富的詳細資料可讓您深入解析邏輯應用程式的執行情形,而且對於任何發生的問題,可讓您知道從何處開始進行疑難排解。
當您檢視邏輯應用程式的執行歷程記錄時,Azure Logic Apps 會驗證您的存取,然後針對每次執行的要求和回應,提供連結指向輸入和輸出。 不過,如果動作處理任何密碼、秘密、金鑰或其他敏感性資訊,建議您防止其他人檢視和存取該資料。 例如,如果邏輯應用程式從 Azure Key Vault 取得祕密來用於驗證 HTTP 動作,建議您隱藏該秘密。
若要控制存取邏輯應用程式執行歷程記錄中的輸入和輸出,您有下列選項:
-
此選項協助您根據來自特定 IP 位址範圍的要求,以保護對執行歷程記錄的存取。
-
在許多觸發程序和動作中,您可以保護邏輯應用程式執行歷程記錄中的輸入、輸出或兩者。
依 IP 位址範圍限制存取
您可以限制存取邏輯應用程式工作流程執行歷程記錄中的輸入和輸出,使得只有來自特定 IP 位址範圍的要求才能檢視該資料。
例如,若要阻止任何人存取輸入和輸出,請指定像 0.0.0.0-0.0.0.0
這樣的 IP 位址範圍。 只有具備管理員權限的人才能移除此限制,其提供「及時」存取邏輯應用程式工作流程中資料的機會。 有效的 IP 範圍使用這些格式:x.x.x.x/x 或 x.x.x.x-x.x.x.x
若要指定允許的 IP 範圍,請在 Azure 入口網站或 Azure Resource Manager 範本中針對您的取用或標準邏輯應用程式執行下列步驟:
取用工作流程
在 Azure 入口網站中,在設計工具中開啟您的取用邏輯應用程式工作流程。
在邏輯應用程式功能表的 [設定] 下,選取 [工作流程設定]。
在 [存取控制組態] 區段的 [允許的輸入 IP 位址] 下,從 [觸發程序存取選項] 清單中選取 [特定 IP 位址]。
在 [內容的 IP 範圍] 方塊中,指定可存取輸入和輸出內容的 IP 位址範圍。
標準工作流程
在 Azure 入口網站中,開啟您的標準邏輯應用程式資源。
在邏輯應用程式功能表的 [設定] 底下,選取 [網路]。
在 [輸入流量組態] 區段的 [公用網路存取] 旁,選取 [已啟用且無存取限制]。
在 [存取限制] 頁面的 [應用程式存取] 下,選取 [已從選取的虛擬網路和 IP 位址啟用]。
在 [網站存取和規則] 下,於 [主要網站] 索引標籤上,新增一或多個規則以允許或拒絕特定 IP 範圍的要求。 您也可以使用 HTTP 標頭來篩選設定和轉送設定。 有效的 IP 範圍使用這些格式:x.x.x.x/x 或 x.x.x.x-x.x.x.x
如需詳細資訊,請參閱在 Azure Logic Apps (標準) 中封鎖輸入 IP 位址。
使用混淆來保護執行歷程記錄中的資料
許多觸發程序和動作都有設定,可保護來自邏輯應用程式執行歷程記錄的輸入、輸出或兩者。 所有受控連接器和自訂連接器都支援這些選項。 不過,下列內建作業不支援下列選項:
安全輸入 - 不支援 | 安全輸出 - 不支援 |
---|---|
附加到陣列變數 附加至字串變數 遞減變數 For each If 遞增變數 將變數初始化 週期性 影響範圍 設定變數 Switch Terminate 直到 |
附加到陣列變數 附加至字串變數 撰寫 遞減變數 For each If 遞增變數 將變數初始化 剖析 JSON 週期性 回應 影響範圍 設定變數 Switch Terminate Until 等候 |
保護輸入和輸出安全性的考量
使用這些設定來協助您保護此資料之前,請檢閱這些考量事項:
當您遮蔽觸發程序或動作的輸入或輸出時,Azure Logic Apps 不會將受保護的資料傳送至 Azure Log Analytics。 此外,您無法將追蹤的屬性新增至該觸發程序或動作來監視。
用於處理工作流程歷程記錄的 Azure Logic Apps API 不會傳回受保護的輸出。
若要保護動作的輸出,但該動作已遮蔽輸入或明確遮蔽輸出,請在該動作中手動開啟 [保護輸出]。
在您預期執行歷程記錄會遮蔽該資料的下游動作中,請務必開啟 [保護輸入] 或 [保護輸出]。
保護輸出設定
當您在觸發程序或動作中手動開啟 [保護輸出] 時,Azure Logic Apps 會在執行歷程記錄中隱藏這些輸出。 如果下游動作明確使用這些受保護的輸出作為輸入,Azure Logic Apps 會在執行歷程記錄中隱藏此動作的輸入,但「不會啟用」動作的 [保護輸入] 設定。
「撰寫」、「剖析 JSON」和「回應」動作只有 [保護輸入] 設定。 此設定開啟時也會隱藏這些動作的輸出。 如果這些動作明確使用上游保護的輸出作為輸入,Azure Logic Apps 會隱藏這些動作的輸入和輸出,但「不會啟用」這些動作的 [保護輸入] 設定。 如果下游動作明確使用「撰寫」、「剖析 JSON」或「回應」動作的隱藏輸出作為輸入,Azure Logic Apps「不會隱藏此下游動作的輸入或輸出」。
保護輸入設定
當您在觸發程序或動作中手動開啟 [保護輸入] 時,Azure Logic Apps 會在執行歷程記錄中隱藏這些輸入。 如果下游動作明確使用該觸發程序或動作的可見輸出作為輸入,Azure Logic Apps 會在執行歷程記錄中隱藏此下游動作的輸入,但在此動作中不會啟用 [保護輸入],也不會隱藏此動作的輸出。
如果「撰寫」、「剖析 JSON」和「回應」動作明確使用的可見輸出,來自於具有受保護輸入的觸發程序或動作,Azure Logic Apps 會隱藏這些動作的輸入和輸出,但「不會啟用」這些動作的 [保護輸入] 設定。 如果下游動作明確使用「撰寫」、「剖析 JSON」或「回應」動作的隱藏輸出作為輸入,Azure Logic Apps「不會隱藏此下游動作的輸入或輸出」。
在設計工具中保護輸入和輸出
在 Azure 入口網站中,在設計工具中開啟您的邏輯應用程式工作流程。
在設計工具上,選取您要保護敏感性資料的觸發程序或動作。
在開啟的資訊窗格上,選取 [設定],並展開 [安全性]。
開啟 [保護輸入]、[保護輸出] 或兩者。
觸發程序或動作的標題列中現在顯示鎖定圖示。 如果權杖代表先前動作的受保護輸出,則也會顯示鎖定圖示。 例如,在後續動作中,當您從動態內容清單選取安全輸出的權杖之後,該權杖會顯示鎖定圖示。
當工作流程執行之後,您可以檢視該執行的歷程記錄。
在程式碼檢視中保護輸入和輸出
在基礎觸發程序或動作定義中,使用下列其中一個或兩個值來新增或更新 runtimeConfiguration.secureData.properties
陣列:
"inputs"
:保護執行歷程記錄中的輸入。"outputs"
:保護執行歷程記錄中的輸出。
"<trigger-or-action-name>": {
"type": "<trigger-or-action-type>",
"inputs": {
<trigger-or-action-inputs>
},
"runtimeConfiguration": {
"secureData": {
"properties": [
"inputs",
"outputs"
]
}
},
<other-attributes>
}
存取參數輸入
如果您在不同的環境之間部署,請考慮將工作流程定義中的值參數化,讓值隨著這些環境而改變。 如此一來,您可以使用 Azure Resource Manager 範本部署邏輯應用程式以避免硬式編碼的資料、定義受保護的參數來保護敏感性資料,以及使用參數檔案來透過範本的參數,將該資料當作個別輸入來傳遞。
例如,如果您使用 OAuth 搭配 Microsoft Entra ID 驗證 HTTP 動作,您可以定義並遮蔽會接受用於驗證的用戶端識別碼和用戶端密碼的參數。 若要在邏輯應用程式工作流程中定義這些參數,請在邏輯應用程式的工作流程定義和 Resource Manager 部署範本中,使用 parameters
區段。 若要保護參數值而不要在編輯邏輯應用程式或檢視執行歷程記錄時出現,請使用 securestring
或 secureobject
型別來定義參數,並視需要使用編碼。 此型別的參數不會隨著資源定義一起傳回,而在部署之後檢視資源時也無法存取。 若要在執行階段存取這些參數值,請在工作流程定義內使用 @parameters('<parameter-name>')
運算式。 此運算式只在執行階段評估,而且以工作流程定義語言來描述。
注意
如果您在要求標頭或本文中使用參數,則在檢視工作流程的執行歷程記錄及傳出 HTTP 要求時,可能會看見此參數。 請務必也適當地設定內容存取原則。 您也可以使用混淆,以隱藏執行歷程記錄中的輸入和輸出。
依預設,Authorization
標頭不會透過輸入或輸出顯示。
如此一來如果該處有使用密碼,就無法擷取密碼。
如需詳細資訊,請檢閱本主題中的下列各節:
如果您使用 Resource Manager 範本來自動部署邏輯應用程式,您可以使用 securestring
和 secureobject
型別來定義受保護的範本參數 (在部署時評估)。 若要定義範本參數,請使用範本的最上層 parameters
區段,此區段獨立且不同於工作流程定義的 parameters
區段。 若要提供範本參數的值,請使用個別的參數檔案。
例如,如果您使用秘密,您可以定義和使用受保護的範本參數,在部署時從 Azure Key Vault 取得這些秘密。 然後,您可以在參數檔案中參考金鑰保存庫和祕密。 如需詳細資訊,請檢閱下列主題:
保護工作流程定義中的參數 (使用量工作流程)
若要保護邏輯應用程式工作流程定義中的敏感性資訊,請使用受保護的參數,在您儲存邏輯應用程式工作流程之後就不會看到此資訊。 例如,假設您的 HTTP 動作需要基本驗證,而這會用到使用者名稱和密碼。 在工作流程定義中,parameters
區段使用 securestring
型別來定義 basicAuthPasswordParam
和 basicAuthUsernameParam
參數。 然後,動作定義會在 authentication
區段中參考這些參數。
重要
為了達到最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 進行驗證。 此選項提供卓越的安全性,且無須提供認證。 Azure 會管理此身分識別,並協助確保驗證資訊安全性,讓您無須管理這項敏感性資訊。 若要設定 Azure Logic Apps 的受控識別,請參閱在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取和連線。
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "https://www.microsoft.com",
"authentication": {
"type": "Basic",
"username": "@parameters('basicAuthUsernameParam')",
"password": "@parameters('basicAuthPasswordParam')"
}
},
"runAfter": {}
}
},
"parameters": {
"basicAuthPasswordParam": {
"type": "securestring"
},
"basicAuthUsernameParam": {
"type": "securestring"
}
},
"triggers": {
"manual": {
"type": "Request",
"kind": "Http",
"inputs": {
"schema": {}
}
}
},
"contentVersion": "1.0.0.0",
"outputs": {}
}
保護 Azure Resource Manager 範本中的參數 (使用量工作流程)
邏輯應用程式資源和工作流程的 Resource Manager 範本有多個 parameters
區段。 若要保護密碼、金鑰、秘密及其他敏感性資訊,請在範本層級和工作流程定義層級,使用 securestring
或 secureobject
型別來定義受保護的參數。 然後,您可以將這些值儲存在 Azure Key Vault 中,並使用參數檔案來參考金鑰保存庫和密碼。 然後,您的範本會在部署時取出該資訊。 如需詳細資訊,請檢閱在部署時使用 Azure Key Vault 傳遞敏感值。
重要
為了達到最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 進行驗證。 此選項提供卓越的安全性,且無須提供認證。 Azure 會管理此身分識別,並協助確保驗證資訊安全性,讓您無須管理這項敏感性資訊。 若要設定 Azure Logic Apps 的受控識別,請參閱在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取和連線。
此清單包含這些 parameters
區段的詳細資訊:
在範本的最上層,
parameters
區段定義的參數指定範本在「部署」時使用的值。 例如,這些值可以包含特定部署環境的連接字串。 然後,您可以將這些值儲存在個別的參數檔案中,以更輕鬆變更這些值。在邏輯應用程式的資源定義內 (但在工作流程定義外),
parameters
區段指定工作流程定義參數的值。 在此區段中,您可以使用範本運算式來參考範本的參數,以指派這些值。 部署時會評估這些運算式。在工作流程定義內,
parameters
區段會定義邏輯應用程式工作流程在執行階段使用的參數。 然後,您可以在邏輯應用程式的工作流程內,使用工作流程定義運算式 (在執行階段評估) 來參考這些參數。
這個範例範本有多個使用 securestring
型別的受保護參數定義:
參數名稱 | 描述 |
---|---|
TemplatePasswordParam |
此範本參數接受密碼,再傳遞給工作流程定義的 basicAuthPasswordParam 參數 |
TemplateUsernameParam |
此範本參數接受使用者名稱,再傳遞給工作流程定義的 basicAuthUserNameParam 參數 |
basicAuthPasswordParam |
此工作流程定義參數接受密碼,以用於 HTTP 動作中的基本驗證 |
basicAuthUserNameParam |
此工作流程定義參數接受使用者名稱,以用於 HTTP 動作中的基本驗證 |
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"LogicAppName": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"metadata": {
"description": "Name of the Logic App."
}
},
"TemplatePasswordParam": {
"type": "securestring"
},
"TemplateUsernameParam": {
"type": "securestring"
},
"LogicAppLocation": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"allowedValues": [
"[resourceGroup().location]",
"eastasia",
"southeastasia",
"centralus",
"eastus",
"eastus2",
"westus",
"northcentralus",
"southcentralus",
"northeurope",
"westeurope",
"japanwest",
"japaneast",
"brazilsouth",
"australiaeast",
"australiasoutheast",
"southindia",
"centralindia",
"westindia",
"canadacentral",
"canadaeast",
"uksouth",
"ukwest",
"westcentralus",
"westus2"
],
"metadata": {
"description": "Location of the Logic App."
}
}
},
"variables": {},
"resources": [
{
"name": "[parameters('LogicAppName')]",
"type": "Microsoft.Logic/workflows",
"location": "[parameters('LogicAppLocation')]",
"tags": {
"displayName": "LogicApp"
},
"apiVersion": "2016-06-01",
"properties": {
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "https://www.microsoft.com",
"authentication": {
"type": "Basic",
"username": "@parameters('basicAuthUsernameParam')",
"password": "@parameters('basicAuthPasswordParam')"
}
},
"runAfter": {}
}
},
"parameters": {
"basicAuthPasswordParam": {
"type": "securestring"
},
"basicAuthUsernameParam": {
"type": "securestring"
}
},
"triggers": {
"manual": {
"type": "Request",
"kind": "Http",
"inputs": {
"schema": {}
}
}
},
"contentVersion": "1.0.0.0",
"outputs": {}
},
"parameters": {
"basicAuthPasswordParam": {
"value": "[parameters('TemplatePasswordParam')]"
},
"basicAuthUsernameParam": {
"value": "[parameters('TemplateUsernameParam')]"
}
}
}
}
],
"outputs": {}
}
支援驗證的連接器驗證類型
下表顯示連接器作業上可用的驗證類型,您可以在其中選取驗證類型:
驗證類型 | 邏輯應用程式與支援的連接器 |
---|---|
基本 | Azure API 管理、Azure App Service、HTTP、HTTP + Swagger、HTTP Webhook |
用戶端憑證 | Azure API 管理、Azure App Service、HTTP、HTTP + Swagger、HTTP Webhook |
Active Directory OAuth (具有 Microsoft Entra ID 的 OAuth 2.0) | - 取用:Azure API 管理、Azure App Service、Azure Functions、HTTP、HTTP + Swagger、HTTP Webhook - 標準方案:Azure 自動化、Azure Blob 儲存體、Azure 事件中樞、Azure 佇列、Azure 服務匯流排、Azure 資料表、HTTP、HTTP Webhook、SQL Server |
原始 | Azure API 管理、Azure App Service、Azure Functions、HTTP、HTTP + Swagger、HTTP Webhook |
受控識別 | 內建連接器: - 取用:Azure API 管理、Azure App Service、Azure Functions、HTTP、HTTP Webhook - 標準方案:Azure 自動化、Azure Blob 儲存體、Azure 事件中樞、Azure 佇列、Azure 服務匯流排、Azure 資料表、HTTP、HTTP Webhook、SQL Server 注意:目前,大部分的內建服務提供者型連接器都不支援選取使用者指派的受控識別用於驗證。 受控連接器:Azure App Service、Azure 自動化、Azure Blob 儲存體、Azure 容器執行個體、Azure Cosmos DB、Azure 資料總管、Azure Data Factory、Azure Data Lake、Azure 事件方格、Azure 事件中樞、Azure IoT Central V2、Azure IoT Central V3、Azure Key Vault、Azure Log Analytics、Azure 佇列、Azure Resource Manager、Azure 服務匯流排、Azure Sentinel、Azure 表格儲存體、Azure VM、HTTP 搭配 Microsoft Entra ID、SQL Server |
重要
為了達到最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 進行驗證。 此選項提供卓越的安全性,且無須提供認證。 Azure 會管理此身分識別,並協助確保驗證資訊安全性,讓您無須管理這項敏感性資訊。 若要設定 Azure Logic Apps 的受控識別,請參閱在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取和連線。
要求型觸發程序的輸入呼叫存取權
邏輯應用程式透過要求型觸發程序 (例如要求觸發程序或 HTTP Webhook 觸發程序) 接收的輸入呼叫,支援加密且至少使用傳輸層安全性 (TLS) 1.2 保護,先前稱為安全通訊端層 (SSL)。 Azure Logic Apps 收到要求觸發程序的輸入呼叫或 HTTP Webhook 觸發程序或動作的回呼時,會強制執行此版本。
注意
如果收到 TLS 交握錯誤,請確定您使用 TLS 1.2。 如需詳細資訊,請參閱解決 TLS 1.0 問題。
針對輸入呼叫,請使用下列加密套件:
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
重要
為了回溯相容性,Azure Logic Apps 目前支援一些較舊的加密套件。 不過,當您開發新的應用程式時,「請勿使用」較舊的加密套件,因為未來「可能不支援」這類套件。
例如,如果您在使用 Azure Logic Apps 時檢查 TLS 交握訊息,或在邏輯應用程式的 URL 上使用安全性工具,您可能會發現下列加密套件。 同樣地,「請勿使用」這些較舊的套件:
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_256_GCM_SHA384
- TLS_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA256
- TLS_RSA_WITH_AES_128_CBC_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_3DES_EDE_CBC_SHA
下列清單包含數種方式,可讓您限制存取接收邏輯應用程式工作流程輸入呼叫的觸發程序,而僅允許已授權的用戶端呼叫工作流程:
- 啟用 OAuth 搭配 Microsoft Entra ID
- 產生共用存取簽章 (SAS) 金鑰或權杖
- 停用共用存取簽章 (SAS) 驗證
- 限制輸入 IP 位址
- 使用 Azure API 管理來公開邏輯應用程式
啟用具有 Microsoft Entra ID 的 OAuth 2.0
在以要求型觸發程序開頭的取用工作流程中,您可以啟用具有 Microsoft Entra ID 的 OAuth 2.0,以驗證傳送至該觸發程序所建立之端點的輸入呼叫,並予以授權。 若要設定此驗證,請在邏輯應用程式資源層級定義或新增授權原則。 如此一來,輸入呼叫會使用 OAuth 存取權杖進行授權。
當邏輯應用程式工作流程收到包含 OAuth 存取權杖的輸入要求時,Azure Logic Apps 會比較權杖的宣告與每個授權原則中指定的宣告。 如果權杖的宣告與至少一個原則中的所有宣告相符,則會成功授權輸入要求。 權杖的宣告可以比授權原則指定的數目更多。
在以要求觸發程序 (而非 Webhook 觸發程序) 開頭的標準工作流程中,若有輸入呼叫傳送至要求觸發程序使用受控識別建立的端點,您可以使用 Azure Functions 佈建加以驗證。 此佈建也稱為「簡單驗證」。 如需詳細資訊,請參閱標準邏輯應用程式中具有簡單驗證的觸發程序工作流程。
啟用具有 Microsoft Entra ID 的 OAuth 2.0 之前的考量
為了達到最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 進行驗證。 此選項提供卓越的安全性,且無須提供認證。 Azure 會管理此身分識別,並協助確保驗證資訊安全性,讓您無須管理這項敏感性資訊。 若要設定 Azure Logic Apps 的受控識別,請參閱在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取和連線。
在取用工作流程中,對要求型觸發程序的端點 URL 進行輸入呼叫時只能使用一個授權配置:具有 Microsoft Entra ID 的 OAuth 2.0 或共用存取簽章 (SAS)。 雖然使用一個配置時並不會停用另一個配置,但若同時使用這兩個配置,Azure Logic Apps 會產生錯誤,因為服務不知道應選擇哪一個配置。 如果您的取用工作流程始於要求觸發程序,您可以停用 SAS 驗證,並限制授權僅使用具有 Microsoft Entra ID 的 OAuth 2.0。 對於標準工作流程,您可以使用其他驗證類型而不停用 SAS。
Azure Logic Apps 支援 Microsoft Entra ID OAuth 存取權杖的持有人類型或擁有權證明類型 (僅限使用量邏輯應用程式) 授權配置。 不過,存取權杖的
Authorization
標頭必須指定Bearer
類型或PoP
類型。 如需如何取得和使用 PoP 權杖的詳細資訊,請參閱取得擁有權證明 (PoP) 權杖。取用邏輯應用程式資源受限於授權原則數目上限。 每個授權原則也有宣告數目上限。 如需詳細資訊,請參閱 Azure Logic Apps 的限制和設定。
授權原則至少必須包含簽發者宣告,其中含有開頭為
https://sts.windows.net/
或https://login.microsoftonline.com/
(OAuth V2) 的值作為 Microsoft Entra ID 的簽發者。例如,假設邏輯應用程式資源的授權原則需要兩種宣告類型:對象和簽發者。 解碼存取權杖的這個範例承載區段包含宣告類型,其中
aud
是對象值,而iss
是簽發者值:{ "aud": "https://management.core.windows.net/", "iss": "https://sts.windows.net/<Azure-AD-issuer-ID>/", "iat": 1582056988, "nbf": 1582056988, "exp": 1582060888, "_claim_names": { "groups": "src1" }, "_claim_sources": { "src1": { "endpoint": "https://graph.windows.net/7200000-86f1-41af-91ab-2d7cd011db47/users/00000-f433-403e-b3aa-7d8406464625d7/getMemberObjects" } }, "acr": "1", "aio": "AVQAq/8OAAAA7k1O1C2fRfeG604U9e6EzYcy52wb65Cx2OkaHIqDOkuyyr0IBa/YuaImaydaf/twVaeW/etbzzlKFNI4Q=", "amr": [ "rsa", "mfa" ], "appid": "c44b4083-3bb0-00001-b47d-97400853cbdf3c", "appidacr": "2", "deviceid": "bfk817a1-3d981-4dddf82-8ade-2bddd2f5f8172ab", "family_name": "Sophia Owen", "given_name": "Sophia Owen (Fabrikam)", "ipaddr": "167.220.2.46", "name": "sophiaowen", "oid": "3d5053d9-f433-00000e-b3aa-7d84041625d7", "onprem_sid": "S-1-5-21-2497521184-1604012920-1887927527-21913475", "puid": "1003000000098FE48CE", "scp": "user_impersonation", "sub": "KGlhIodTx3XCVIWjJarRfJbsLX9JcdYYWDPkufGVij7_7k", "tid": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "unique_name": "SophiaOwen@fabrikam.com", "upn": "SophiaOwen@fabrikam.com", "uti": "TPJ7nNNMMZkOSx6_uVczUAA", "ver": "1.0" }
啟用具有 Microsoft Entra ID 的 OAuth 2.0,作為呼叫要求端點的唯一選項 (僅限取用)
對於要求型端點,您可以限制授權僅使用具有 Microsoft Entra ID 的 OAuth 2.0。 即使您也停用共用存取簽章 (SAS) 驗證,此選項仍適用。
對於您的取用工作流程,按照步驟在要求或 HTTP Webhook 觸發程序輸出中包含 'Authorization' 標頭,以設定要求觸發程序或 HTTP Webhook 觸發程序,使其具備檢查 OAuth 存取權杖的功能。
注意
此步驟會在工作流程的執行歷程記錄和觸發程序的輸出中顯示
Authorization
標頭。在 Azure 入口網站中,透過設計工具開啟您的取用工作流程。
在設計工具中,選取觸發程序。 在開啟的資訊窗格中,選取 [設定]。
在 [一般]>[觸發條件] 底下,選取 [新增]。 在觸發條件方塊中,根據您想要使用的權杖類型,輸入下列任一運算式:
@startsWith(triggerOutputs()?['headers']?['Authorization'], 'Bearer')
-或-
@startsWith(triggerOutputs()?['headers']?['Authorization'], 'PoP')
如果您呼叫沒有正確授權的觸發程序端點,則執行歷程記錄只會將觸發程式顯示為 Skipped
,且沒有任何觸發條件失敗的訊息。
取得擁有權證明 (PoP) 權杖
Microsoft 驗證程式庫 (MSAL) 程式庫會提供 PoP 權杖供您使用。 如果您想要呼叫的取用邏輯應用程式工作流程需要 PoP 權杖,您可以使用 MSAL 程式庫取得此權杖。 下列範例示範如何取得 PoP 權杖:
若要將 PoP 權杖用於您的取用邏輯應用程式工作流程,請按照步驟設定具有 Microsoft Entra ID 的 OAuth。
為您的取用邏輯應用程式資源啟用具有 Microsoft Entra ID 的 OAuth
若要將授權原則新增至取用邏輯應用程式,請依照 Azure 入口網站或 Azure Resource Manager 範本的步驟操作:
在 Azure 入口網站中,於設計工具中開啟您的使用量邏輯應用程式和工作流程。
在邏輯應用程式功能表的 [設定] 下,選取 [授權]。
在 [授權] 頁面上,選取 [新增原則]。
提供授權原則的相關資訊,請指定宣告類型和值 (在每次輸入呼叫要求觸發程序時所出示的存取權杖中,符合邏輯應用程式所預期):
屬性 必要 類型 描述 原則名稱 Yes String 您想要用於授權原則的名稱 原則類型 Yes String 持有人類型權杖的 AAD 或擁有權證明類型權杖的 AADPOP。 宣告 Yes String 索引鍵/值組,指定工作流程要求觸發程序在對觸發程序的每個輸入呼叫所呈現的存取權杖中預期的宣告類型和值。 您可以選取 [新增標準宣告] 來新增您想要的任何標準宣告。 若要新增 PoP 權杖的特定宣告,請選取 [新增自訂宣告]。
可用的標準宣告類型:
- 簽發者
- 適用對象
- 主體
- JWT 識別碼 (JSON Web 權杖識別碼)
需求:
- 宣告清單至少必須包含簽發者宣告,其中有一個開頭為https://sts.windows.net/
或https://login.microsoftonline.com/
的值作為 Microsoft Entra 簽發者識別碼。
- 每個宣告都必須是單一字串值,而不是值的陣列。 例如,您可以擁有具有 Role 做為類型的宣告,而 [開發人員] 做為值。 您無法擁有具有 Role 做為類型的宣告,以及設定為開發人員和方案經裡的值。
- 宣告值限制為最大字元數。
如需這些宣告類型的詳細資訊,請檢閱 Microsoft Entra 安全性權杖中的宣告。 您也可以指定自己的宣告類型和值。下列範例顯示 PoP 權杖的資訊:
若要新增另一個宣告,請從下列選項中選取:
若要新增另一個宣告類型,請選取 [新增標準宣告],選取宣告類型,然後指定宣告值。
若要新增自己的宣告,請選取 [新增自訂宣告]。 如需詳細資訊,請檢閱如何為應用程式提供選擇性宣告。 您的自訂宣告隨後會儲存為 JWT 識別碼的一部分,例如:
"tid": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
。
若要新增另一個授權原則,請選取 [新增原則]。 重複上述步驟來設定原則。
完成時,選取儲存。
若要在要求型觸發程序輸出中包含存取權杖的
Authorization
標頭,請檢閱在要求和 HTTP Webhook 觸發程序輸出中包含 'Authorization' 標頭。
Azure 入口網站中的工作流程程式碼檢視,不會顯示如原則之類的工作流程屬性。 若要以程式設計方式存取您的原則,請透過 Azure Resource Manager 呼叫下列 API:https://management.azure.com/subscriptions/{Azure-subscription-ID}/resourceGroups/{Azure-resource-group-name}/providers/Microsoft.Logic/workflows/{your-workflow-name}?api-version=2016-10-01&_=1612212851820
。 請確認已取代 Azure 訂用帳戶識別碼、資源群組名稱和工作流程名稱的預留位置值。
在要求或 HTTP Webhook 觸發程序輸出中包含 'Authorization' 標頭
對於啟用具有 Microsoft Entra ID 的 OAuth 以授權給輸入呼叫存取要求型觸發程序的邏輯應用程式,您可以啟用要求觸發程序或 HTTP Webhook 觸發程序輸出,以包含來自 OAuth 存取權杖的 Authorization
標頭。 在觸發程序的基礎 JSON 定義中,將 operationOptions
屬性新增並設定為 IncludeAuthorizationHeadersInOutputs
。 以下是要求觸發程序的範例:
"triggers": {
"manual": {
"inputs": {
"schema": {}
},
"kind": "Http",
"type": "Request",
"operationOptions": "IncludeAuthorizationHeadersInOutputs"
}
}
如需詳細資訊,請檢閱下列主題:
產生共用存取簽章 (SAS) 金鑰或權杖
若工作流程始於要求型觸發程序,且您是首次儲存該工作流程,則 Azure Logic Apps 會在該觸發程序上建立可呼叫的端點。 此端點具有可接收輸入呼叫或要求啟動工作流程的 URL。 該 URL 包含共用存取簽章 (SAS),這是將權限授與儲存體服務 (舉例而言) 的金鑰或權杖。 此端點 URL 使用下列格式:
https://<request-endpoint-URI>sp=<permissions>sv=<SAS-version>sig=<signature>
例如,若要在要求觸發程序中檢視此 URL,請尋找觸發程序的 HTTP URL 屬性:
完整的 URL 如下列範例所示:
https://{domain}:443/workflows/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/triggers/When_a_HTTP_request_is_received/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig=ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
URL 中的 SAS 具有查詢參數,如下表所說明:
查詢參數 | 描述 |
---|---|
sp |
指定權限供允許的 HTTP 方法使用。 |
sv |
指定用於產生簽章的 SAS 版本。 |
sig |
指定簽章以用於驗證對觸發程序的存取。 在所有 URL 路徑和屬性上,系統會使用 SHA256 演算法,搭配祕密存取金鑰,以產生此簽章。 此金鑰會保密並加密、與邏輯應用程式一起儲存,且永不公開或發佈。 您的邏輯應用程式只會針對包含使用祕密金鑰建立之有效簽章的觸發程序進行授權。 |
重要
請務必保護您的 SAS 金鑰,就像保護帳戶密鑰免於未經授權的使用一樣。 設定或設定撤銷遭入侵存取金鑰的計劃。 當您散發使用存取密鑰的 URI 時,請使用自由裁量權,並只透過 HTTPS 等安全連線散發這類 URI。 請務必只執行透過 HTTPS 連線使用存取金鑰的作業。 具有有效密鑰的 URI 任何人都可以存取相關聯的資源。 若要維護安全性並保護對邏輯應用程式工作流程的存取, 請定期重新產生存取密鑰 ,因為它們可能需要符合安全策略或遭到入侵。 如此一來,您可以確定只有授權的要求可以觸發您的工作流程,以保護您的數據和進程免於未經授權的存取。
如果您使用 SAS 金鑰來存取記憶體服務,Microsoft建議您建立以 Microsoft Entra ID 保護的使用者委派 SAS,而不是帳戶密鑰。
為了獲得最佳安全性,Microsoft建議盡可能使用具有受控識別的 Microsoft Entra ID 進行驗證。 此選項提供卓越的安全性,且無須提供認證。 Azure 會管理此身分識別,並協助確保驗證資訊安全性,讓您無須管理這項敏感性資訊。 若要設定 Azure Logic Apps 的受控識別,請參閱在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取和連線。
對要求型觸發程序的端點進行輸入呼叫只能使用一個授權配置:SAS 或具有 Microsoft Entra ID 的 OAuth 2.0。 雖然使用一個配置時並不會停用另一個,但若同時使用這兩個配置,Azure Logic Apps 會產生錯誤,因為服務不知道應選擇哪一個配置。
如果您有以要求觸發程式開頭的取用工作流程,您可以停用 SAS 驗證。 即使您也限制授權僅使用具有 Microsoft Entra ID 的 OAuth 2.0,此選項仍適用。 對於標準工作流程,您可以使用其他驗證類型而不停用 SAS。
如需使用 SAS 金鑰時的安全性詳細資訊,請參閱本指南中的下列各節:
停用共用存取簽章 (SAS) 驗證 (僅限取用)
根據預設,要求型觸發程序會啟用 SAS 驗證。 觸發程序的端點 URL 包含 SAS,開頭為查詢參數 sp-<permissions>sv-<SAS-version>sig=<signature>
,例如:
https://{domain}:443/workflows/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/triggers/When_a_HTTP_request_is_received/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig=ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
如果您的取用工作流程始於要求觸發程序,而且您想要使用具有 Microsoft Entra ID 的 OAuth,您可以停用 SAS 驗證,以避免執行工作流程時發生錯誤和問題。 您也可藉由移除對秘密的相依性來新增安全性階層,進而降低記錄或洩漏秘密的風險。
即使您也啟用具有 Microsoft Entra ID 的 OAuth 2.0,作為呼叫要求型端點的唯一選項,此選項仍適用。 對於標準工作流程,您可以使用其他驗證類型而不停用 SAS。
注意
此動作會停用傳入要求的 SAS 驗證,並封鎖現有的 SAS 金鑰或簽章無法運作。 不過,當您再次啟用 SAS 驗證時,您的 SAS 金鑰或簽章仍然有效,且仍可運作。 若要藉由建立新版本來停用 SAS 金鑰和簽章,請參閱 重新產生存取密鑰。
停用 SAS 驗證之後,要求觸發程序的端點 URL 即不再包含 SAS 金鑰,例如:
https://{domain}:443/workflows/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/triggers/When_a_HTTP_request_is_received/paths/invoke?api-version=2016-10-01
必要條件
針對這項工作,您需要用來傳送 REST API 呼叫的工具,例如:
- Visual Studio Code 搭配 Visual Studio Marketplace 的延伸模組
- PowerShell Invoke-RestMethod
- Microsoft Edge - 網路主控台工具
- Bruno
- curl
警告
如果您有敏感資料,例如認證、秘密、存取權杖、API 金鑰和其他類似資訊,請務必使用一項工具,以必要的安全性功能保護資料、離線或本機運作、不將資料同步處理至雲端,而且不需要您登入線上帳戶。 如此一來,您就可以降低向公眾公開敏感資料的風險。
檢查已啟用或停用 SAS 的觸發程序
SAS 驗證停用時,觸發程序的端點 URL 即不再包含 SAS 金鑰。 此外,取用工作流程定義也會包含 sasAuthenticationPolicy JSON 物件。 此物件具有設定為 [已停用] 的狀態屬性,例如:
"properties": {
"accessControl": {
"triggers": {
"sasAuthenticationPolicy": {
"state": "Disabled"
}
}
}
}
若要尋找已啟用或停用 SAS 的取用工作流程,請檢查工作流程定義是否包含狀態屬性設定為 [已停用] 的 sasAuthenticationPolicy 物件。
使用工具傳送 REST API 呼叫後,請使用下列 GET 要求執行工作流程 -取得作業,以取得工作流程的相關資訊,例如:
GET https://management.azure.com/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Logic/workflows/{workflow-name}?api-version=2016-06-01
取得工作流程 - 取得作業的輸出,並檢查 sasAuthenticationPolicy 物件是否存在,且狀態屬性設定為 [已停用]。
將 sasAuthenticationPolicy 屬性新增至您的工作流程定義
對於要停用 SAS 驗證的取用工作流程,請遵循下列步驟:
執行下列作業 (若尚未執行):使用下列 GET 要求執行工作流程 -取得作業,以取得工作流程的相關資訊,例如:
GET https://management.azure.com/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Logic/workflows/{workflow-name}?api-version=2016-06-01
取得工作流程 - 取得作業的輸出,並手動新增下列元素:
在
properties
物件中,新增包含triggers
物件的accessControl
物件 (如果不存在)。在
triggers
物件中新增sasAuthenticationPolicy
物件,且其中包含設定為Disabled
的state
屬性。
完成作業後,編輯的部分會如同下列範例所示:
"properties": { "accessControl": { "triggers": { "sasAuthenticationPolicy": { "state": "Disabled" } } } }
使用下列 PATCH 要求執行工作流程 - 更新作業,傳送另一個要求以使用編輯的輸出 (在要求本文中作為輸入) 來更新工作流程:
PATCH https://management.azure.com/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Logic/workflows/{workflow-name}?api-version=2016-06-01
在 Azure 入口網站中,移至設計工具中的取用工作流程,並確認要求觸發程序的 URL 不再包含 SAS。
若要啟用具有 Microsoft Entra ID 的 Oauth 2.0,請在邏輯應用程式資源層級為具有 Microsoft Entra ID 的 OAuth 新增授權原則。
如需詳細資訊,請參閱具有 Microsoft Entra ID 的 OAuth 2.0。
重新產生存取金鑰
若要維護安全性並保護對邏輯應用程式工作流程的存取,請定期重新產生存取密鑰,因為它們可能需要符合安全策略或遭到入侵。 如此一來,您可以確定只有授權的要求可以觸發您的工作流程,以保護您的數據和進程免於未經授權的存取。
若要隨時產生新的存取密鑰,請使用 Azure REST API 或 Azure 入口網站。 使用舊密鑰的所有先前產生的 URI 或 URL 都會失效,且不再具有觸發邏輯應用程式工作流程的授權。 重新產生之後所擷取的 URI 會以新的存取密鑰簽署。
在 Azure 入口網站 中,開啟使用您要重新產生密鑰的邏輯應用程式資源。
在邏輯應用程式資源功能表的 [設定] 下,選取 [存取金鑰]。
選取您要重新產生的金鑰,並完成流程。
重要
請務必保護您的存取密鑰,就像保護帳戶密鑰免於未經授權的使用一樣。 設定或設定撤銷遭入侵存取金鑰的計劃。 當您散發使用存取密鑰的 URI 時,請使用自由裁量權,並只透過 HTTPS 等安全連線散發這類 URI。 請務必只執行透過 HTTPS 連線使用存取金鑰的作業。 具有有效密鑰的 URI 任何人都可以存取相關聯的資源。
如果您使用 SAS 金鑰來存取記憶體服務,Microsoft建議您建立以 Microsoft Entra ID 保護的使用者委派 SAS,而不是帳戶密鑰。
為了達到最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 進行驗證。 此選項提供卓越的安全性,且無須提供認證。 Azure 會管理此身分識別,並協助確保驗證資訊安全性,讓您無須管理這項敏感性資訊。 若要設定 Azure Logic Apps 的受控識別,請參閱在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取和連線。
建立有期限的回呼 URL
對於以要求為基礎的觸發程序,如果您要將端點 URL 分享給其他人,您可以產生使用特定金鑰且有到期日的回呼 URL。 如此一來,您可以根據特定的時間範圍,無縫輪替金鑰,或限制有無存取權來觸發邏輯應用程式。 若要指定 URL 的到期日,請使用 Azure Logic Apps REST API,例如:
POST /subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Logic/workflows/{workflow-name}/triggers/{trigger-name}/listCallbackUrl?api-version=2016-06-01
在本文中,使用 JSON 日期字串包含 NotAfter
屬性。 此屬性會傳回只在 NotAfter
日期與時間之前有效的回呼 URL。
使用主要或次要祕密金鑰建立 URL
針對以要求為基礎的觸發程序,當您產生或列出回呼 URL 時,您可以指定用於簽署 URL 的金鑰。 若要產生以特定金鑰簽署的 URL,請使用 Azure Logic Apps REST API,例如:
POST /subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Logic/workflows/{workflow-name}/triggers/{trigger-name}/listCallbackUrl?api-version=2016-06-01
在本文中,將屬性 KeyType
包含為 Primary
或 Secondary
。 此屬性會傳回以特定安全金鑰簽署的 URL。
使用 Azure API 管理來公開邏輯應用程式工作流程
如需更多驗證通訊協定和選項,請考慮使用 Azure API 管理將邏輯應用程式工作流程公開為 API。 此服務可為任何端點提供豐富的監視、安全性、原則和記錄功能。 API 管理可以公開邏輯應用程式的公用或私人端點。 若要授權存取此端點,您可以使用 OAuth 搭配 Microsoft Entra ID、用戶端憑證或其他安全性標準。 當 API 管理收到要求時,服務會傳送要求至您的邏輯應用程式,並會在過程中進行任何必要的轉換或限制。 若只要讓 API 管理呼叫邏輯應用程式工作流程,您可以限制邏輯應用程式的輸入 IP 位址。
如需詳細資訊,請參閱下列文件:
- 關於 API 管理
- 使用 OAuth 2.0 授權搭配 Microsoft Entra ID 保護 Azure API 管理中的 Web API 後端
- 使用 API 管理中的用戶端憑證驗證保護 API
- API 管理驗證原則
限制輸入 IP 位址
除了共用存取簽章 (SAS),您可能還想特別限制哪些用戶端可呼叫邏輯應用程式工作流程。 例如,如果您使用 Azure API 管理來管理要求端點,您可以限制邏輯應用程式工作流程接受的要求,只能來自您建立的 API 管理服務執行個體 IP 位址。
無論您指定的 IP 位址為何,您仍可使用工作流程觸發程序 - 執行作業要求或使用 API 管理來執行具有要求型觸發程序的邏輯應用程式工作流程。 不過,此情況仍然需要經過 Azure REST API 來驗證。 所有事件都出現在 Azure 稽核記錄中。 請確定您已適當地設定存取控制原則。
若要限制邏輯應用程式工作流程的輸入 IP 位址,請針對 Azure 入口網站或 Azure Resource Manager 範本執行下列對應步驟。 有效的 IP 範圍使用這些格式:x.x.x.x/x 或 x.x.x.x-x.x.x.x
在 Azure 入口網站中,IP 位址限制會影響觸發程序及動作,這與入口網站中 [允許的輸入 IP 位址] 底下的描述相反。 若要為觸發程序和動作分別設定此篩選,請對邏輯應用程式資源或 Azure Logic Apps REST API 中的工作流程 - 建立或更新作業使用 Azure Resource Manager 範本中的 accessControl
物件。
取用工作流程
在 Azure 入口網站中,於工作流程設計工具中開啟您的取用邏輯應用程式。
在邏輯應用程式功能表的 [設定] 下,選取 [工作流程設定]。
在 [存取控制組態] 區段的 [允許的輸入 IP 位址] 下,選擇案例的路徑:
若要使用 Azure Logic Apps 內建動作讓您的工作流程可供呼叫,但只能作為巢狀工作流程,請選取 [限僅其他 Logic Apps]。 只有在您使用 Azure Logic Apps 動作來呼叫巢狀工作流程時,此選項才有作用。
此選項會將空陣列寫入邏輯應用程式資源,並且要求只有從使用內建 Azure Logic Apps 動作的父工作流程呼叫,才能觸發巢狀工作流程。
若要使用 HTTP 動作讓您的工作流程可供呼叫,但只能作為巢狀工作流程,請選取 [特定 IP 範圍]。 當 [觸發程序的 IP 範圍] 方塊出現時,請輸入父工作流程的輸出 IP 位址。 有效的 IP 範圍使用這些格式:x.x.x.x/x 或 x.x.x.x-x.x.x.x
注意
如果您使用 [只有其他邏輯應用程式] 選項和 HTTP 動作來呼叫巢狀工作流程,呼叫會遭到封鎖,並收到「401 未授權」錯誤。
如果您想要限制來自其他 IP 的輸入呼叫的情況,當 [觸發程序的 IP 範圍] 方塊出現時,請指定觸發程序接受的 IP 位址範圍。 有效的 IP 範圍使用這些格式:x.x.x.x/x 或 x.x.x.x-x.x.x.x
或者,在 [限制呼叫從執行歷程記錄取得輸入和輸出訊息到提供的 IP 位址] 下,您可以指定輸入呼叫的 IP 位址範圍,以存取執行歷程記錄中的輸入和輸出訊息。
標準工作流程
在 Azure 入口網站中,開啟您的標準邏輯應用程式資源。
在邏輯應用程式功能表的 [設定] 底下,選取 [網路]。
在 [輸入流量組態] 區段的 [公用網路存取] 旁,選取 [已啟用且無存取限制]。
在 [存取限制] 頁面的 [應用程式存取] 下,選取 [已從選取的虛擬網路和 IP 位址啟用]。
在 [網站存取和規則] 下,於 [主要網站] 索引標籤上,新增一或多個規則以允許或拒絕特定 IP 範圍的要求。 有效的 IP 範圍使用這些格式:x.x.x.x/x 或 x.x.x.x-x.x.x.x
如需詳細資訊,請參閱在 Azure Logic Apps (標準) 中封鎖輸入 IP 位址。
對其他服務和系統的輸出呼叫存取權
根據目標端點的功能,HTTP 觸發程序或 HTTP 動作所傳送的輸出呼叫支援加密,並使用傳輸層安全性 (TLS) 1.0、1.1 或 1.2 (先前稱為安全通訊端層 (SSL)) 加以保護。 Azure Logic Apps 會使用支援的最高可能版本與目標端點交涉。 例如,如果目標端點支援 1.2,HTTP 觸發程序或動作會優先使用 1.2。 否則,連接器會使用下一個最高支援的版本。
此清單包含 TLS/SSL 自我簽署憑證的相關資訊:
對於多租用戶 Azure Logic Apps 環境中的使用量邏輯應用程式工作流程,HTTP 作業不允許自我簽署 TLS/SSL 憑證。 如果您的邏輯應用程式對伺服器進行 HTTP 呼叫,並呈現 TLS/SSL 自我簽署憑證,HTTP 呼叫就會失敗並出現
TrustFailure
錯誤。針對單一租用戶 Azure Logic Apps 環境中的標準邏輯應用程式工作流程,HTTP 作業支援自我簽署 TLS/SSL 憑證。 不過,您必須完成此驗證類型的幾個額外步驟。 否則,呼叫將會失敗。 如需詳細資訊,請檢閱單一租使用者 Azure Logic Apps 的 TLS/SSL 憑證驗證。
如果您想要改用用戶端憑證或 OAuth 搭配 Microsoft Entra ID 與「憑證」認證類型,您仍然需要完成此驗證類型的幾個額外步驟。 否則,呼叫將會失敗。 如需詳細資訊,請參閱適用於單一租用戶 Azure Logic Apps 的用戶端憑證或 OAuth 搭配 Microsoft Entra ID 與「憑證」認證類型。
如果端點處理邏輯應用程式工作流程所傳送的呼叫,以下有其他方法有助於保護端點:
-
使用 HTTP 觸發程序或動作來傳送輸出呼叫時,您可以將驗證新增至邏輯應用程式所傳送的要求。 例如,您可以選取下列驗證類型:
限制來自邏輯應用程式工作流程 IP 位址的存取。
從邏輯應用程式工作流程對端點的所有呼叫,都源自以邏輯應用程式的區域為基礎的特定 IP 位址。 您可以新增篩選,以只接受來自那些 IP 位址的要求。 如需取得這些 IP 位址,請檢閱 Azure Logic Apps 的限制和設定。
改善內部部署系統的連線安全性。
Azure Logic Apps 與下列服務整合,提供更安全可靠的內部部署通訊。
內部部署的資料閘道
Azure Logic Apps 的許多受控連接器都支援安全連線至內部部署系統,例如檔案系統、SQL、SharePoint 和 DB2。 閘道會在加密通道上經過 Azure 服務匯流排傳送來自內部部署來源的資料。 所有流量都是源自閘道代理程式的受保護輸出流量。 了解內部部署資料閘道的運作方式。
透過 Azure API 管理進行連線
Azure API 管理提供內部部署連線選項,例如站對站虛擬私人網路和 ExpressRoute 整合,以對內部部署系統提供安全的 Proxy 和通訊。 如果您有提供內部部署系統存取權的 API,而且已藉由建立API 管理服務執行個體來公開該 API,您可以從邏輯應用程式的工作流程中呼叫該 API,方法是在工作流程設計工具中選取 [API 管理] 作業。
注意
連接器只會顯示您有權檢視和連線的 API 管理服務,但不會顯示以使用量為基礎的 API 管理服務。
根據您的邏輯應用程式資源類型,遵循對應的步驟:
使用量工作流程
根據您要新增 API 管理觸發程序還是動作,請遵循下列步驟:
觸發程序:
在工作流程設計工具上,選取 [新增觸發程序]。
開啟 [新增觸發程序] 窗格之後,在搜尋方塊中輸入 API 管理。
從觸發程序結果清單,選取 [選擇 Azure API 管理觸發程序]。
動作:
在工作流程設計工具上,選取您要在其中新增動作的加號 (+)。
開啟 [新增動作] 窗格之後,在搜尋方塊中輸入 API 管理。
從動作結果清單,選取 [選擇 Azure API 管理動作]。
下列範例顯示尋找 Azure API 管理觸發程序:
從 [API 管理服務執行個體] 清單中,選取您先前建立的 API 管理服務執行個體。
從 [API 作業] 清單中,選取要呼叫的 API 作業,然後選取 [新增動作]。
標準工作流程
針對標準工作流程,您只能新增 [API 管理] 動作,而不是觸發程序。
將驗證新增至輸出呼叫
HTTP 和 HTTPS 端點支援各種類型的驗證。 在某些將輸出呼叫或要求傳送至這些端點的觸發程序和動作上,您可以指定驗證類型。 在工作流程設計工具中,支援選擇驗證類型的觸發程式和動作具有 [驗證] 屬性。 不過,此屬性不一定會預設顯示。 在這些情況下,請在觸發程序或動作上開啟 [進階參數] 清單,然後選取 [驗證]。
重要
若要保護邏輯應用程式工作流程所處理的敏感性資訊,請使用受保護的參數,並視需要將資料編碼。 如需使用及保護參數的詳細資訊,請檢閱存取參數輸入。
為了達到最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 進行驗證。 此選項提供卓越的安全性,且無須提供認證。 Azure 會管理此身分識別,並協助確保驗證資訊安全性,讓您無須管理這項敏感性資訊。 若要設定 Azure Logic Apps 的受控識別,請參閱在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取和連線。
基本驗證
對於 HTTP 呼叫,基本驗證會使用 base64 編碼字串,其中包含用來提出要求的使用者名稱和密碼。 除非您在使用此選項時搭配 HTTPS/SSL 通訊協定,否則此方法會傳輸未加密的認證,因而提高安全性風險。
重要
為了達到最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 進行驗證。 此選項提供卓越的安全性,且無須提供認證。 Azure 會管理此身分識別,並協助確保驗證資訊安全性,讓您無須管理這項敏感性資訊。 若要設定 Azure Logic Apps 的受控識別,請參閱在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取和連線。
如果 [基本] 是可用選項並已選取,請指定下列屬性值:
屬性 (設計工具) | Property (JSON) | 必要 | 值 | Description |
---|---|---|---|---|
驗證 | type |
Yes | 基本 | 要使用的驗證類型 |
使用者名稱 | username |
Yes | <user-name> | 用來驗證存取目標服務端點的使用者名稱 |
密碼 | password |
Yes | <password> | 用來驗證存取目標服務端點的密碼 |
當您使用受保護的參數來處理和保護敏感性資訊時,例如,在用於自動化部署的 Azure Resource Manager 範本中,您可以使用運算式在執行階段存取這些參數值。 這個 HTTP 動作定義範例將驗證 type
指定為 Basic
,並使用 parameters() 函式 來取得參數值:
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@parameters('endpointUrlParam')",
"authentication": {
"type": "Basic",
"username": "@parameters('userNameParam')",
"password": "@parameters('passwordParam')"
}
},
"runAfter": {}
}
用戶端憑證驗證
用戶端憑證驗證會允許或要求使用者直接使用 X.509 憑證對其 Microsoft Entra ID 進行驗證,以登入應用程式和瀏覽器。 此功能可協助您採用防釣魚驗證,並使用 X.509 憑證對公開金鑰基礎結構 (PKI) 進行驗證。
重要
為了達到最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 進行驗證。 此選項提供卓越的安全性,且無須提供認證。 Azure 會管理此身分識別,並協助確保驗證資訊安全性,讓您無須管理這項敏感性資訊。 若要設定 Azure Logic Apps 的受控識別,請參閱在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取和連線。
如果 [用戶端憑證] 是可用選項並已選取,請指定下列屬性值:
屬性 (設計工具) | Property (JSON) | 必要 | 值 | Description |
---|---|---|---|---|
驗證 | type |
Yes | 用戶端憑證 或 ClientCertificate |
要使用的驗證類型。 您可以使用 Azure API 管理來管理憑證。 注意:自訂連接器不支援輸入和輸出呼叫的憑證式驗證。 |
Pfx | pfx |
Yes | <encoded-pfx-file-content> | Base64 編碼的個人資訊交換 (PFX) 檔案內容 若要將 PFX 檔案轉換成 base64 編碼格式,您可以依照下列步驟使用 PowerShell 7: 1.將憑證內容儲存至變數: $pfx_cert = [System.IO.File]::ReadAllBytes('c:\certificate.pfx') 2.使用 ToBase64String() 函式來轉換憑證內容,並將該內容儲存至文字檔:[System.Convert]::ToBase64String($pfx_cert) | Out-File 'pfx-encoded-bytes.txt' 疑難排解:如果您使用 cert mmc/PowerShell 命令,可能會收到此錯誤:Could not load the certificate private key. Please check the authentication certificate password is correct and try again. 若要解決此錯誤,請嘗試使用 openssl 命令,將 PFX 檔案轉換成 PEM 檔案,然後再次返回:openssl pkcs12 -in certificate.pfx -out certificate.pem openssl pkcs12 -in certificate.pem -export -out certificate2.pfx 之後,當您取得憑證新轉換 PFX 檔案的 base64 編碼字串時,字串現在可在 Azure Logic Apps 中使用。 |
密碼 | password |
No | <password-for-pfx-file> | 用於存取 PFX 檔案的密碼 |
注意
如果您嘗試使用 OpenSSL 利用用戶端憑證進行驗證,可能會收到下列錯誤:
BadRequest: Could not load private key
請依照下列步驟解決此錯誤:
- 解除安裝所有 OpenSSL 執行個體。
- 安裝 OpenSSL 1.1.1t 版。
- 使用新的更新來重新簽署您的憑證。
- 使用用戶端憑證驗證時,將新的憑證新增至 HTTP 作業。
當您使用受保護的參數來處理和保護敏感性資訊時,例如,在用於自動化部署的 Azure Resource Manager 範本中,您可以使用運算式在執行階段存取這些參數值。 這個 HTTP 動作定義範例將驗證 type
指定為 ClientCertificate
,並使用 parameters() 函式 來取得參數值:
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@parameters('endpointUrlParam')",
"authentication": {
"type": "ClientCertificate",
"pfx": "@parameters('pfxParam')",
"password": "@parameters('passwordParam')"
}
},
"runAfter": {}
}
重要
如果您的單一租用戶 Azure Logic Apps 中有標準邏輯應用程式資源,而且您想要使用 HTTP 作業搭配 TSL/SSL 憑證、用戶端憑證或使用 Certificate
認證類型的 Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth),請務必完成此驗證類型的額外設定步驟。 否則,呼叫將會失敗。 如需詳細資訊,請檢閱單一租用戶環境中的驗證。
如需以用戶端憑證驗證來保護服務的詳細資訊,請檢閱下列主題:
- 在 Azure API 管理中以用戶端憑證驗證改善 API 的安全性
- 在 Azure API 管理中以用戶端憑證驗證改善後端服務的安全性
- 以用戶端憑證改善 RESTful 服務的安全性
- 應用程式驗證的憑證認證
- 在 Azure App Service 的程式碼中使用 TLS/SSL 憑證
Microsoft Entra 平台
在要求觸發程序上,您可以在為邏輯應用程式設定 Microsoft Entra 授權原則之後,使用 Microsoft Entra 平台來驗證傳入呼叫。
重要
為了達到最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 進行驗證。 此選項提供卓越的安全性,且無須提供認證。 Azure 會管理此身分識別,並協助確保驗證資訊安全性,讓您無須管理這項敏感性資訊。 若要設定 Azure Logic Apps 的受控識別,請參閱在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取和連線。
在所有支援 Active Directory OAuth (具有 Microsoft Entra ID 的 OAuth 2.0) 驗證類型的其他觸發程序和動作上,指定下列屬性值:
屬性 (設計工具) | Property (JSON) | 必要 | 值 | Description |
---|---|---|---|---|
驗證 | type |
Yes | Active Directory OAuth (具有 Microsoft Entra ID 的 OAuth 2.0) 或 ActiveDirectoryOAuth |
要使用的驗證類型。 Azure Logic Apps 目前遵循 OAuth 2.0 通訊協定。 |
授權單位 | authority |
No | <URL-for-authority-token-issuer> | 提供存取金鑰的授權單位 URL,例如 https://login.microsoftonline.com/ Azure 全域服務區域。 針對其他國家/地區雲端,請檢閱 Microsoft Entra 驗證端點 - 選擇您的身分識別授權單位。 |
租用戶 | tenant |
Yes | <tenant-ID> | Microsoft Entra 租用戶的租用戶識別碼 |
適用對象 | audience |
Yes | <resource-to-authorize> | 您希望用於授權的資源,例如,https://management.core.windows.net/ |
用戶端識別碼 | clientId |
Yes | <client-ID> | 要求授權的應用程式用戶端識別碼 |
認證類型 | credentialType |
Yes | 憑證 或 祕密 |
用戶端要求授權時使用的認證類型。 此屬性和值不會出現在邏輯應用程式的基礎定義中,但可決定在選取的認證類型上出現的屬性。 |
祕密 | secret |
是,但僅適用於「祕密」認證類型 | <client-secret> | 要求授權用的用戶端密碼 |
Pfx | pfx |
是,但僅適用於「憑證」認證類型 | <encoded-pfx-file-content> | Base64 編碼的個人資訊交換 (PFX) 檔案內容 |
密碼 | password |
是,但僅適用於「憑證」認證類型 | <password-for-pfx-file> | 用於存取 PFX 檔案的密碼 |
當您使用受保護的參數來處理和保護敏感性資訊時,例如,在用於自動化部署的 Azure Resource Manager 範本中,您可以使用運算式在執行階段存取這些參數值。 這個 HTTP 動作定義範例將驗證 type
指定為 ActiveDirectoryOAuth
,將認證類型指定為 Secret
,並使用 parameters() 函式來取得參數值:
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@parameters('endpointUrlParam')",
"authentication": {
"type": "ActiveDirectoryOAuth",
"tenant": "@parameters('tenantIdParam')",
"audience": "https://management.core.windows.net/",
"clientId": "@parameters('clientIdParam')",
"credentialType": "Secret",
"secret": "@parameters('secretParam')"
}
},
"runAfter": {}
}
重要
如果您的單一租用戶 Azure Logic Apps 中有標準邏輯應用程式資源,而您想要使用 HTTP 作業搭配 TSL/SSL 憑證、用戶端憑證或具有 Certificate
認證類型的 Microsoft Entra ID OAuth,請務必完成此驗證類型的額外設定步驟。 否則,呼叫將會失敗。 如需詳細資訊,請參閱單一租用戶環境中的驗證。
原始驗證
如果有 [原始] 選項可用,當您必須使用未遵循 OAuth 2.0 通訊協定的驗證配置時,您可以使用此驗證類型。 使用此類型時,您可以手動建立授權標頭值以隨著傳出要求一起傳送,並在觸發程序或動作中指定該標頭值。
重要
為了達到最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 進行驗證。 此選項提供卓越的安全性,且無須提供認證。 Azure 會管理此身分識別,並協助確保驗證資訊安全性,讓您無須管理這項敏感性資訊。 若要設定 Azure Logic Apps 的受控識別,請參閱在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取和連線。
下列範例顯示遵循 OAuth 1.0 通訊協定的 HTTPS 要求範例標頭:
Authorization: OAuth realm="Photos",
oauth_consumer_key="dpf43f3p2l4k3l03",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="137131200",
oauth_nonce="wIjqoS",
oauth_callback="http%3A%2F%2Fprinter.example.com%2Fready",
oauth_signature="74KNZJeDHnMBp0EMJ9ZHt%2FXKycU%3D"
在支援原始驗證的觸發程序或動作中,請指定下列屬性值:
屬性 (設計工具) | Property (JSON) | 必要 | 值 | Description |
---|---|---|---|---|
驗證 | type |
Yes | Raw | 要使用的驗證類型 |
值 | value |
Yes | <authorization-header-value> | 要用於驗證的授權標頭值 |
當您使用受保護的參數來處理和保護敏感性資訊時,例如,在用於自動化部署的 Azure Resource Manager 範本中,您可以使用運算式在執行階段存取這些參數值。 這個 HTTP 動作定義範例將驗證 type
指定為 Raw
,並使用 parameters() 函式 來取得參數值:
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@parameters('endpointUrlParam')",
"authentication": {
"type": "Raw",
"value": "@parameters('authHeaderParam')"
}
},
"runAfter": {}
}
受控識別驗證
當支援受控識別驗證的觸發程序或動作上提供受控識別選項時,您的邏輯應用程式可使用此身分識別來驗證 Azure 資源的存取權,這些資源是使用 Microsoft Entra ID 保護,而不是認證、祕密或 Microsoft Entra 權杖。 Azure 會為您管理此身分識別,並協助保護您的認證,因為您不需要管理祕密或直接使用 Microsoft Entra 權杖。 深入了解支援使用受控識別進行 Microsoft Entra 驗證的 Azure 服務。
使用量邏輯應用程式資源可以使用系統指派的身分識別,或單一手動建立的使用者指派身分識別。
標準邏輯應用程式資源類型支援同時啟用系統指派的受控識別和多個使用者指派的受控識別,但您隨時仍只能選取一個身分識別來使用。
注意
預設已啟用系統指派的身分識別在執行階段驗證連線。 此身分識別與您建立連線時所使用的驗證認證或連接字串不同。 如果停用此身分識別,則連線在執行階段沒有作用。 若要檢視此設定,請在邏輯應用程式的功能表上,選取 [設定] 底下的 [身分識別]。
若要讓邏輯應用程式使用受控識別,請遵循在 Azure Logic Apps 中使用受控識別來驗證對 Azure 資源的存取中的步驟。 這些步驟會在邏輯應用程式上啟用受控識別,並設定該身分識別對目標 Azure 資源的存取權。
請先啟用 Azure 函式的驗證,Azure 函式才能使用受控識別。
在支援使用受控識別的觸發程序或動作中,提供這項資訊:
內建觸發程序和動作
屬性 (設計工具) Property (JSON) 必要 值 Description 驗證 type
Yes 受控識別
或ManagedServiceIdentity
要使用的驗證類型 受控識別 identity
No <user-assigned-identity-ID> 要使用的使用者指派的受控識別。 注意:使用系統指派的受控識別時,請勿包含此屬性。 適用對象 audience
Yes <target-resource-ID> 資源識別碼,代表您想要存取的目標資源。
例如,https://storage.azure.com/
為所有儲存體帳戶提供有效的驗證存取權杖。 不過,您也可以為特定儲存體帳戶指定根服務 URL,例如https://fabrikamstorageaccount.blob.core.windows.net
。
注意:某些觸發程序或動作中,可能會隱藏 [對象] 屬性。 若要顯示此屬性,請在觸發程序或動作中開啟 [進階參數] 清單,然後選取 [對象]。
重要事項:請確定目標資源識別碼完全符合 Microsoft Entra ID 所預期的值,包括任何必要的尾端斜線。 因此,所有 Azure Blob 儲存體帳戶的https://storage.azure.com/
資源識別碼需要有尾端斜線。 不過,特定儲存體帳戶的資源識別碼不需要尾端斜線。 若要尋找這些資源識別碼,請檢閱支援 Microsoft Entra ID 的 Azure 服務。當您使用受保護的參數來處理和保護敏感性資訊時,例如,在用於自動化部署的 Azure Resource Manager 範本中,您可以使用運算式在執行階段存取這些參數值。 例如,這個 HTTP 動作定義範例會將驗證
type
指定為ManagedServiceIdentity
,並使用 parameters() 函式 來取得參數值:"HTTP": { "type": "Http", "inputs": { "method": "GET", "uri": "@parameters('endpointUrlParam')", "authentication": { "type": "ManagedServiceIdentity", "audience": "https://management.azure.com/" }, }, "runAfter": {} }
受控連接器觸發程序和動作
屬性 (設計工具) 必要 值 Description 連線名稱 Yes <connection-name> 受控識別 Yes 系統指派的受控識別
或
<user-assigned-managed-identity-name>要使用的驗證類型
封鎖建立連線
如果您的組織不允許使用 Azure Logic Apps 中的連接器連線到特定資源,您可以使用 Azure 原則,封鎖在邏輯應用程式工作流程中為特定連接器建立這些連線的功能。 如需詳細資訊,請參閱封鎖 Azure Logic Apps 中特定連接器所建立的連線。
邏輯應用程式的隔離指引
您可以在 Azure Government 中使用 Azure Logic Apps,以支援 Azure Government 影響等級 5 隔離指引中所述區域中的所有影響層級。 為了滿足這些需求,Azure Logic Apps 支援在具有專用資源的環境中建立和執行工作流程的功能,以便減少邏輯應用程式上其他 Azure 租用戶造成的效能影響,並避免與其他租用戶共用運算資源。
標準邏輯應用程式工作流程可以透過您為輸入流量設定的私人端點,以及用於輸出流量的虛擬網路整合,私密且安全地與 Azure 虛擬網路通訊。 如需詳細資訊,請參閱使用私人端點保護虛擬網路與單一租用戶 Azure Logic Apps 之間的流量。
若要執行您自己的程式碼或執行 XML 轉換,請建立及呼叫 Azure 函式,而不是使用內嵌程式碼功能,或分別提供元件做為對應。 此外,請為您的函式應用程式設定裝載環境,以符合隔離需求。
例如,若要滿足影響層級 5 需求,請透過使用 [隔離] 定價層的 App Service 方案建立函式應用程式,並搭配使用 [隔離] 定價層的 App Service 環境 (ASE)。 在此環境中,函式應用程式會在專用的 Azure 虛擬機器和專用 Azure 虛擬網路上執行,以在應用程式計算隔離之上提供網路隔離,以及最大擴增容量。
如需詳細資訊,請參閱下列文件:
如需隔離的詳細資訊,請參閱下列文件: