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. Det innebär att hemligheter bara kan skapas i egenskaper för händelsevidarebefordran (egenskaper vars platform-attribut är inställt på edge).
Det finns för närvarande tre hemliga typer som stöds angivna i attributet type_of:
tokensimple-httpoauth2-client_credentialsDen 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 hemals struktur, finns i Slutpunktshandboken för hemligheter.
Referenser
Varje hemlighet innehåller ett credentials-attribut som innehåller sina respektive autentiseringsvärden. När skapar en hemlighet i API har varje typ av hemlighet olika obligatoriska attribut som visas i avsnitten nedan:
token token
För hemligheter med värdet type_of på token krävs endast ett attribut under credentials:
tokenToken lagras som ett statiskt värde och därför ställs hemlighetens expires_at- och refresh_at-egenskaper in på null när hemligheten skapas.
simple-http simple-http
För hemligheter med värdet type_of simple-http krävs följande attribut under credentials:
usernamepasswordNär hemligheten skapas byts de två attributen ut med BASE64-kodningen username:password. Efter utbytet ställs hemlighetens expires_at- och refresh_at-egenskaper in på null.
oauth2-client_credentials oauth2-client_credentials
För hemligheter med värdet type_of oauth2-client_credentials krävs följande attribut under credentials:
client_idclient_secrettoken_urlrefresh_offset14400 (fyra timmar) som standard.options(Valfritt) Anger ytterligare alternativ för OAuth-integrering:
scope: En sträng som representerar OAuth 2.0-omfånget för autentiseringsuppgifterna.audience: En sträng som representerar en Auth0-åtkomsttoken.
När en oauth2-client_credentials-hemlighet skapas eller uppdateras, byts client_id och client_secret (och eventuellt options) ut i en POST till token_url, enligt klientautentiseringsflödet i OAuth-protokollet.
Om auktoriseringstjänsten svarar med 200 OK och en JSON-svarstext, tolkas brödtexten och access_token skickas till kantmiljön och expires_in används för att beräkna attributen expires_at och refresh_at för hemligheten. Om det inte finns någon miljöassociation för hemligheten, ignoreras access_token.
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ärdetexpires_inminus14400(fyra timmar). Omexpires_intill exempel är36000(tio timmar) ochrefresh_offsetär28800(åtta timmar), anses utbytet vara misslyckat eftersom28800är större än36000-14400(21600).
Om utbytet lyckas anges hemmens statusattribut till succeeded och värdena för expires_at och refresh_at anges:
expires_atär den aktuella UTC-tiden plus värdetexpires_in.refresh_atär den aktuella UTC-tiden plus värdetexpires_inminus värdetrefresh_offset. Omexpires_intill exempel är43200(tolv timmar) ochrefresh_offsetär14400(fyra timmar), kommer egenskapenrefresh_atatt anges till28800(åtta timmar) efter den aktuella UTC-tiden.
Om utbytet misslyckas av någon anledning uppdateras attributet status_details i objektet meta med relevant information.
Uppdaterar en oauth2-client_credentials-hemlighet
Om en oauth2-client_credentials-hemlighet har tilldelats en miljö och dess status är succeeded (autentiseringsuppgifterna har bytts ut), utförs en ny utväxling automatiskt refresh_at.
Om utbytet lyckas ställs attributet refresh_status i objektet meta in på succeeded while expires_at, refresh_at och activated_at in på motsvarande sätt.
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 uppdateras attributet refresh_status_details från objektet meta med relevant information.
oauth2-google oauth2-google
För hemligheter med värdet type_of på oauth2-google krävs följande attribut under credentials:
scopesVisar 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 hemligheten oauth2-google har skapats innehåller svaret 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.
Auktorisera om en oauth2-google-hemlighet
Auktoriserings-URL:en för en oauth2-google-hemlighet 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.
Mer information om hur du återauktoriserar en oauth2-google-hemlighet genom att göra en PATCH-begäran till Reactor API finns i Slutpunktshandboken .
Miljörelation
När du skapar en hemlighet måste du ange i vilken miljö den ska 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 och en hemlighet ska kopplas till en miljö, sparas växlingsartefakten (tokensträngen för token, Base64-kodad sträng för simple-http eller åtkomsttoken för oauth2-client_credentials) säkert i miljön.
När växlingsartefakten har sparats i miljön anges hemlighetens activated_at-attribut till aktuell UTC-tid och kan nu refereras med ett dataelement. Mer information om att referera till hemligheter finns i nästa avsnitt.
Referera till hemligheter referencing-secrets
För att kunna referera till en hemlighet måste du skapa ett dataelement av typen Secret (tillhandahålls av Core extension) för 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 associerad med miljön som biblioteket byggs på. Om ett bibliotek till exempel har ett hemligt dataelement som inte har någon succeeded-hemlighet konfigurerad för avsnittet Staging Secret, kommer ett försök att skapa biblioteket i mellanlagringsmiljön att resultera i 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 Slutpunktshandboken för hemligheter.