From 42b44bb5e2175f4f0383ba43f64cd4cb30396aed Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 22 Feb 2025 12:48:37 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az --- .../az-logic-apps-post-exploitation.md | 55 +++++++++++- .../az-logic-apps-privesc.md | 59 +++++++++++++ .../azure-security/az-services/az-cosmosDB.md | 69 +++++++++++---- .../az-services/az-logic-apps.md | 87 +++++++++++++++---- 4 files changed, 234 insertions(+), 36 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md index 25bc9db69..0f3689161 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md @@ -18,8 +18,47 @@ az logic workflow identity remove/assign \ --system-assigned true \ --user-assigned "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" ``` +Dodatno, sa samo `Microsoft.Logic/workflows/write` možete promeniti neke konfiguracije kao što su dozvoljene dolazne IP adrese ili dani zadržavanja istorije izvršavanja: +```bash +az rest --method PUT \ +--uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Logic/workflows/?api-version=2019-05-01" \ +--headers "Content-Type=application/json" \ +--body '{ +"location": "", +"properties": { +"state": "Enabled", +"definition": { +"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", +"contentVersion": "1.0.0.0", +"parameters": {}, +"triggers": { +"": { +"type": "Request", +"kind": "Http" +} +}, +"actions": {}, +"outputs": {} +}, +"runtimeConfiguration": { +"lifetime": { +"unit": "day", +"count": +} +}, +"accessControl": { +"triggers": { +"allowedCallerIpAddresses": [] +}, +"actions": { +"allowedCallerIpAddresses": [] +} +} +} +}' +``` ### `Microsoft.Web/sites/read`, `Microsoft.Web/sites/write` -Sa ovim dozvolama, možete kreirati ili ažurirati Logic Apps hostovane na App Service Plan-u. To uključuje modifikovanje podešavanja kao što su omogućavanje ili onemogućavanje primene HTTPS-a. +Sa ovim dozvolama, možete kreirati ili ažurirati Logic Apps hostovane na App Service Plan-u. To uključuje modifikovanje podešavanja kao što su omogućavanje ili onemogućavanje HTTPS primene. ```bash az logicapp update \ --resource-group \ @@ -27,7 +66,7 @@ az logicapp update \ --set httpsOnly=false ``` ### `Microsoft.Web/sites/stop/action`, `Microsoft.Web/sites/start/action` || `Microsoft.Web/sites/restart/action` -Sa ovom dozvolom, možete pokrenuti/zaustaviti/restartovati web aplikaciju, uključujući Logic Apps hostovane na App Service Plan-u. Ova akcija osigurava da se prethodno zaustavljena aplikacija ponovo pokrene i nastavi sa svojom funkcionalnošću. Ovo može ometati radne tokove, pokrenuti nepredviđene operacije ili izazvati prekid rada pokretanjem, zaustavljanjem ili restartovanjem Logic Apps iznenada. +Sa ovom dozvolom, možete pokrenuti/zaustaviti/ponovo pokrenuti web aplikaciju, uključujući Logic Apps hostovane na App Service Plan-u. Ova akcija osigurava da se prethodno zaustavljena aplikacija ponovo pokrene i nastavi sa svojom funkcionalnošću. Ovo može ometati radne tokove, pokrenuti neplanirane operacije ili izazvati prekid rada pokretanjem, zaustavljanjem ili ponovnim pokretanjem Logic Apps iznenada. ```bash az webapp start/stop/restart \ --name \ @@ -43,7 +82,7 @@ az logicapp config appsettings set \ --settings "=" ``` ### `Microsoft.Logic/integrationAccounts/write` -Sa ovom dozvolom, možete kreirati, ažurirati ili brisati Azure Logic Apps integracione naloge. To uključuje upravljanje konfiguracijama na nivou integracionog naloga kao što su mape, sheme, partneri, sporazumi i još mnogo toga. +Sa ovom dozvolom, možete kreirati, ažurirati ili brisati Azure Logic Apps integracione naloge. To uključuje upravljanje konfiguracijama na nivou integracionog naloga kao što su mape, sheme, partneri, ugovori i još mnogo toga. ```bash az logic integration-account create \ --resource-group \ @@ -111,6 +150,16 @@ az logic integration-account session create \ } } }' +``` +### `Microsoft.Logic/workflows/regenerateAccessKey/action` + +Korisnici sa ovom dozvolom mogu da regenerišu pristupne ključeve za Logic App, a ako se zloupotrebe, to može dovesti do prekida usluge. +```bash +az rest --method POST \ +--uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Logic/workflows//regenerateAccessKey?api-version=" \ +--body '{"keyType": ""}' \ +--headers "Content-Type=application/json" + ``` ### "*/delete" Sa ovim dozvolama možete obrisati resurse povezane sa Azure Logic Apps diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md index ff22d5f22..652c64a58 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md @@ -32,6 +32,65 @@ az rest \ --body '{}' \ --headers "Content-Type=application/json" ``` +Dodatno, sa samo `Microsoft.Logic/workflows/write` možete promeniti Politiku autorizacije, dajući, na primer, drugom tenant-u mogućnost da pokrene radni tok: +```bash +az rest --method PUT \ +--uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Logic/workflows/?api-version=2016-10-01" \ +--body '{ +"location": "", +"properties": { +"definition": { +"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", +"contentVersion": "1.0.0.0", +"parameters": { +"$connections": { +"defaultValue": {}, +"type": "Object" +} +}, +"triggers": { +"": { +"type": "Request", +"kind": "Http" +} +}, +"actions": {}, +"outputs": {} +}, +"accessControl": { +"triggers": { +"openAuthenticationPolicies": { +"policies": { +"": { +"type": "AAD", +"claims": [ +{ +"name": "iss", +"value": "" +} +] +} +} +} +} +} +} +}' + +``` +### `Microsoft.Logic/workflows/triggers/listCallbackUrl/action` +Možete dobiti URL za povratni poziv okidača i pokrenuti ga. +```bash +az rest --method POST \ +--uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Logic/workflows//triggers//listCallbackUrl?api-version=2019-05-01" +``` +Ovo će vratiti URL za povratni poziv kao što je `https://prod-28.centralus.logic.azure.com:443/workflows/....`. Sada to možemo pokrenuti sa: +```bash +curl --request POST \ +--url "https://prod-28.centralus.logic.azure.com:443/workflows//triggers//paths/invoke?api-version=2019-05-01&sp=%2Ftriggers%2F%2Frun&sv=1.0&sig=" \ +--header 'Content-Type: application/json' \ +--data '{"exampleKey": "exampleValue"}' +``` ### (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/basicPublishingCredentialsPolicies/read`, `Microsoft.Web/sites/write`, `Microsoft.Web/sites/config/list/action`) && (`Microsoft.Web/sites/start/action`) Sa ovim dozvolama, možete implementirati Logic App radne tokove koristeći ZIP datoteke za implementaciju. Ove dozvole omogućavaju akcije kao što su čitanje detalja aplikacije, pristup publikacionim akreditivima, pisanje izmena i listanje konfiguracija aplikacije. Pored dozvola za pokretanje, možete ažurirati i implementirati novu Logic App sa željenim sadržajem. ```bash diff --git a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md index 01b9e70e4..e40cb0e45 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md +++ b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md @@ -4,13 +4,13 @@ ## Azure CosmosDB -**Azure Cosmos DB** je potpuno **upravljana NoSQL, relacijska i vektorska baza podataka** koja nudi vreme odziva u milisekundama sa jednim cifrom, automatsku skalabilnost i dostupnost podržanu SLA-om uz sigurnost na nivou preduzeća. Omogućava brži razvoj aplikacija kroz ključne višeregionalne distribucije podataka, open-source API-je, SDK-ove za popularne jezike i AI funkcije baze podataka kao što su integrisana podrška za vektore i besprekorno Azure AI integrisanje. +**Azure Cosmos DB** je potpuno **upravljana NoSQL, relacijska i vektorska baza podataka** koja nudi vreme odziva u milisekundama sa jednim cifrom, automatsku skalabilnost i dostupnost podržanu SLA-om uz sigurnost na nivou preduzeća. Omogućava brži razvoj aplikacija kroz ključne višeregionalne distribucije podataka, open-source API-je, SDK-ove za popularne jezike i AI funkcije baze podataka kao što su integrisana podrška za vektore i besprekorno Azure AI integraciju. Azure Cosmos DB pruža više API-ja za baze podataka kako bi modelovao podatke iz stvarnog sveta koristeći dokumente, relacione, ključ-vrednost, grafičke i kolone-porodice modele podataka, a ti API-ji su NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin i Table. Jedan ključni aspekt CosmosDB-a je Azure Cosmos Account. **Azure Cosmos Account** deluje kao ulazna tačka za baze podataka. Račun određuje ključne postavke kao što su globalna distribucija, nivoi konzistentnosti i specifični API koji će se koristiti, kao što je NoSQL. Kroz račun možete konfigurisati globalnu replikaciju kako biste osigurali da su podaci dostupni u više regiona za pristup sa niskom latencijom. Pored toga, možete odabrati nivo konzistentnosti koji balansira između performansi i tačnosti podataka, sa opcijama koje se kreću od jake do eventualne konzistentnosti. -Azure Cosmos DB podržava **identitete dodeljene korisnicima** i **sistemom dodeljene upravljane identitete** koji se automatski kreiraju i vezuju za životni ciklus resursa, omogućavajući sigurnu, autentifikaciju zasnovanu na tokenima prilikom povezivanja sa drugim uslugama—pod uslovom da te usluge imaju odgovarajuće dodeljene uloge. Međutim, Cosmos DB nema ugrađeni mehanizam za direktno upitivanje spoljašnjih izvora podataka kao što je Azure Blob Storage. Za razliku od funkcija spoljašnjih tabela SQL Server-a, Cosmos DB zahteva da se podaci unesu u njene kontejnere koristeći spoljne alate kao što su Azure Data Factory, Alat za migraciju podataka ili prilagođeni skripti pre nego što se mogu upititi njenim izvorim mogućnostima upita. +Azure Cosmos DB podržava **identitete dodeljene korisnicima** i **sistemom dodeljene upravljane identitete** koji se automatski kreiraju i vezuju za životni ciklus resursa. Međutim, Cosmos DB nema ugrađeni mehanizam za direktno upitivanje spoljašnjih izvora podataka kao što je Azure Blob Storage. Za razliku od funkcija spoljašnjih tabela SQL Server-a, Cosmos DB zahteva da se podaci unesu u njene kontejnere koristeći spoljne alate kao što su Azure Data Factory, Alat za migraciju podataka ili prilagođeni skripti pre nego što se mogu upititi sa njenim izvorim mogućnostima upita. ### NoSQL Azure Cosmos DB NoSQL API je API zasnovan na dokumentima koji koristi JSON kao svoj format podataka. Pruža SQL-sličnu sintaksu upita za upitovanje JSON objekata, što ga čini pogodnim za rad sa strukturiranim i polu-strukturiranim podacima. Krajnja tačka usluge je: @@ -18,16 +18,16 @@ Azure Cosmos DB NoSQL API je API zasnovan na dokumentima koji koristi JSON kao s https://.documents.azure.com:443/ ``` #### Baze podataka -Unutar naloga, možete kreirati jednu ili više baza podataka, koje služe kao logičke grupe kontejnera. Baza podataka deluje kao granica za upravljanje resursima i korisničkim dozvolama. Baze podataka mogu deliti obezbeđeni protok između svojih kontejnera ili dodeliti posvećeni protok pojedinačnim kontejnerima. +Unutar naloga, možete kreirati jednu ili više baza podataka, koje služe kao logičke grupe kontejnera. Baza podataka deluje kao granica za upravljanje resursima i korisničkim dozvolama. Baze podataka mogu ili omogućiti više kontejnera da koriste zajednički kapacitet performansi ili dati svakom kontejneru svoju posvećenu snagu. #### Kontejneri -Osnovna jedinica za skladištenje podataka je kontejner, koji sadrži JSON dokumente i automatski se indeksira za efikasno pretraživanje. Kontejneri su elastično skalabilni i distribuirani preko particija, koje određuje korisnički definisan ključ particije. Ključ particije je ključan za osiguranje optimalne performanse i ravnomernu distribuciju podataka. Na primer, kontejner može čuvati podatke o kupcima, sa "customerId" kao ključem particije. +Osnovna jedinica skladištenja podataka je kontejner, koji sadrži JSON dokumente i automatski se indeksira za efikasno pretraživanje. Kontejneri su elastično skalabilni i distribuirani preko particija, koje određuje korisnički definisani ključ particije. Ključ particije je ključan za osiguranje optimalnih performansi i ravnomernu distribuciju podataka. Na primer, kontejner može čuvati podatke o kupcima, sa "customerId" kao ključem particije. #### Ključne karakteristike -**Globalna distribucija**: Omogućite ili onemogućite Geo-redundanciju za replikaciju između regiona i višeregionalne upise za poboljšanu dostupnost. -**Mreža i bezbednost**: između javnih (svi/izabrane mreže) ili privatnih krajnjih tačaka za povezivanje. Sigurne veze sa TLS 1.2 enkripcijom. Podržava CORS (Deljenje resursa između različitih izvora) za kontrolisani pristup resursima. -**Backup i oporavak**: iz Periodičnih, Kontinuiranih (7 dana) ili Kontinuiranih (30 dana) politika rezervnih kopija sa konfigurisanim intervalima i zadržavanjem. -**Enkripcija podataka**: Podrazumevani ključevi koje upravlja servis ili ključevi koje upravlja korisnik (CMK) za enkripciju (izbor CMK je nepovratan). +- **Globalna distribucija**: Omogućite ili onemogućite Geo-redundanciju za replikaciju između regiona i višeregionalne pisanje za poboljšanu dostupnost. +- **Mreža i bezbednost**: između javnih (svi/izabrani mreže) ili privatnih krajnjih tačaka za povezivanje. Sigurne veze sa TLS 1.2 enkripcijom. Podržava CORS (Cross-Origin Resource Sharing) za kontrolisani pristup resursima. Microsoft Defender za Cloud može biti omogućen. Da biste uspostavili vezu, možete koristiti ključeve. +- **Backup i oporavak**: iz Periodičnih, Kontinuiranih (7 dana) ili Kontinuiranih (30 dana) politika rezervnih kopija sa konfigurisanim intervalima i zadržavanjem. +- **Enkripcija podataka**: Podrazumevani ključevi koje upravlja servis ili ključevi koje upravlja korisnik (CMK) za enkripciju (izbor CMK je nepovratan). #### Enumeracija @@ -67,6 +67,19 @@ az cosmosdb sql trigger list --account-name --container-name --container-name --database-name --resource-group + +## MongoDB (vCore) +# Install az cli extension +az extension add --name cosmosdb-preview +# List all MongoDB databases in a specified Azure Cosmos DB account +az cosmosdb mongocluster list +az cosmosdb mongocluster show --cluster-name --resource-group +# Get firewall rules +az cosmosdb mongocluster firewall rule list --cluster-name --resource-group +# Connect to in +brew install mongosh +mongosh "mongodb://:@.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retryWrites=false" --username --password + ``` {{#endtab }} @@ -116,9 +129,10 @@ Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "" -A {{#endtab }} {{#endtabs }} -#### Povezivanje +#### Veza -Za povezivanje je potrebna azure-cosmosDB (pip install azure-cosmos) biblioteka. Pored toga, krajnja tačka i ključ su ključne komponente za uspostavljanje veze. +Ima 2 tipa ključeva, Read-write (puni) i Read-only. Oni daju naznačen pristup svim bazama podataka, kolekcijama i podacima unutar Cosmos DB naloga. +Za povezivanje je potrebna azure-cosmosDB biblioteka (pip install azure-cosmos). Pored toga, krajnja tačka i ključ su ključne komponente za uspostavljanje veze. ```python from azure.cosmos import CosmosClient, PartitionKey @@ -157,7 +171,7 @@ print("All items in the container:") for item in all_items: print(item) ``` -Drugi način uspostavljanja veze je korišćenje **DefaultAzureCredential()**. Samo je potrebno prijaviti se (az login) sa nalogom koji ima dozvole i izvršiti ga. U ovom slučaju, mora se izvršiti dodeljivanje uloge, dajući potrebne dozvole (vidi za više). +Drugi način uspostavljanja veze je korišćenje **DefaultAzureCredential()**. Samo je potrebno prijaviti se (az login) sa nalogom koji ima potrebne dozvole i izvršiti ga. U ovom slučaju, mora se izvršiti dodeljivanje uloge, dajući potrebne dozvole (vidi za više). ```python from azure.identity import DefaultAzureCredential from azure.cosmos import CosmosClient @@ -191,16 +205,16 @@ mongodb://:/ U MongoDB-u, možete kreirati jednu ili više baza podataka unutar instance. Svaka baza podataka služi kao logička grupa kolekcija i pruža granicu za organizaciju i upravljanje resursima. Baze podataka pomažu u logičkom razdvajanju i upravljanju podacima, kao što su za različite aplikacije ili projekte. #### Kolekcije -Osnovna jedinica skladištenja podataka u MongoDB-u je kolekcija, koja sadrži dokumente i dizajnirana je za efikasno pretraživanje i fleksibilan dizajn šeme. Kolekcije su elastično skalabilne i mogu podržati operacije sa visokim protokom preko više čvorova u distribuiranom okruženju. +Osnovna jedinica skladištenja podataka u MongoDB-u je kolekcija, koja sadrži dokumente i dizajnirana je za efikasno pretraživanje i fleksibilan dizajn šeme. Kolekcije su elastično skalabilne i mogu podržati operacije visokog protoka na više čvorova u distribuiranom okruženju. -#### Ključne karakteristike tipa Request unit (RU) +#### Ključne karakteristike Request unit (RU) tipa **Globalna distribucija**: Omogućite ili onemogućite Geo-redundanciju za replikaciju između regiona i Multi-region Writes za poboljšanu dostupnost. -**Mreža i bezbednost**: između javnih (svi/izabrani mreže) ili privatnih krajnjih tačaka za povezivanje. Sigurne veze sa TLS 1.2 enkripcijom. Podržava CORS (Cross-Origin Resource Sharing) za kontrolisani pristup resursima. +**Mreža i bezbednost**: između javnih (svi/izabrani mreže) ili privatnih krajnjih tačaka za povezivanje. Sigurne veze sa TLS 1.2 enkripcijom. Podržava CORS (Cross-Origin Resource Sharing) za kontrolisani pristup resursima. Da biste uspostavili vezu, možete koristiti ključeve. **Backup i oporavak**: iz Periodičnih, Kontinuiranih (7 dana, besplatno), ili Kontinuiranih (30 dana, plaćeno) politika rezervnih kopija sa konfigurisanim intervalima i zadržavanjem. **Enkripcija podataka**: Podrazumevani ključevi koje upravlja servis ili ključevi koje upravlja korisnik (CMK) za enkripciju (izbor CMK-a je nepovratan). -#### Ključne karakteristike tipa vCore klaster -**Globalna distribucija**: Omogućite čitanje replike u drugom Azure regionu za visoku dostupnost i podršku za prebacivanje. Konfigurišite ime replike, region i skladište po deljenju. +#### Ključne karakteristike vCore klaster tipa +**Globalna distribucija**: Omogućite čitanje replike u drugom Azure regionu za visoku dostupnost i podršku za prebacivanje. Konfigurišite ime replike, region i skladište po shard-u. **Mreža i bezbednost**: Podržava javni pristup sa dodeljenim javnim IP adresama i privatni pristup. Ograničite veze koristeći pravila vatrozida—podrazumevano, javne IP adrese nisu dozvoljene. **Enkriptovane veze**: Sprovodi TLS enkripciju za sigurnu transmisiju podataka. @@ -229,10 +243,23 @@ az cosmosdb mongodb database list --account-name --resource-group # List all collections in a specific MongoDB database within an Azure Cosmos DB account az cosmosdb mongodb collection list --account-name --database-name --resource-group +#RBAC FUNCTIONALITIES MUST BE ENABLED TO USE THIS # List all role definitions for MongoDB within an Azure Cosmos DB account az cosmosdb mongodb role definition list --account-name --resource-group # List all user definitions for MongoDB within an Azure Cosmos DB account az cosmosdb mongodb user definition list --account-name --resource-group + +## MongoDB (vCore) +# Install az cli extension +az extension add --name cosmosdb-preview +# List all MongoDB databases in a specified Azure Cosmos DB account +az cosmosdb mongocluster list +az cosmosdb mongocluster show --cluster-name --resource-group +# Get firewall rules +az cosmosdb mongocluster firewall rule list --cluster-name --resource-group +# Connect to in +brew install mongosh +mongosh "mongodb://:@.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retryWrites=false" --username --password ``` {{#endtab }} @@ -273,14 +300,16 @@ Get-AzCosmosDBMongoDBRoleDefinition -AccountName -ResourceGroupNa #### Veza -Ovde možete pronaći lozinku pomoću ključeva ili metodom opisanoj u sekciji privesc. +RU MongoDB tip u CosmoDB ima 2 tipa ključeva, Read-write (puno) i Read-only. Oni daju navedeni pristup svim bazama podataka, kolekcijama i podacima unutar Cosmos DB naloga. +Za lozinku možete koristiti ključeve ili metodu opisanu u sekciji privesc. ```python from pymongo import MongoClient # Updated connection string with retryWrites=false connection_string = "mongodb://.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retryWrites=false" -# Create the client +# Create the client. The password and username is a custom one if the type is "vCore cluster". +# In case that is a Request unit (RU) the username is the account name and the password is the key of the cosomosDB account. client = MongoClient(connection_string, username="", password="") # Access the database @@ -306,6 +335,10 @@ document = { result = collection.insert_one(document) print(f"Inserted document with ID: {result.inserted_id}") ``` +Ili korišćenjem korisnika unutar mongo: +```bash +mongosh "mongodb://:@.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retrywrites=false" +``` ## Reference - [https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api](https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api) diff --git a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md index af29de44c..3d120bfa7 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md @@ -10,9 +10,6 @@ Logic Apps pruža vizuelni dizajner za kreiranje radnih tokova sa **širokim spe Kada kreirate Logic App, morate ili kreirati ili povezati eksterni nalog za skladištenje koji čuva stanje radnog toka, istoriju izvršavanja i artefakte. Ovo skladište može biti konfigurisano sa dijagnostičkim podešavanjima za praćenje i može biti zaštićeno mrežnim pristupnim ograničenjima ili integrisano u virtuelnu mrežu kako bi se kontrolisao ulazni i izlazni saobraćaj. -### Upravljane Identitete -Logic Apps ima **sistemom dodeljenu upravljanu identitet** vezanu za svoj životni ciklus. Kada je omogućena, dobija jedinstveni ID objekta (principal) koji se može koristiti sa Azure RBAC za dodeljivanje potrebnih dozvola za siguran pristup drugim Azure uslugama. Ovo eliminiše potrebu za čuvanjem kredencijala u kodu jer se identitet autentifikuje putem Microsoft Entra ID. Pored toga, možete koristiti i **korisnički dodeljene upravljane identitete**, koji se mogu deliti između više resursa. Ove identitete omogućavaju radnim tokovima i Logic Apps da sigurno komuniciraju sa spoljnim sistemima, osiguravajući da su potrebne kontrole pristupa i dozvole upravljane centralno kroz Azure-ov sigurnosni okvir. - ### Primeri - **Automatizacija Podatkovnih Cevi**: Logic Apps mogu automatizovati **procese prenosa i transformacije podataka** u kombinaciji sa Azure Data Factory. Ovo je korisno za kreiranje skalabilnih i pouzdanih podatkovnih cevi koje premeštaju i transformišu podatke između različitih skladišta podataka, kao što su Azure SQL Database i Azure Blob Storage, pomažući u analitici i poslovnoj inteligenciji. @@ -40,15 +37,66 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741 Postoji nekoliko opcija hostovanja: * **Potrošnja** -- **Višekorisnički**: pruža deljene računske resurse, funkcioniše u javnom oblaku i prati model cena po operaciji. Ovo je idealno za lagane i ekonomične radne opterećenja. +- **Višekorisnički**: pruža deljene računarske resurse, funkcioniše u javnom oblaku i prati model naplate po operaciji. Ovo je idealno za lagane i ekonomične radne opterećenja. Ovo implementira "Jedan Tok". * **Standard** -- **Plan usluge radnog toka**: posvećeni računski resursi sa VNET integracijom za umrežavanje i naplaćuje se po instanci plana usluge radnog toka. Pogodno je za zahtevnija radna opterećenja koja zahtevaju veću kontrolu. -- **Okruženje usluge aplikacija V3** posvećeni računski resursi sa potpunom izolacijom i skalabilnošću. Takođe se integriše sa VNET za umrežavanje i koristi model cena zasnovan na instancama usluge aplikacija unutar okruženja. Ovo je idealno za aplikacije na nivou preduzeća koje zahtevaju visoku izolaciju. -- **Hibridno** dizajnirano za lokalnu obradu i podršku za više oblaka. Omogućava resurse za obradu koje upravlja korisnik sa lokalnim pristupom mreži i koristi Kubernetes Event-Driven Autoscaling (KEDA). +- **Plan usluge radnog toka**: posvećeni računarski resursi sa VNET integracijom za umrežavanje i naplaćuje po instanci plana usluge radnog toka. Pogodno je za zahtevnija radna opterećenja koja zahtevaju veću kontrolu. +- **Okruženje usluge aplikacija V3** posvećeni računarski resursi sa potpunom izolacijom i skalabilnošću. Takođe se integriše sa VNET za umrežavanje i koristi model naplate zasnovan na instancama usluge aplikacija unutar okruženja. +- **Hibridno** dizajnirano za lokalnu obradu i podršku za više oblaka. Omogućava resurse za obradu koje upravlja korisnik sa lokalnim pristupom mreži i koristi Kubernetes Event-Driven Autoscaling (KEDA). Oslanja se na Okruženje povezane sa kontejnerima. -### Radni tokovi +### Ključne karakteristike +- **Skladištenje**: Logic Apps zahteva eksterni Azure Storage nalog za čuvanje stanja radnog toka, istorije izvršenja… i mora biti u istoj grupi resursa kao Logic App. +- **Mrežno povezivanje i bezbednost**: Logic Apps mogu biti konfigurisane sa javnim ili privatnim pristupom. Po defaultu, aplikacija je otvorena za internet, ali može biti integrisana sa Azure Virtual Network za izolovanu povezanost. +- **Uvidi u aplikacije**: Upravljanje performansama aplikacija (APM) putem Azure Monitor Application Insights može biti omogućeno za praćenje performansi, otkrivanje anomalija i pružanje analitike. +- **Kontrola pristupa**: Logic Apps podržavaju identitete koje upravlja sistem i identitete koje upravlja korisnik. -Radni tokovi u Azure Logic Apps su osnovni automatizovani procesi koji orkestriraju akcije širom različitih usluga. Radni tok počinje okidačem—događajem ili rasporedom—i zatim izvršava niz akcija, kao što su pozivanje API-ja, obrada podataka ili interakcija sa drugim Azure uslugama. Radni tokovi se mogu definisati vizuelno koristeći dizajner ili putem koda (JSON definicije) i upravljaju se putem komandi kao što su az logic workflow create, az logic workflow show i az logic workflow update. Takođe podržavaju upravljanje identitetom (putem podgrupe identiteta) za sigurno upravljanje dozvolama i integracijama sa spoljnim resursima. +### "Jedan" Tokovi + +**Tok** je strukturisana sekvenca automatizovanih koraka ili zadataka koji izvršavaju određeni proces ili cilj. Definiše kako različite akcije, uslovi i odluke međusobno deluju kako bi se postigao željeni ishod, pojednostavljujući operacije i smanjujući manuelni trud. Tokovi mogu integrisati više sistema, pokretati događaje i pravila, osiguravajući doslednost i efikasnost u procesima. + +Azure Logic Apps pruža funkcionalnost **kreiranja jednog toka bez potrebe za Logic App** samim tim. + +Svaki tok ima različite **okidače**. Ovi okidači su koraci koje tok prati. Svaki okidač ima svoje parametre koji se mogu razlikovati u zavisnosti od tipa okidača: +- Ime veze +- **Tip autentifikacije** koji može biti, Pristupni ključ, Microsoft Entra ID, autentifikacija integrisanog servisnog principa i Logic Apps Managed Identity. + +Okidači takođe imaju različite postavke: +- Validacija šeme: Osigurava da dolazni podaci prate unapred definisanu strukturu. +- Kontrola konkurentnosti: Ograničava broj paralelnih izvršenja. +- Uslovi okidača: uslovi koji moraju biti ispunjeni pre nego što se okidač aktivira. +- Mrežno povezivanje: Konfiguriše veličinu paketa za prenos podataka i omogućava suzbijanje zaglavlja radnog toka u odgovorima. +- **Bezbednost**: Omogućava **Sigurne Ulaze/Izlaze za skrivanje** osetljivih podataka u zapisima i izlazima. + +**Postavke i API veze:** + +Tok ima različite postavke kao što su: +- Dozvoljene ulazne IP adrese: Ova postavka vam omogućava da ograničite ko može da pokrene ili započne vašu Logic App. Opcije su Bilo koja IP, Samo druge Logic Apps i Specifični opsezi IP adresa. +- Integracioni nalog: Ovde možete povezati svoju Logic App sa Integracionim nalogom. +- Visok protok: Ova postavka omogućava vašoj Logic App da brzo obradi više zahteva. +- Zadržavanje istorije izvršenja: koliko dugo se čuva istorija izvršenja vaše Logic App. + +Možete videti različite API veze koje tok ima. Unutar svake od ovih veza imaju različite osobine i mogućnost uređivanja API veze gde se tip autentifikacije može promeniti. + +**Istorija i verzije:** +Ima opciju pristupa **istoriji** različitih izvršenja, prikazuje, Postavke, Izlaz, Parametre i Kod. + +Takođe ima opciju pristupa različitim **verzijama** toka, gde možete proveriti kod i promeniti trenutni tok sa starijom verzijom. + +**Autorizacija:** +Azure Logic Apps podržavaju **politike autorizacije** sa Entra ID za osiguranje okidača zasnovanih na zahtevima zahtevajući važeći pristupni token. Ovaj token mora uključivati specifične tvrdnje: +- Izdavač (iss) za verifikaciju identiteta provajdera +- Publika (aud) da osigura da je token namenjen za Logic App +- Subjekt (sub) za identifikaciju pozivaoca +- JWT ID (identifikator JSON Web Token-a) +- Prilagođena tvrdnja + +Kada se zahtev primi, Logic Apps validira token prema ovim tvrdnjama i omogućava izvršenje samo ako se poklapaju sa konfigurisanom politikom. Ovo se može koristiti za omogućavanje drugom korisniku da pokrene tok ili odbijanje okidača iz drugih izvora, na primer, samo omogućavanje okidača ako dolazi sa https://login.microsoftonline.com/. + +**Pristupni ključevi:** +Kada prvi put sačuvate okidač zasnovan na zahtevu, Logic Apps automatski kreira jedinstvenu tačku pristupa sa SAS potpisom (kreiranim iz Pristupnog ključa) koji daje dozvolu za pozivanje toka. Ovaj SAS potpis je ugrađen u URL okidača. Ovaj ključ se može regenerisati i daće novi SAS potpis, ali ključevi se ne mogu listati. + +URL za pozivanje sa Pristupnim ključem: + +https://.logic.azure.com:443/workflows//triggers//paths/invoke?api-version=&sp=%2Ftriggers%2F%2Frun&sv=&sig= ### Enumeracija @@ -102,11 +150,6 @@ az rest \ --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/versions/{versionName}?api-version=2016-06-01" \ --headers "Content-Type=application/json" -az rest \ ---method GET \ ---uri "https://examplelogicapp1994.scm.azurewebsites.net/api/functions/admin/download?includeCsproj=true&includeAppSettings=true" \ ---headers "Content-Type=application/json" - # List all Logic Apps in the specified resource group az logicapp list --resource-group @@ -115,6 +158,20 @@ az logicapp show --name --resource-group # List all application settings for a specific Logic App az logicapp config appsettings list --name --resource-group + +# Get a Parameters from an Azure App Service using Azure REST API +az rest --method GET --url "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{app-service-name}/hostruntime/admin/vfs/parameters.json?api-version=2018-11-01&relativepath=1" + +# Get webhook-triggered workflows from an Azure Logic App using Azure REST API +az rest --method GET --url "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{logic-app-name}/hostruntime/runtime/webhooks/workflow/api/management/workflows?api-version=2018-11-01" + +# Get workflows from an Azure Logic App using Azure REST API +az rest --method GET --url "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{logic-app-name}/workflows?api-version=2018-11-01" + +# Get details of a specific workflow including its connections and parameters in Azure Logic Apps using Azure REST API +az rest --method GET --uri "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{logic-app-name}/workflows/{workflow-name}?api-version=2018-11-01&\$expand=connections.json,parameters.json" + + ``` {{#endtab }} @@ -147,7 +204,7 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "" -Name "