{"id":24963,"date":"2026-02-28T12:32:25","date_gmt":"2026-02-28T11:32:25","guid":{"rendered":"https:\/\/whiteduck.de\/?p=24963"},"modified":"2026-02-28T12:33:58","modified_gmt":"2026-02-28T11:33:58","slug":"terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc","status":"publish","type":"post","link":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/","title":{"rendered":"Terraform Scaffolding f\u00fcr Azure \u2013 jetzt secretless mit OIDC"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><\/div><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1170px + 0px );margin-left: calc(-0px \/ 2 );margin-right: calc(-0px \/ 2 );\"><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;width:100%;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div class=\"fusion-clearfix\"><\/div><\/div><\/div><div class=\"fusion-title title fusion-title-1 fusion-sep-none fusion-title-text fusion-title-size-one\" style=\"--awb-margin-top-small:0px;--awb-margin-right-small:0px;--awb-margin-bottom-small:20px;--awb-margin-left-small:0px;\"><h1 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:32;line-height:1.31;\"><\/p>\n<p>Terraform Scaffolding f\u00fcr Azure \u2013 jetzt secretless mit OIDC<\/p>\n<p><\/h1><\/div><div class=\"fusion-text fusion-text-1\"><\/div><\/p>\n\n\n<div style=\"height:27px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Inhalt<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#DasProblemmitSecretsinCI\/CDPipelines\">Das Problem mit Secrets in CI\/CD-Pipelines<\/a><\/li>\n\n\n\n<li><a href=\"#WasistTerraformScaffoldingf\u00fcrAzure\">Was ist Terraform Scaffolding f\u00fcr Azure<\/a><\/li>\n\n\n\n<li><a href=\"#Wasistneu?OIDCalsDefault\">Was ist neu? OIDC als Default<\/a><\/li>\n\n\n\n<li><a href=\"#WarumOIDC?DieVorteileaufeinenBlick\">Warum OIDC? Die Vorteile auf einen Blick<\/a><\/li>\n\n\n\n<li><a href=\"#WiefunktioniertWorkloadIdentityFederation?\">Wie funktioniert Workload Identity Federation?<\/a><\/li>\n\n\n\n<li><a href=\"#QuickStart:In5MinutensecretlessaufAzure\">Quick Start: In 5 Minuten secretless auf Azure<\/a><\/li>\n\n\n\n<li><a href=\"Migration: Von Client Secret zu OIDC\">Migration: Von Client Secret zu Workload Identity Federation<\/a><\/li>\n\n\n\n<li><a href=\"#Fazit\" type=\"internal\" id=\"#Fazit\">Fazit<\/a><\/li>\n<\/ul>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DasProblemmitSecretsinCI\/CDPipelines\">Das Problem mit Secrets in CI\/CD-Pipelines<\/h3>\n\n\n\n<p>Secrets in CI\/CD-Pipelines haben ein Ablaufdatum. Und irgendwann vergisst jemand, sie rechtzeitig zu erneuern.  Wer Infrastructure as Code mit Terraform auf Azure betreibt, kennt das Spiel: Ein Service Principal wird erstellt, das Client Secret landet im Key Vault oder direkt in den Pipeline-Variablen, und alles l\u00e4uft. Bis das Secret abl\u00e4uft. Oder geleakt wird. Oder jemand vergisst, es zu rotieren.<\/p>\n\n\n\n<p>Die Realit\u00e4t sieht so aus:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Secrets m\u00fcssen rotiert werden&nbsp;und das regelm\u00e4\u00dfig. Wer das vergisst, riskiert Ausf\u00e4lle.<\/li>\n\n\n\n<li>Secrets k\u00f6nnen geleakt werden. Ob durch Logs, fehlerhafte Konfiguration oder kompromittierte Systeme.<\/li>\n\n\n\n<li>Secrets sind Angriffsvektoren. Ein gestohlenes Client Secret gibt vollen Zugriff auf Azure-Ressourcen.<\/li>\n<\/ul>\n\n\n\n<p>Die gute Nachricht: Es gibt einen besseren Weg. Mit&nbsp;<strong>Workload Identity Federation<\/strong>&nbsp;(OIDC) k\u00f6nnen GitHub Actions und Azure DevOps Pipelines sich direkt bei Azure authentifizieren ganz ohne gespeicherte Secrets.<\/p>\n\n\n\n<p>In diesem Beitrag zeigen wir, wie unser aktualisiertes&nbsp;<a href=\"https:\/\/github.com\/whiteducksoftware\/terraform-scaffold-for-azure\" type=\"link\" id=\"https:\/\/github.com\/whiteducksoftware\/terraform-scaffold-for-azure\" target=\"_blank\" rel=\"noreferrer noopener\">Terraform Scaffolding f\u00fcr Azure&nbsp;<\/a>diesen Ansatz out-of-the-box unterst\u00fctzt und wie Sie in wenigen Minuten auf &#8220;secretless&#8221; umsteigen k\u00f6nnen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"WasistTerraformScaffoldingf\u00fcrAzure?\">Was ist Terraform Scaffolding f\u00fcr Azure?<\/h3>\n\n\n\n<p>Bevor man mit Terraform auf Azure loslegen kann, braucht man ein solides Fundament: Einen Service Principal mit den richtigen Berechtigungen, ein Storage Account f\u00fcr den Terraform State und bisher einen sicheren Ort f\u00fcr Secrets. Genau das haben wir vor einiger Zeit mit unserem Terraform Scaffold for Azure gel\u00f6st. Wer den <a href=\"https:\/\/whiteduck.de\/production-ready-terraform-project-scaffolding-for-azure\/\" target=\"_blank\" rel=\"noreferrer noopener\">urspr\u00fcnglichen Ank\u00fcndigungspost<\/a> noch nicht kennt: Das Repository bietet ein einfaches Setup-Skript, das in wenigen Minuten alles N\u00f6tige provisioniert.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Was bekommen Sie Out-of-the-Box?<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Komponente<\/strong><\/td><td><strong>Beschreibung<\/strong><\/td><\/tr><tr><td><strong>Service Principal<\/strong><\/td><td>Mit Contributor- und Role Based Access Control Administrator-Rolle (eingeschr\u00e4nkt durch Conditions)<\/td><\/tr><tr><td><strong>Storage Account<\/strong><\/td><td>F\u00fcr den Terraform State mit aktivierter Soft-Delete-Policy<\/td><\/tr><tr><td><strong>Entra ID Berechtigungen<\/strong><\/td><td>Der Service Principal erh\u00e4lt Graph API Permissions (Group.ReadWrite.All, GroupMember.ReadWrite.All, User.Read.All), um mit dem&nbsp;azuread&nbsp;Provider Gruppen und Identit\u00e4ten zu verwalten. Erfordert Admin Consent.<\/td><\/tr><tr><td><strong>Bash &amp; PowerShell Support<\/strong><\/td><td>Skripte f\u00fcr beide Umgebungen<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Das Ziel war von Anfang an: In unter 10 Minuten produktionsbereit ohne manuelles Klicken im Azure Portal.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/whiteducksoftware\/terraform-scaffold-for-azure\" target=\"_blank\" rel=\"noreferrer noopener\">Zum Repository<\/a><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Wasistneu?OIDCalsDefault\">Was ist neu? OIDC als Default<\/h3>\n\n\n\n<p>Die gr\u00f6\u00dfte \u00c4nderung im Repository:&nbsp;OIDC ist jetzt der Standard.<\/p>\n\n\n\n<p>Bisher lag der Fokus auf dem klassischen Ansatz mit Client Secret + Key Vault. Das funktioniert, bringt aber die bekannten Nachteile mit sich. Secrets m\u00fcssen sicher gespeichert, rotiert und verwaltet werden.<\/p>\n\n\n\n<p>Mit dem Update haben wir die Struktur umgestellt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/whiteducksoftware\/terraform-scaffold-for-azure\" target=\"_blank\" rel=\"noreferrer noopener\">Root Verzeichnis<\/a>: Workload Identity Federation f\u00fcr GitHub Actions oder Azure DevOps \u2013&nbsp;empfohlen<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/whiteducksoftware\/terraform-scaffold-for-azure\/tree\/main\/client-secret\" type=\"link\" id=\"https:\/\/github.com\/whiteducksoftware\/terraform-scaffold-for-azure\/tree\/main\/client-secret\" target=\"_blank\" rel=\"noreferrer noopener\">client-secret Verzeichnis<\/a>: Klassischer Ansatz mit Key Vault \u2013 f\u00fcr Szenarien, in denen OIDC nicht m\u00f6glich ist<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Was bedeutet &#8220;secretless&#8221;?<\/h4>\n\n\n\n<p>Bei der OIDC-Variante wird kein Client Secret mehr erstellt oder gespeichert. Stattdessen stellt GitHub Actions oder Azure DevOps ein kurzlebiges Token aus, das Azure direkt gegen die Federated Credential validiert. Das Ergebnis:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kein Secret im Key Vault<\/li>\n\n\n\n<li>Kein Secret in Pipeline-Variablen<\/li>\n\n\n\n<li>Kein Secret, das rotiert werden muss<\/li>\n\n\n\n<li>Kein Secret, das geleakt werden kann<\/li>\n<\/ul>\n\n\n\n<p>Der Service Principal existiert weiterhin, aber ohne permanente Credentials.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"WarumOIDC?DieVorteileaufeinenBlick\">Warum ist OIDC sicherer?<\/h3>\n\n\n\n<p>Mit Client Secrets gibt es immer ein Zeitfenster, in dem ein gestohlenes Secret missbraucht werden kann. Selbst wenn das Secret nie absichtlich geteilt wird, kann es durch Debug-Logs, fehlerhafte Maskierung oder kompromittierte Backups nach au\u00dfen gelangen. Einmal geleakt, hat ein Angreifer vollen Zugriff, bis jemand das Secret bemerkt und rotiert.<\/p>\n\n\n\n<p>Bei OIDC existiert dieses Zeitfenster praktisch nicht. Das Token, das GitHub ausstellt, ist nur wenige Minuten g\u00fcltig und an einen spezifischen Workflow-Run gebunden. Selbst wenn es abgefangen w\u00fcrde, w\u00e4re es bereits abgelaufen, bevor ein Angreifer es nutzen k\u00f6nnte.<\/p>\n\n\n\n<p id=\"WarumOIDC?DieVorteileaufeinenBlick\">Noch wichtiger: Die Kontrolle liegt nicht mehr beim Secret, sondern bei der Herkunft. Entra ID pr\u00fcft, ob das Token tats\u00e4chlich von GitHub stammt, ob es f\u00fcr das richtige Repository ausgestellt wurde und ob das Environment \u00fcbereinstimmt. Ein Fork des Repositories oder ein Workflow aus einem anderen Branch wird abgelehnt, selbst wenn der Angreifer Zugriff auf die GitHub Secrets hat.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Vergleich: Client Secret vs. OIDC<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Aspekt<\/strong><\/td><td><strong>Client Secret<\/strong><\/td><td><strong>OIDC (Workload Identity Federation)<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Secret-Rotation n\u00f6tig?<\/td><td>Ja, alle 1-2 Jahre<\/td><td>Nein<\/td><\/tr><tr><td>Leak-Risiko<\/td><td>Vorhanden<\/td><td>Eliminiert<\/td><\/tr><tr><td>Kontrolle \u00fcber Quelle<\/td><td>Keine (wer das Secret hat, hat Zugriff)<\/td><td>Repo, Branch, Environment<\/td><\/tr><tr><td>Empfohlen von Microsoft<\/td><td>Legacy<\/td><td>Best Practice<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"WiefunktioniertWorkloadIdentityFederation?\">Wie funktioniert Workload Identity Federation?<\/h3>\n\n\n\n<p>F\u00fcr alle, die verstehen wollen, was unter der Haube passiert, hier ist der Ablauf der OIDC-Authentifizierung dargestellt.<\/p>\n\n\n\n<p>Der Authentifizierungsfluss in vier Schritten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GitHub Actions \/ Azure DevOps startet&nbsp;und fordert ein OIDC-Token vom eigenen Identity Provider an<\/li>\n\n\n\n<li>Der CI\/CD-Provider stellt ein signiertes JWT aus, das Informationen enth\u00e4lt wie: Repository, Branch, Environment, Workflow<\/li>\n\n\n\n<li>Das Token wird an Entra ID gesendet, zusammen mit der Client ID des Service Principals<\/li>\n\n\n\n<li>Entra ID validiert das Token&nbsp;gegen die konfigurierte Federated Credential \u2013 stimmen Issuer, Subject und Audience \u00fcberein, wird ein Azure Access Token ausgestellt<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" width=\"904\" height=\"410\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/Picture-1-terraform-scaffolding.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/Picture-1-terraform-scaffolding.png\" alt=\"\" class=\"lazyload wp-image-24968\" style=\"aspect-ratio:2.20492396813903;width:913px;height:auto\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27904%27%20height%3D%27410%27%20viewBox%3D%270%200%20904%20410%27%3E%3Crect%20width%3D%27904%27%20height%3D%27410%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/Picture-1-terraform-scaffolding-200x91.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/Picture-1-terraform-scaffolding-300x136.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/Picture-1-terraform-scaffolding-400x181.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/Picture-1-terraform-scaffolding-600x272.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/Picture-1-terraform-scaffolding-768x348.png 768w, https:\/\/whiteduck.de\/wp-content\/uploads\/Picture-1-terraform-scaffolding-800x363.png 800w, https:\/\/whiteduck.de\/wp-content\/uploads\/Picture-1-terraform-scaffolding.png 904w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 904px) 100vw, 904px\" \/><figcaption class=\"wp-element-caption\">Azure Access Token<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Die Federated Credential definiert drei Pr\u00fcfpunkte. Nur wenn alle drei Felder exakt \u00fcbereinstimmen, wird der Zugriff gew\u00e4hrt. Ein Token aus einem anderen Repository oder Branch wird abgelehnt.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td>Feld<\/td><td>Beispiel GitHub<\/td><td>Beispiel Azure DevOps<\/td><\/tr><\/thead><tbody><tr><td>Issuer<\/td><td>https:\/\/token.actions.githubusercontent.com<\/td><td>https:\/\/vstoken.dev.azure.com\/&lt;org-id&gt;<\/td><\/tr><tr><td>Subject<\/td><td>repo:org\/repo:environment:prod<\/td><td>sc:\/\/org\/project\/service-connection<\/td><\/tr><tr><td>Audience<\/td><td>api:\/\/AzureADTokenExchange<\/td><td>api:\/\/AzureADTokenExchange<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"QuickStart:In5MinutensecretlessaufAzure\">Quick Start: In 5 Minuten secretless auf Azure<\/h3>\n\n\n\n<p>Hier ist die Kurzanleitung, um das Terraform Scaffolding mit OIDC aufzusetzen.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Voraussetzungen<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure CLI installiert und authentifiziert (<em>az login<\/em>)<\/li>\n\n\n\n<li>Bash mit<em> jq <\/em>oder PowerShell<\/li>\n\n\n\n<li>Azure-Berechtigungen: Subscription Owner (oder Contributor + User Access Administrator) sowie Application Developer in Entra ID<\/li>\n<\/ul>\n\n\n\n<p><strong>Schritt 1: Repository klonen<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>git clone https:\/\/github.com\/whiteducksoftware\/terraform-scaffold-for-azure.git<\/li>\n\n\n\n<li>cd terraform-scaffold-for-azure<\/li>\n<\/ul>\n\n\n\n<p><strong>Schritt 2: <\/strong>die .env Datei mit den gew\u00fcnschten Namen anpassen<\/p>\n\n\n\n<p><strong>Schritt 3:<\/strong> Federated Credential konfigurieren<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>F\u00fcr GitHub Actions \u2013 federated_credential_github.json anpassen<\/li>\n\n\n\n<li>F\u00fcr Azure DevOps \u2013 federated_credential_ado.json anpassen<\/li>\n<\/ul>\n\n\n\n<p><strong>Schritt 4:<\/strong> Setup-Skript ausf\u00fchren (hier up.sh als Beispiel)<\/p>\n\n\n\n<p>In up.sh das richtige Credential-File ausw\u00e4hlen und ausf\u00fchren:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li># FEDERATED_CREDENTIAL_FILE=&#8221;federated_credential_github.json&#8221;&nbsp;# f\u00fcr GitHub<\/li>\n\n\n\n<li># FEDERATED_CREDENTIAL_FILE=&#8221;federated_credential_ado.json&#8221;&nbsp;# f\u00fcr Azure DevOps<\/li>\n<\/ul>\n\n\n\n<p><strong>Schritt 5: CI\/CD-Pipeline konfigurieren (<\/strong>GitHub Actions Beispiel)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>name: TF Deploy\non:\n  workflow_dispatch:\n  push:\n    branches:\n      - 'main'\n\n# OIDC-Authentifizierung erfordert diese Permission.\n# Ohne 'id-token: write' kann der Workflow kein OIDC-Token anfordern.\npermissions:\n  id-token: write\n  contents: read\n\nenv:\n  tf_version: 1.14.3\n  # Aktiviert OIDC f\u00fcr den AzureRM Terraform Provider.\n  # Damit entf\u00e4llt ARM_CLIENT_SECRET komplett.\n  ARM_USE_OIDC: true\n  # Nutzt Entra ID Auth f\u00fcr den Storage Account statt Access Keys.\n  ARM_USE_AZUREAD: true\n\njobs:\n  deploy-dev:\n    name: Deploy DEV\n    runs-on: ubuntu-latest\n    # Das Environment muss exakt mit dem 'subject' in der Federated Credential \u00fcbereinstimmen.\n    # Beispiel: repo:org\/repo:environment:dev\n    # Ein Workflow ohne passendes Environment wird von Entra ID abgelehnt.\n    environment: dev\n    env:\n      stage: dev\n      rg_name: '&lt;your-resource-group-name&gt;'\n      sa_name: '&lt;your-storage-account-name&gt;'\n      sc_name: '&lt;your-blob-name&gt;'\n      # Diese drei Werte sind KEINE Secrets im klassischen Sinne.\n      # Sie sind \u00f6ffentliche Identifier \u2013 ein Angreifer kann damit alleine nichts anfangen.\n      # Die Authentifizierung erfolgt ausschlie\u00dflich \u00fcber das signierte OIDC-Token.\n      ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}\n      ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}\n      ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}\n    steps:\n      - name: Checkout\n        uses: actions\/checkout@v4\n\n      # OIDC-Login: Kein client-secret Parameter!\n      # Die Action fordert automatisch ein OIDC-Token von GitHub an\n      # und tauscht es bei Entra ID gegen ein Azure Access Token.\n      - name: Azure CLI login\n        uses: azure\/login@v2\n        with:\n          client-id: ${{ secrets.ARM_CLIENT_ID }}\n          tenant-id: ${{ secrets.ARM_TENANT_ID }}\n          subscription-id: ${{ secrets.ARM_SUBSCRIPTION_ID }}\n\n      - name: Setup Terraform\n        uses: hashicorp\/setup-terraform@v3\n        with:\n          terraform_version: ${{ env.tf_version }}\n\n      # Terraform nutzt die OIDC-Session aus dem azure\/login Step.\n      # Keine zus\u00e4tzlichen Credentials n\u00f6tig \u2013 ARM_USE_OIDC \u00fcbernimmt den Rest.\n      - name: Terraform Init\n        run: |\n          terraform init -input=false \\\n              -backend-config=\"resource_group_name=${{ env.rg_name }}\" \\\n              -backend-config=\"storage_account_name=${{ env.sa_name }}\" \\\n              -backend-config=\"container_name=${{ env.sc_name }}\" \\\n              -backend-config=\"key=${{ env.stage }}.tfstate\"\n\n      - name: Terraform Format\n        run: terraform fmt --check\n\n      - name: Terraform Validate\n        run: terraform validate\n\n      - name: Terraform Plan\n        run: |\n          terraform plan \\\n           -var-file=.\/env\/${{ env.stage }}.tfvars \\\n           -out ${{ env.stage }}_tfplan.out\n\n      - name: Terraform Apply\n        run: terraform apply -auto-approve ${{ env.stage }}_tfplan.out<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Migration:VonClientSecretzuOIDC\">Migration: Von Client Secret zu <strong>Workload Identity Federation<\/strong><\/h3>\n\n\n\n<p>Wer das Terraform Scaffolding bereits mit Client Secret nutzt, kann mit wenigen Schritten auf OIDC umsteigen.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Azure DevOps<\/h4>\n\n\n\n<p>Um auf dem einfachsten Weg die bestehende Azure DevOps Service Connection und den Service Principal auf Federated Credentials umzustellen, geht man wie folgt vor:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Eine weitere Service Connection vom Typ \u201eAzure Resource Manager\u201c anlegen.<\/li>\n\n\n\n<li>\u201eApp registration or managed identity (manual)\u201c ausw\u00e4hlen.<\/li>\n\n\n\n<li>Als Credential \u201eWorkload Identity Federation\u201c setzen.<\/li>\n\n\n\n<li>Einen Namen vergeben und die eigene Tenant ID eintragen.<\/li>\n\n\n\n<li>Im n\u00e4chsten Schritt den Issuer und den Subject Identifier kopieren und f\u00fcr sp\u00e4ter bereithalten.<\/li>\n\n\n\n<li>Die Service Connection anschlie\u00dfend fertigstellen und speichern.<\/li>\n\n\n\n<li>Zu Entra ID wechseln und den Service Principal editieren.<\/li>\n\n\n\n<li>Unter \u201eCertificates and secrets\u201c ein Federated Credential anlegen und als Scenario \u201eOther issuer\u201c ausw\u00e4hlen.<\/li>\n\n\n\n<li> Issuer und Subject Identifier aus Schritt 6 einf\u00fcgen und speichern.<\/li>\n\n\n\n<li> Die Pipeline anpassen, damit diese die neue Service Connection verwendet. Danach kann die alte Service Connection mit dem Credential-Typ \u201eSecret\u201c entfernt werden.<\/li>\n\n\n\n<li>Das Secret beim Service Principal sollte ebenfalls gel\u00f6scht werden.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">GitHub<\/h4>\n\n\n\n<p>F\u00fcr die Migration auf federated identity credential f\u00fcr GitHub sind folgende Schritte notwendig:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Zu Entra ID wechseln und den Service Principal editieren.<\/li>\n\n\n\n<li>Unter \u201eCertificates and secrets\u201c ein Federated Credential anlegen und als Scenario \u201eGitHub Actions deploying Azure resources\u201c ausw\u00e4hlen.<\/li>\n\n\n\n<li>Organisation, Repository und Entity Type so setzen, dass folgender Subject identifier dabei rauskommt: repo:myorg\/myrepo:environment:dev (hier das Environment dev als Beispiel).<\/li>\n\n\n\n<li>Das Secret beim Service Principal sollte ebenfalls gel\u00f6scht werden.<\/li>\n<\/ul>\n\n\n\n<p>In beiden F\u00e4llen muss die Pipeline bzw. der Workflow auf die Secret-freie Authentifizierung angepasst werden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Fazit\">Fazit<\/h3>\n\n\n\n<p>Secrets in CI\/CD-Pipelines geh\u00f6ren der Vergangenheit an zumindest f\u00fcr die Authentifizierung bei Azure. Mit Workload Identity Federation bietet Microsoft einen sicheren, wartungsfreien Weg, um GitHub Actions und Azure DevOps Pipelines mit Azure zu verbinden. Kein Client Secret, das rotiert werden muss. Kein Leak-Risiko durch versehentlich geloggte Credentials. Keine n\u00e4chtlichen Pipeline-Ausf\u00e4lle, weil jemand die Rotation vergessen hat.<\/p>\n\n\n\n<p>Unser aktualisiertes Terraform Scaffolding f\u00fcr Azure macht den Einstieg so einfach wie m\u00f6glich:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OIDC ist jetzt der Default \u2013 die sichere Variante ist gleichzeitig die einfachste<\/li>\n\n\n\n<li>GitHub Actions und Azure DevOps werden beide unterst\u00fctzt<\/li>\n\n\n\n<li>Ein Skript, f\u00fcnf Minuten und die Infrastruktur steht<\/li>\n<\/ul>\n\n\n\n<p>Falls Sie Fragen, Probleme oder Verbesserungsvorschl\u00e4ge haben, <a href=\"https:\/\/outlook.office365.com\/book\/WDWebsiteBuchungsanfrage@whiteduck.de\/?ismsaljsauthenabled=true\" type=\"link\" id=\"https:\/\/outlook.office365.com\/book\/WDWebsiteBuchungsanfrage@whiteduck.de\/?ismsaljsauthenabled=true\" target=\"_blank\" rel=\"noreferrer noopener\">kontaktieren <\/a>Sie uns! Wir helfen gerne weiter und freuen uns \u00fcber Issues und Pull Requests im Repository.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Inhalt Das Problem mit Secrets in CI\/CD-Pipelines Secrets in CI\/CD-Pipelines haben ein Ablaufdatum. Und irgendwann vergisst jemand, sie rechtzeitig zu erneuern. Wer Infrastructure as Code mit Terraform auf Azure betreibt, kennt das Spiel: Ein Service Principal wird erstellt, das Client Secret landet im Key Vault oder direkt in den Pipeline-Variablen, und alles l\u00e4uft. Bis das <a href=\"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/\"> <\/p>\n<div style=\"color:#ff9900\">[&#8230;]<\/div>\n<p><\/a><\/p>\n","protected":false},"author":17,"featured_media":8224,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_tribe_events_control_status":"","_tribe_events_control_status_canceled_reason":"","_tribe_events_control_status_postponed_reason":"","_tribe_events_control_online":"","_tribe_events_control_online_url":"","footnotes":""},"categories":[104],"tags":[113,437,159,233,698],"class_list":["post-24963","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","tag-azure","tag-cloud-native","tag-kubernetes","tag-terraform","tag-terraform-scaffolding"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Terraform Scaffolding f\u00fcr Azure \u2013 jetzt secretless mit OIDC - white duck<\/title>\n<meta name=\"description\" content=\"In diesem Beitrag zeigen wir, wie unser aktualisiertes\u00a0Terraform Scaffolding f\u00fcr Azure\u00a0diesen Ansatz out-of-the-box unterst\u00fctzt und wie Sie in wenigen Minuten auf &quot;secretless&quot; umsteigen k\u00f6nnen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Terraform Scaffolding f\u00fcr Azure \u2013 jetzt secretless mit OIDC - white duck\" \/>\n<meta property=\"og:description\" content=\"In diesem Beitrag zeigen wir, wie unser aktualisiertes\u00a0Terraform Scaffolding f\u00fcr Azure\u00a0diesen Ansatz out-of-the-box unterst\u00fctzt und wie Sie in wenigen Minuten auf &quot;secretless&quot; umsteigen k\u00f6nnen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/\" \/>\n<meta property=\"og:site_name\" content=\"white duck\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/whiteduckgmbh\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-28T11:32:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-28T11:33:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/whiteduck.de\/wp-content\/uploads\/WD-Blog-GutzuWissen-Blog-Header-2560x1702px.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1702\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Valentina Hermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@whiteduck_gmbh\" \/>\n<meta name=\"twitter:site\" content=\"@whiteduck_gmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Valentina Hermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\\\/\"},\"author\":{\"name\":\"Valentina Hermann\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#\\\/schema\\\/person\\\/13554efbacf4b63ddbddbe2479383c88\"},\"headline\":\"Terraform Scaffolding f\u00fcr Azure \u2013 jetzt secretless mit OIDC\",\"datePublished\":\"2026-02-28T11:32:25+00:00\",\"dateModified\":\"2026-02-28T11:33:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\\\/\"},\"wordCount\":1700,\"image\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/WD-Blog-GutzuWissen-Blog-Header-2560x1702px.png\",\"keywords\":[\"Azure\",\"Cloud Native\",\"Kubernetes\",\"Terraform\",\"Terraform Scaffolding\"],\"articleSection\":[\"Azure\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\\\/\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\\\/\",\"name\":\"Terraform Scaffolding f\u00fcr Azure \u2013 jetzt secretless mit OIDC - white duck\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/WD-Blog-GutzuWissen-Blog-Header-2560x1702px.png\",\"datePublished\":\"2026-02-28T11:32:25+00:00\",\"dateModified\":\"2026-02-28T11:33:58+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#\\\/schema\\\/person\\\/13554efbacf4b63ddbddbe2479383c88\"},\"description\":\"In diesem Beitrag zeigen wir, wie unser aktualisiertes\u00a0Terraform Scaffolding f\u00fcr Azure\u00a0diesen Ansatz out-of-the-box unterst\u00fctzt und wie Sie in wenigen Minuten auf \\\"secretless\\\" umsteigen k\u00f6nnen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/whiteduck.de\\\/en\\\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\\\/#primaryimage\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/WD-Blog-GutzuWissen-Blog-Header-2560x1702px.png\",\"contentUrl\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/WD-Blog-GutzuWissen-Blog-Header-2560x1702px.png\",\"width\":2560,\"height\":1702,\"caption\":\"gut zu wissen grafik\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Terraform Scaffolding f\u00fcr Azure \u2013 jetzt secretless mit OIDC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/\",\"name\":\"white duck\",\"description\":\"Your Partner for Microsoft Azure &amp; AI\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#\\\/schema\\\/person\\\/13554efbacf4b63ddbddbe2479383c88\",\"name\":\"Valentina Hermann\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/author\\\/valentina\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Terraform Scaffolding f\u00fcr Azure \u2013 jetzt secretless mit OIDC - white duck","description":"In diesem Beitrag zeigen wir, wie unser aktualisiertes\u00a0Terraform Scaffolding f\u00fcr Azure\u00a0diesen Ansatz out-of-the-box unterst\u00fctzt und wie Sie in wenigen Minuten auf \"secretless\" umsteigen k\u00f6nnen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/","og_locale":"en_US","og_type":"article","og_title":"Terraform Scaffolding f\u00fcr Azure \u2013 jetzt secretless mit OIDC - white duck","og_description":"In diesem Beitrag zeigen wir, wie unser aktualisiertes\u00a0Terraform Scaffolding f\u00fcr Azure\u00a0diesen Ansatz out-of-the-box unterst\u00fctzt und wie Sie in wenigen Minuten auf \"secretless\" umsteigen k\u00f6nnen.","og_url":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/","og_site_name":"white duck","article_publisher":"https:\/\/www.facebook.com\/whiteduckgmbh","article_published_time":"2026-02-28T11:32:25+00:00","article_modified_time":"2026-02-28T11:33:58+00:00","og_image":[{"width":2560,"height":1702,"url":"https:\/\/whiteduck.de\/wp-content\/uploads\/WD-Blog-GutzuWissen-Blog-Header-2560x1702px.png","type":"image\/png"}],"author":"Valentina Hermann","twitter_card":"summary_large_image","twitter_creator":"@whiteduck_gmbh","twitter_site":"@whiteduck_gmbh","twitter_misc":{"Written by":"Valentina Hermann","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/#article","isPartOf":{"@id":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/"},"author":{"name":"Valentina Hermann","@id":"https:\/\/whiteduck.de\/en\/#\/schema\/person\/13554efbacf4b63ddbddbe2479383c88"},"headline":"Terraform Scaffolding f\u00fcr Azure \u2013 jetzt secretless mit OIDC","datePublished":"2026-02-28T11:32:25+00:00","dateModified":"2026-02-28T11:33:58+00:00","mainEntityOfPage":{"@id":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/"},"wordCount":1700,"image":{"@id":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/#primaryimage"},"thumbnailUrl":"https:\/\/whiteduck.de\/wp-content\/uploads\/WD-Blog-GutzuWissen-Blog-Header-2560x1702px.png","keywords":["Azure","Cloud Native","Kubernetes","Terraform","Terraform Scaffolding"],"articleSection":["Azure"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/","url":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/","name":"Terraform Scaffolding f\u00fcr Azure \u2013 jetzt secretless mit OIDC - white duck","isPartOf":{"@id":"https:\/\/whiteduck.de\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/#primaryimage"},"image":{"@id":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/#primaryimage"},"thumbnailUrl":"https:\/\/whiteduck.de\/wp-content\/uploads\/WD-Blog-GutzuWissen-Blog-Header-2560x1702px.png","datePublished":"2026-02-28T11:32:25+00:00","dateModified":"2026-02-28T11:33:58+00:00","author":{"@id":"https:\/\/whiteduck.de\/en\/#\/schema\/person\/13554efbacf4b63ddbddbe2479383c88"},"description":"In diesem Beitrag zeigen wir, wie unser aktualisiertes\u00a0Terraform Scaffolding f\u00fcr Azure\u00a0diesen Ansatz out-of-the-box unterst\u00fctzt und wie Sie in wenigen Minuten auf \"secretless\" umsteigen k\u00f6nnen.","breadcrumb":{"@id":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/#primaryimage","url":"https:\/\/whiteduck.de\/wp-content\/uploads\/WD-Blog-GutzuWissen-Blog-Header-2560x1702px.png","contentUrl":"https:\/\/whiteduck.de\/wp-content\/uploads\/WD-Blog-GutzuWissen-Blog-Header-2560x1702px.png","width":2560,"height":1702,"caption":"gut zu wissen grafik"},{"@type":"BreadcrumbList","@id":"https:\/\/whiteduck.de\/en\/terraform-scaffolding-fuer-azure-jetzt-secretless-mit-oidc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/whiteduck.de\/en\/"},{"@type":"ListItem","position":2,"name":"Terraform Scaffolding f\u00fcr Azure \u2013 jetzt secretless mit OIDC"}]},{"@type":"WebSite","@id":"https:\/\/whiteduck.de\/en\/#website","url":"https:\/\/whiteduck.de\/en\/","name":"white duck","description":"Your Partner for Microsoft Azure &amp; AI","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/whiteduck.de\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/whiteduck.de\/en\/#\/schema\/person\/13554efbacf4b63ddbddbe2479383c88","name":"Valentina Hermann","url":"https:\/\/whiteduck.de\/en\/author\/valentina\/"}]}},"_links":{"self":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts\/24963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/comments?post=24963"}],"version-history":[{"count":0,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts\/24963\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/media\/8224"}],"wp:attachment":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/media?parent=24963"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/categories?post=24963"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/tags?post=24963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}