Konfigurera CDN-autentiseringsuppgifter och autentisering cdn-credentials-authentication
CDN som tillhandahålls av Adobe har flera funktioner och tjänster, varav vissa förlitar sig på autentiseringsuppgifter och autentisering för att säkerställa en lämplig nivå av företagssäkerhet. Genom att deklarera regler i en konfigurationsfil som distribuerats med hjälp av Cloud Manager config-pipeline kan-kunder konfigurera följande på ett självbetjäningssätt:
- HTTP-huvudvärdet X-AEM-Edge-Key som används av Adobe CDN för att validera begäranden som kommer från ett kundhanterat CDN.
- Den API-token som används för att rensa resurser i CDN-cachen.
- En lista över kombinationer av användarnamn och lösenord som kan få åtkomst till begränsat innehåll genom att skicka ett grundläggande autentiseringsformulär.
Var och en av dessa, inklusive konfigurationssyntaxen, beskrivs i sitt eget avsnitt nedan.
Det finns ett avsnitt om hur du roterar nycklar, vilket är en bra säkerhetspraxis.
Kundhanterat CDN HTTP-huvudvärde CDN-HTTP-value
Så som beskrivs på CDN-sidan i AEM as a Cloud Service kan kunderna välja att dirigera trafik genom sitt eget CDN, som kallas kundens CDN (kallas ibland även BYOCDN).
Som en del av konfigurationen måste Adobe CDN och kundens CDN komma överens om ett värde för HTTP-huvudet X-AEM-Edge-Key
. Värdet anges för varje begäran, på kundens CDN, innan det dirigeras till Adobe CDN, som sedan validerar att värdet är som förväntat, så att det kan lita på andra HTTP-huvuden, inklusive de som hjälper till att dirigera begäran till rätt AEM.
Värdet X-AEM-Edge-Key refereras av egenskaperna edgeKey1
och edgeKey2
i en fil med namnet cdn.yaml
eller liknande, någonstans under en config
-mapp på översta nivån. Läs Använda konfigurationsförlopp om du vill ha mer information om mappstrukturen och hur du distribuerar konfigurationen. Syntaxen beskrivs i exemplet nedan.
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
authentication:
authenticators:
- name: edge-auth
type: edge
edgeKey1: ${{CDN_EDGEKEY_052824}}
edgeKey2: ${{CDN_EDGEKEY_041425}}
rules:
- name: edge-auth-rule
when: { reqProperty: tier, equals: "publish" }
action:
type: authenticate
authenticator: edge-auth
Se Använda konfigurationsförlopp för en beskrivning av egenskaperna ovanför noden data
. Egenskapsvärdet kind
ska vara CDN och egenskapen version
ska vara 1
.
Mer information finns i Konfigurera och distribuera CDN-regel för HTTP-huvudvalidering.
Ytterligare egenskaper är:
-
Data
-nod som innehåller en underordnadauthentication
-nod. -
Under
authentication
, enauthenticators
-nod och enrules
-nod, som båda är arrayer. -
Autentiserare: Gör att du kan deklarera en typ av token eller autentiseringsuppgifter, som i det här fallet är en edge-nyckel. Den innehåller följande egenskaper:
- name - en beskrivande sträng.
- type - måste vara
edge
. - edgeKey1 - värdet för X-AEM-Edge-Key som måste referera till en Cloud Manager-miljövariabel av hemlig typ. Välj Alla för fältet Tjänst används. Vi rekommenderar att värdet (till exempel
${{CDN_EDGEKEY_052824}}
) återspeglar den dag det lades till. - edgeKey2 - används för att rotera hemligheter, vilket beskrivs i avsnittet roterande hemligheter nedan. Definiera den på liknande sätt som edgeKey1. Minst en av
edgeKey1
ochedgeKey2
måste deklareras.
-
Regler: Gör att du kan deklarera vilka autentiserare som ska användas och om det är för publicerings- och/eller förhandsgranskningsnivån. Den innehåller följande uppgifter:
- name - en beskrivande sträng.
- when - ett villkor som bestämmer när regeln ska utvärderas, enligt syntaxen i artikeln Traffic Filter Rules . Vanligtvis innehåller det en jämförelse av den aktuella nivån (till exempel publicera) så att all livtrafik valideras som routning via kundens CDN.
- action - måste ange "authenticate" med referens till den avsedda autentiseraren.
openssl rand -hex 32
.Migrera säkert för att minska risken för blockerad trafik migrating-safely
Om webbplatsen redan är aktiv bör du vara försiktig när du migrerar till kundhanterad CDN eftersom en felkonfiguration kan blockera allmän trafik. Detta beror på att endast begäranden med det förväntade X-AEM-Edge-Key-huvudvärdet accepteras av Adobe CDN. Ett tillvägagångssätt rekommenderas när ytterligare ett villkor tillfälligt inkluderas i autentiseringsregeln, vilket gör att den blockerar begäran endast om en testrubrik ingår eller om en sökväg matchar:
- name: edge-auth-rule
when:
allOf:
- { reqProperty: tier, equals: "publish" }
- { reqHeader: x-edge-test, equals: "test" }
action:
type: authenticate
authenticator: edge-auth
- name: edge-auth-rule
when:
allOf:
- { reqProperty: tier, equals: "publish" }
- { reqProperty: path, like: "/test*" }
action:
type: authenticate
authenticator: edge-auth
Följande curl
-begärandemönster kan användas:
curl https://publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com -H "X-Forwarded-Host: example.com" -H "X-AEM-Edge-Key: <CONFIGURED_EDGE_KEY>" -H "x-edge-test: test"
När testningen är klar kan det ytterligare villkoret tas bort och konfigurationen distribueras på nytt.
Rensa API-token purge-API-token
Kunder kan rensa CDN-cachen genom att använda en deklarerad rensnings-API-token. Token har deklarerats i en fil med namnet cdn.yaml
eller liknande, någonstans under en config
-mapp på översta nivån. Läs Använda konfigurationsförlopp om du vill ha mer information om mappstrukturen och hur du distribuerar konfigurationen.
Syntaxen beskrivs nedan:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
authentication:
authenticators:
- name: purge-auth
type: purge
purgeKey1: ${{CDN_PURGEKEY_031224}}
purgeKey2: ${{CDN_PURGEKEY_021225}}
rules:
- name: purge-auth-rule
when: { reqProperty: tier, equals: "publish" }
action:
type: authenticate
authenticator: purge-auth
Se Använda konfigurationsförlopp för en beskrivning av egenskaperna ovanför noden data
. Egenskapsvärdet kind
ska vara CDN och egenskapen version
ska vara 1
.
Ytterligare egenskaper är:
-
data
-nod som innehåller en underordnadauthentication
-nod. -
Under
authentication
, enauthenticators
-nod och enrules
-nod, som båda är arrayer. -
Autentiserare: Gör att du kan deklarera en typ av token eller autentiseringsuppgifter, som i det här fallet är en rensningsnyckel. Den innehåller följande egenskaper:
- name - en beskrivande sträng.
- type - måste tömmas.
- purgeKey1 - dess värde måste referera till en Cloud Manager-miljövariabel av hemlig typ. Välj Alla för fältet Tjänst används. Vi rekommenderar att värdet (till exempel
${{CDN_PURGEKEY_031224}}
) återspeglar den dag det lades till. - purgeKey2 - används för att rotera hemligheter, vilket beskrivs i avsnittet roterande hemligheter nedan. Minst en av
purgeKey1
ochpurgeKey2
måste deklareras.
-
Regler: Gör att du kan deklarera vilka autentiserare som ska användas och om det är för publicerings- och/eller förhandsgranskningsnivån. Den innehåller följande uppgifter:
- name - en beskrivande sträng
- when - ett villkor som bestämmer när regeln ska utvärderas, enligt syntaxen i artikeln Traffic Filter Rules . Vanligtvis innehåller det en jämförelse av den aktuella nivån (till exempel publicera).
- action - måste ange "authenticate" med referens till den avsedda autentiseraren.
Du kan referera till en självstudie som fokuserar på att konfigurera rensningsnycklar och utföra rensning av CDN-cache.
Grundläggande autentisering basic-auth
Protect vissa innehållsresurser genom att öppna en enkel autentiseringsdialogruta som kräver användarnamn och lösenord. Den här funktionen är främst avsedd för enkla autentiseringssituationer, som granskning av innehåll av intressenter i företag, i stället för som en fullständig lösning för slutanvändares åtkomsträttigheter.
Slutanvändaren får en grundläggande autentiseringsdialogruta som ser ut så här:
Syntaxen är följande:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
authentication:
authenticators:
- name: my-basic-authenticator
type: basic
credentials:
- user: johndoe
password: ${{JOHN_DOE_PASSWORD}}
- user: janedoe
password: ${{JANE_DOE_PASSWORD}}
rules:
- name: basic-auth-rule
when: { reqProperty: path, like: "/summercampaign" }
action:
type: authenticate
authenticator: my-basic-authenticator
Se Använda konfigurationsförlopp för en beskrivning av egenskaperna ovanför noden data
. Egenskapsvärdet kind
ska vara CDN och egenskapen version
ska vara 1
.
Dessutom innehåller syntaxen:
-
en
data
-nod som innehåller enauthentication
-nod. -
Under
authentication
, enauthenticators
-nod och enrules
-nod, som båda är arrayer. -
Autentiserare: i det här scenariot deklarerar du en grundläggande autentiserare med följande struktur:
-
name - en beskrivande sträng
-
type - måste vara
basic
-
en array med upp till 10 autentiseringsuppgifter, som vart och ett innehåller följande namn/värde-par, som slutanvändarna kan ange i den grundläggande autentiseringsdialogrutan:
- användare - namnet på användaren
- password - dess värde måste referera till en Cloud Manager-miljövariabel av hemlig typ, med Alla markerat som tjänstfält.
-
-
Regler: Här kan du deklarera vilka autentiserare som ska användas och vilka resurser som ska skyddas. Varje regel innehåller:
- name - en beskrivande sträng
- when - ett villkor som bestämmer när regeln ska utvärderas, enligt syntaxen i artikeln Traffic Filter Rules . Vanligtvis innehåller det en jämförelse av publiceringsnivån eller specifika sökvägar.
- action - måste ange "authenticate", med den avsedda autentiseraren refererad, som är basautentisering för detta scenario
Rotera hemligheter rotating-secrets
-
Det är god säkerhetspraxis att emellanåt ändra autentiseringsuppgifter. Detta kan åstadkommas enligt exemplet nedan med hjälp av en kantnyckel, även om samma strategi används för tömningsnycklar.
-
Till att börja med har bara
edgeKey1
definierats, i det här fallet refererat till${{CDN_EDGEKEY_052824}}
, vilket som en rekommenderad konvention, visar datumet då det skapades.code language-none authentication: authenticators: - name: edge-auth type: edge edgeKey1: ${{CDN_EDGEKEY_052824}}
-
När det är dags att rotera nyckeln skapar du en ny Cloud Manager-hemlighet, till exempel
${{CDN_EDGEKEY_041425}}
. -
I konfigurationen refererar du till den från
edgeKey2
och distribuerar den.code language-none authentication: authenticators: - name: edge-auth type: edge edgeKey1: ${{CDN_EDGEKEY_052824}} edgeKey2: ${{CDN_EDGEKEY_041425}}
-
När du är säker på att den gamla kantnyckeln inte längre används tar du bort den genom att ta bort
edgeKey1
från konfigurationen.code language-none authentication: authenticators: - name: edge-auth type: edge edgeKey2: ${{CDN_EDGEKEY_041425}}
-
Ta bort den gamla hemliga referensen (
${{CDN_EDGEKEY_052824}}
) från Cloud Manager och distribuera. -
När du är redo för nästa rotation följer du samma procedur, men den här gången lägger du till
edgeKey1
i konfigurationen och refererar till en ny Cloud Manager-miljöhemlighet med namnet, till exempel,${{CDN_EDGEKEY_031426}}
.code language-none authentication: authenticators: - name: edge-auth type: edge edgeKey2: ${{CDN_EDGEKEY_041425}} edgeKey1: ${{CDN_EDGEKEY_031426}}