Geheimen in de Reactor-API
In de Reactor-API is een geheim een bron die een verificatiereferentie vertegenwoordigt. De geheimen worden gebruikt in gebeurtenis door:sturen om aan een ander systeem voor veilige gegevensuitwisseling voor authentiek te verklaren. Daarom kunnen geheimen alleen worden gemaakt binnen eigenschappen voor het doorsturen van gebeurtenissen (eigenschappen waarvan het kenmerk platform
is ingesteld op edge
).
Het attribuut type_of
bevat momenteel drie ondersteunde geheime typen:
token
simple-http
oauth2-client_credentials
Deze gids verstrekt een overzicht op hoog niveau van hoe te om geheimen voor gebruik in gebeurtenis te vormen die door:sturen. Voor gedetailleerde begeleiding op hoe te om geheimen in Reactor API, met inbegrip van voorbeeld JSON van de structuur van een geheim te beheren, verwijs naar de geheimen eindpuntgids.
Credentials
Elk geheim bevat een attribuut credentials
dat zijn respectieve referentie waarden houdt. Wanneer creërend een geheim in API, heeft elk type van geheim verschillende vereiste attributen zoals aangetoond in de hieronder secties:
token
token
Bij geheimen met een type_of
waarde van token
is onder credentials
slechts één kenmerk vereist:
token
Het token wordt opgeslagen als een statische waarde en daarom worden de eigenschappen expires_at
en refresh_at
van het geheim ingesteld op null
wanneer het geheim wordt gemaakt.
simple-http
simple-http
Bij geheimen met een type_of
waarde van simple-http
zijn de volgende kenmerken vereist onder credentials
:
username
password
Wanneer het geheim wordt gecreeerd, worden de twee attributen geruild met een codering BASE64 van username:password
. Na de uitwisseling worden de eigenschappen expires_at
en refresh_at
van het geheim ingesteld op null
.
oauth2-client_credentials
oauth2-client_credentials
Bij geheimen met een type_of
waarde van oauth2-client_credentials
zijn de volgende kenmerken vereist onder credentials
:
client_id
client_secret
token_url
refresh_offset
14400
(vier uur).options
(Facultatief) specificeert extra opties voor de integratie OAuth:
scope
: Een koord dat OAuth 2.0 werkingsgebiedvoor de geloofsbrieven vertegenwoordigt.audience
: Een koord dat een Auth0 toegangstokenvertegenwoordigt.
Wanneer een oauth2-client_credentials
-geheim wordt gemaakt of bijgewerkt, worden de client_id
en client_secret
(en mogelijk options
) uitgewisseld in een verzoek van de POST aan de token_url
, volgens de Client Credentials-stroom van het OAuth-protocol.
Als de machtigingsservice reageert op 200 OK
en een JSON-responstekst, wordt de hoofdtekst geparseerd en wordt de access_token
naar de randomgeving geduwd en wordt expires_in
gebruikt om de expires_at
en refresh_at
-kenmerken voor het geheim te berekenen. Als er geen milieuvereniging op het geheim is, wordt access_token
verworpen.
Een uitwisseling van geloofsbrieven wordt als succesvol beschouwd onder de volgende voorwaarden:
expires_in
is groter dan28800
(8 uur).refresh_offset
is kleiner dan de waarde vanexpires_in
minus14400
(vier uur). Alsexpires_in
bijvoorbeeld36000
(10 uur) is enrefresh_offset
28800
(8 uur) is, wordt de uitwisseling als mislukt beschouwd omdat28800
groter is dan36000
-14400
(21600
).
Als de uitwisseling slaagt, wordt het statuskenmerk van het geheim ingesteld op succeeded
en worden de waarden voor expires_at
en refresh_at
ingesteld:
expires_at
is de huidige UTC-tijd plus de waarde vanexpires_in
.refresh_at
is de huidige UTC-tijd plus de waarde vanexpires_in
, minus de waarde vanrefresh_offset
. Alsexpires_in
bijvoorbeeld43200
(twaalf uur) is enrefresh_offset
14400
(vier uur), wordt de eigenschaprefresh_at
ingesteld op28800
(acht uur) na de huidige UTC-tijd.
Als de uitwisseling om welke reden dan ook mislukt, wordt het kenmerk status_details
in het meta
-object bijgewerkt met relevante informatie.
Een oauth2-client_credentials
-geheim vernieuwen
Als een oauth2-client_credentials
-geheim is toegewezen aan een omgeving en de status succeeded
(de gegevens zijn uitgewisseld) is, wordt automatisch een nieuwe uitwisseling uitgevoerd op refresh_at
.
Als de uitwisseling is gelukt, wordt het kenmerk refresh_status
in het object meta
ingesteld op succeeded
while expires_at
, refresh_at
en activated_at
.
Als de uitwisseling ontbreekt, wordt de verrichting geprobeerd nog drie keer met de laatste poging niet meer dan twee uur alvorens het toegangstoken verloopt. Als alle pogingen mislukken, wordt het kenmerk refresh_status_details
van het object meta
bijgewerkt met relevante details.
oauth2-google
oauth2-google
Bij geheimen met een type_of
value of oauth2-google
is het volgende kenmerk vereist onder credentials
:
scopes
Hiermee geeft u de Google-productbereiken voor verificatie weer. Het volgende bereik wordt ondersteund:
- Advertentie Google:
https://www.googleapis.com/auth/adwords
- Google Pub/Sub:
https://www.googleapis.com/auth/pubsub
Nadat u het geheim oauth2-google
hebt gemaakt, bevat de reactie een eigenschap meta.authorization_url
. U moet deze URL kopiëren en in browser plakken om de Google-verificatiestroom te voltooien.
Een oauth2-google
-geheim opnieuw autoriseren
De autorisatie-URL voor een oauth2-google
-geheim verloopt één uur nadat het geheim is gemaakt (zoals aangegeven door meta.authorization_url_expires_at
). Na deze tijd, moet het geheim opnieuw worden geautoriseerd om het authentificatieproces te vernieuwen.
Verwijs naar de geheimen eindpuntgidsvoor details op hoe opnieuw goedkeurt een oauth2-google
geheim door een verzoek van de PATCH aan Reactor API te doen.
Omgevingsrelatie
Wanneer u een geheim creeert, moet u het milieuspecificeren waarin het zal bestaan. Geheimen worden onmiddellijk ingezet in de omgeving waarin ze zijn gemaakt.
Een geheim kan slechts aan één milieu worden geassocieerd. Zodra het verband tussen een geheim en een milieu wordt gevestigd, kan het geheim niet uit het milieu worden ontruimd, en het geheim kan niet met een verschillend milieu worden geassocieerd.
Nadat de geloofsbrieven van een geheim met succes zijn geruild, voor een geheim om met een milieu worden geassocieerd, wordt het uitwisselingsartefact (het symbolische koord voor token
, het Base64 gecodeerde koord voor simple-http
, of het toegangstoken voor oauth2-client_credentials
) veilig bewaard op het milieu.
Nadat het uitwisselingsartefact met succes op het milieu wordt bewaard, wordt het activated_at
attribuut van het geheim geplaatst aan de huidige tijd UTC, en kan nu worden van verwijzingen voorzien gebruikend een gegevenselement. Zie de volgende sectievoor meer informatie bij het van verwijzingen voorzien geheimen.
Verwijzen naar geheimen referencing-secrets
Om naar een geheim te verwijzen, moet u een gegevenselement van type "Secret"tot stand brengen (door de Core uitbreidingwordt verstrekt) op een gebeurtenis die bezit door:sturen. Wanneer het vormen van dit gegevenselement, wordt u ertoe aangezet om te wijzen op welk geheim aan gebruik voor elk milieu. U kunt dan regels tot stand brengen die naar een geheim gegevenselement, zoals binnen de kopbal voor een vraag van HTTP verwijzen.
succeeded
geheim hebben dat is gekoppeld aan de omgeving waarop de bibliotheek wordt gemaakt. Als een bibliotheek bijvoorbeeld een geheim gegevenselement heeft waarvoor geen succeeded
geheim is geconfigureerd voor de Staging Secret -sectie, leidt het maken van die bibliotheek in de testomgeving tot een fout.Tijdens runtime wordt het element met geheime gegevens vervangen door het corresponderende geheime uitwisselingsartefact dat op de omgeving is opgeslagen.
Volgende stappen
In deze handleiding werden de basisprincipes van het werken met geheimen in de Reactor-API besproken. Voor details op hoe te om geheimen te beheren gebruikend API vraag, zie de geheimen eindpuntgids.