Hemligheter i reaktors-API
I Reaktors-API är en hemlighet en resurs som representerar autentiseringsuppgifter. Hemligheter används vid vidarebefordran av händelser för att autentisera till ett annat system för säkert datautbyte. Därför kan hemligheter bara skapas i egenskaper för händelsevidarebefordran (egenskaper vars platform
attribute is set to edge
).
Det finns för närvarande tre hemliga typer som stöds angivna i type_of
attribute:
token
simple-http
oauth2-client_credentials
Den här guiden ger en översikt på hög nivå över hur du konfigurerar hemligheter för användning vid vidarebefordran av händelser. Detaljerad vägledning om hur du hanterar hemligheter i Reaktors-API:t, inklusive exempel-JSON för en hems struktur, finns i Slutpunktshandbok för hemligheter.
Autentiseringsuppgifter
Varje hemlighet innehåller credentials
som innehåller sina respektive autentiseringsvärden. När skapa en hemlighet i APIhar varje typ av hemlighet olika obligatoriska attribut som visas i avsnitten nedan:
token
token
Hemligheter med en type_of
värde för token
kräver endast ett attribut under credentials
:
token
Token lagras som ett statiskt värde, och därför är hemligheten expires_at
och refresh_at
egenskaper anges till null
när hemligheten skapas.
simple-http
simple-http
Hemligheter med en type_of
värde för simple-http
kräver följande attribut under credentials
:
username
password
När hemligheten skapas byts de två attributen ut med en BASE64-kodning av username:password
. Efter utbytet är hemligheten expires_at
och refresh_at
egenskaper anges till null
.
oauth2-client_credentials
oauth2-client_credentials
Hemligheter med en type_of
värde för oauth2-client_credentials
kräver följande attribut under credentials
:
client_id
client_secret
token_url
refresh_offset
14400
(fyra timmar) som standard.options
(Valfritt) Anger ytterligare alternativ för OAuth-integrering:
scope
: En sträng som representerar OAuth 2.0-scope för inloggningsuppgifterna.audience
: En sträng som representerar en Åtkomsttoken för Auth0.
När en oauth2-client_credentials
hemligheten skapas eller uppdateras, client_id
och client_secret
(och möjligt options
) byts ut i en POST till token_url
, enligt klientautentiseringsflödet i OAuth-protokollet.
Om auktoriseringstjänsten svarar med 200 OK
och ett JSON- svarsorgan analyseras kroppen och access_token
kommer till kantmiljön och expires_in
används för att beräkna expires_at
och refresh_at
attribut för hemligheten. Om det inte finns någon miljökoppling på hemligheten, access_token
kasseras.
Ett utbyte av autentiseringsuppgifter anses vara lyckat under följande förhållanden:
expires_in
är större än28800
(åtta timmar).refresh_offset
är mindre än värdet förexpires_in
minus14400
(fyra timmar). Omexpires_in
är36000
(tio timmar) ochrefresh_offset
är28800
(åtta timmar), betraktas utbytet som misslyckat eftersom28800
är större än36000
-14400
(21600
).
Om utbytet lyckas anges hemmens statusattribut till succeeded
och värden för expires_at
och refresh_at
är inställda:
expires_at
är den aktuella UTC-tiden plus värdet förexpires_in
.refresh_at
är den aktuella UTC-tiden plus värdet förexpires_in
, minus värdet förrefresh_offset
. Omexpires_in
är43200
(tolv timmar) ochrefresh_offset
är14400
(fyra timmar),refresh_at
egenskapen skulle anges till28800
(åtta timmar) efter aktuell UTC-tid.
Om bytet av någon anledning misslyckas status_details
i meta
objektuppdateringar med relevant information.
Uppdatera en oauth2-client_credentials
hemlig
Om en oauth2-client_credentials
hemligheten har tilldelats en miljö och dess status är succeeded
(inloggningsuppgifterna har bytts ut utan fel), utförs ett nytt utbyte automatiskt på refresh_at
.
Om utbytet lyckas refresh_status
i meta
objektet är inställt på succeeded
while expires_at
, refresh_at
och activated_at
uppdateras därefter.
Om utbytet misslyckas görs ett försök att utföra åtgärden tre gånger till, med det senaste försöket högst två timmar innan åtkomsttoken upphör att gälla. Om alla försök misslyckas refresh_status_details
attribut från meta
objektuppdateringar med relevant information.
oauth2-google
oauth2-google
Hemligheter med en type_of
värde för oauth2-google
kräver följande attribut under credentials
:
scopes
Visar Google produktomfång för autentisering. Följande omfattningar stöds:
- Google Ads:
https://www.googleapis.com/auth/adwords
- Google Pub/Sub:
https://www.googleapis.com/auth/pubsub
När du har skapat oauth2-google
hemlighet, svaret innehåller en meta.authorization_url
-egenskap. Du måste kopiera och klistra in den här URL:en i en webbläsare för att slutföra autentiseringsflödet i Google.
Återauktorisera en oauth2-google
hemlig
Auktoriserings-URL för en oauth2-google
hemligheten går ut en timme efter att hemligheten har skapats (vilket anges av meta.authorization_url_expires_at
). Därefter måste hemligheten auktoriseras på nytt för att autentiseringsprocessen ska kunna förnyas.
Se Slutpunktshandbok för hemligheter om du vill ha mer information om hur du omauktoriserar en oauth2-google
hemligt genom att göra en PATCH-begäran till Reactor API.
Miljörelation
När du skapar en hemlighet måste du ange miljö där den kommer att finnas. Hemligheter sätts omedelbart in i den miljö där de skapas.
En hemlighet kan bara associeras med en miljö. När förhållandet mellan en hemlighet och en miljö väl har etablerats kan hemligheten inte rensas från miljön och hemligheten kan inte kopplas till en annan miljö.
När en hems autentiseringsuppgifter har bytts ut, för att en hemlighet ska kopplas till en miljö, kan växlingsartefakten (tokensträngen för token
, den Base64-kodade strängen för simple-http
eller åtkomsttoken för oauth2-client_credentials
) sparas säkert i miljön.
När växlingsartefakten har sparats i miljön är hemligheten activated_at
är inställt på aktuell UTC-tid och kan nu refereras med ett dataelement. Se nästa avsnitt för mer information om att referera till hemligheter.
Referera hemligheter referencing-secrets
Om du vill referera till en hemlighet måste du skapa ett dataelement av typenSecret" (tillhandahålls av Core extension) på en händelsevidarebefordringsegenskap. När du konfigurerar det här dataelementet uppmanas du att ange vilken hemlighet som ska användas för varje miljö. Sedan kan du skapa regler som refererar till ett hemligt dataelement, till exempel i huvudet för ett HTTP-anrop.
succeeded
hemlighet som är kopplad till den miljö som biblioteket byggs på. Om ett bibliotek till exempel har ett hemligt dataelement som inte har ett succeeded
hemlighet konfigurerad för Staging Secret om du försöker skapa det biblioteket i testmiljön uppstår ett fel.Vid körning ersätts det hemliga dataelementet med motsvarande hemliga utbytesartefakt som sparats i miljön.
Nästa steg
Den här guiden behandlar grunderna i att arbeta med hemligheter i Reaktors API. Mer information om hur du hanterar hemligheter med API-anrop finns i Slutpunktshandbok för hemligheter.