OAuth-Kontextvariablen
Sie können den OAuth-Sicherheitsdatenfluss in einem nativen OAuth-Provider anpassen, indem Sie mehrere OAuth-Richtlinien zur Assembly hinzufügen. Jede OAuth-Richtlinie übernimmt die Eingabe aus Kontextvariablen und schreibt die Ausgabe in Kontextvariablen. Durch die Verwendung dieser OAuth-Kontextvariablen können Sie die ursprüngliche Anforderung bearbeiten und die Ausgabe aus einer OAuth-Richtlinie verarbeiten.
- Informationsvariablen, Ausgaben einer OAuth-Richtlinie,
- Verarbeitungsvariablen, die während der Ausführung einer OAuth-Richtlinie verarbeitet werden.
Informationsvariablen
Diese Kontextvariablen sind Ausgaben einer OAuth-Richtlinie. Sie werden bei der Verarbeitung der OAuth-Aktion nicht verwendet.
oauth.result- Das Ergebnis der letzten Aktion; gibt
SUCCESSoderFAILUREzurück. oauth.settings.variable_name- Basiseinstellungen des OAuth-Providers. Die folgenden Kontextvariablen
sind verfügbar:
oauth.settings.allowed_scopes oauth.settings.access_token_ttl oauth.settings.authorization_code_ttl oauth.settings.refresh_token_ttl oauth.settings.refresh_token_limit oauth.settings.maximum_consent_ttl oauth.executed_components[0].variable_name- Die Komponenten, die in dieser Transaktion ausgeführt wurden, mit ihrem Ergebnis. Wenn ein Fehler auftritt, werden der Fehler und die Fehlerbeschreibung hinzugefügt. Die folgenden Kontextvariablen
sind verfügbar:
Die möglichen Werte für die Variableoauth.executed_components[0].result oauth.executed_components[0].type oauth.executed_components[0].error_description oauth.executed_components[0].errortypelauten wie folgt:
Das folgende Beispiel zeigt einen entsprechenden JSON-Auszug aus dem OAuth-Kontext:ValidateRequestComponent GenerateAZCodeComponent VerifyAZCodeComponent VerifyRefreshTokenComponent GenerateAccessTokenComponent IntrospectTokenComponent RevokeTokenComponent CollectMetaDataComponent"executed_components": [ { "type": "ValidateRequestComponent", "result": "SUCCESS" }, { "type": "GenerateAccessTokenComponent", "result": "SUCCESS" } ] oauth.verified_access_token.variable_name- Das Token, das in der Sicherheitsanforderung für einen nativen OAuth-Provider überprüft wurde. Die folgenden Kontextvariablen
sind verfügbar:
oauth.verified_access_token.access_token oauth.verified_access_token.client_id oauth.verified_access_token.consented_on oauth.verified_access_token.consented_on_text oauth.verified_access_token.grant_type oauth.verified_access_token.misc_info oauth.verified_access_token.not_after oauth.verified_access_token.not_after_text oauth.verified_access_token.not_before oauth.verified_access_token.not_before_text oauth.verified_access_token.one_time_use oauth.verified_access_token.resource_owner oauth.verified_access_token.scope oauth.third_party.variable_name- Das Token, das in der Sicherheitsanforderung für einen OAuth-Provider eines Drittanbieters überprüft wurde. Stellt die folgenden Informationen bereit:
- Die Antwortheader aus dem externen OAuth-Provider eines Drittanbieters.
- Den Antworthauptteil aus dem externen OAuth-Provider eines Drittanbieters.
- Ob die Antwort zwischengespeichert wird. Wird sie zwischengespeichert, lautet der Wert
true. Wird sie nicht zwischengespeichert, lautet der Wertfalse.
oauth.third_party.headers oauth.third_party.response oauth.third_party.cached oauth.code.variable_name- Der Code, der während der Ausführung einer Komponente vom Typ
GenerateAZCodeComponentgeneriert wurde. Die folgenden Kontextvariablen sind verfügbar:oauth.code.client_id oauth.code.code oauth.code.redirect_uri oauth.code.resource_owner oauth.code.scope oauth.token.variable_name- Das Token, das während der Ausführung einer Komponente vom Typ
GenerateAccessTokenComponentgeneriert wurde. Die folgenden Kontextvariablen sind verfügbar:oauth.token.token_type oauth.token.access_token oauth.token.scope oauth.token.expires_in oauth.token.consented_on oauth.token.redirect_uri oauth.token.resource_owner oauth.token.client_id oauth.token.refresh_token oauth.token.refresh_token_expires_in oauth.token.refresh_token_count oauth.introspect.variable_name- Das Token, für das während der Ausführung einer Komponente vom Typ
IntrospectTokenComponenteine Introspektion durchgeführt wurde. Die folgenden Kontextvariablen sind verfügbar:oauth.introspect.active oauth.introspect.scope oauth.introspect.client_id oauth.introspect.resource_owner oauth.introspect.token_type oauth.introspect.grant_type oauth.introspect.ttl oauth.introspect.expires oauth.introspect.expires_text oauth.introspect.iat oauth.introspect.not_before oauth.introspect.not_before_text oauth.introspect.consented_on oauth.introspect.consented_on_text oauth.introspect.one_time_use oauth.external_manager.variable_name- Token-Management bei Verwendung eines externen Token-Managers. Stellt die folgenden Informationen bereit:
- Die Antwortheader vom externen Management-Server.
- Der JSON-Antworthauptteil vom externen Management-Server.
- Wenn Caching aktiviert ist, gibt dieser Parameter an, ob die Antwort im Cache gefunden oder im Cache festgelegt wurde. Wenn Caching nicht aktiviert ist, gibt dieser Parameter an, dass die Antwort nicht im Cache festgelegt wurde.
oauth.external_manager.headers oauth.external_manager.response oauth.external_manager.cached
Variablen verarbeiten
oauth.processing.assertion
oauth.processing.client_id
oauth.processing.client_secret
oauth.processing.grant_type
oauth.processing.redirect_uri
oauth.processing.scope
oauth.processing.response_type
oauth.processing.state
oauth.processing.resource_owner
oauth.processing.refresh_token
oauth.processing.code
oauth.processing.token
oauth.processing.token_type_hint
oauth.processing.nonce
oauth.processing.max_age
oauth.processing.oidc_values_requested
oauth.processing.id_token_requested
oauth.processing.oidc_signing_algorithm
oauth.processing.code_challenge
oauth.processing.code_challenge_method
oauth.processing.code_verifier
oauth.processing.metadata.access_token
oauth.processing.metadata.payload
oauth.processing.metadata.azcode_miscinfo
oauth.processing.verified_code.client_id
oauth.processing.verified_code.resource_owner
oauth.processing.verified_code.misc_info
oauth.processing.verified_code.scope
oauth.processing.verified_code.is_verified
oauth.processing.verified_code.nonce
oauth.processing.verified_refresh_token.client_id
oauth.processing.verified_refresh_token.resource_owner
oauth.processing.verified_refresh_token.misc_info
oauth.processing.verified_refresh_token.scope
oauth.processing.verified_refresh_token.refresh_token_count
oauth.processing.verified_refresh_token.is_verified
oauth.processing.verified_refresh_token.one_time_use
oauth.processing.verified_refresh_token.grant_typegateway-script-Richtlinie, die
vor einer OAuth-Richtlinie in Ihrer API-Assembly ausgeführt wird und einen angepassten Bereich zur Anforderung hinzufügt:// Add another custom scope to the request
let scope = context.get("request.parameters.scope.values[0]");
if (scope)
context.set("oauth.processing.scope", scope + " custom");gateway-script-Richtlinie, die zwischen OAuth-Richtlinien in Ihrer Assembly ausgeführt wird und den Bereich abhängig vom Ressourceneigner ändert:// Check resource owner and modify the scope
let owner = context.get("oauth.processing.resource_owner");
let scope = context.get("oauth.processing.scope");
if (owner === 'admin') {
context.set("oauth.processing.scope", scope + " admin");
} else {
context.set("oauth.processing.scope", scope + " customer");
}Erweiterte Bereichskontextvariablen
Die folgenden Kontextvariablen werden in der erweiterten OAuth-Bereichsüberprüfung verwendet. Sie werden mit den Werten gefüllt, die in den Feldern Endpunkt und TLS-Clientprofil für Anwendungsbereichsüberprüfung und Eignerbereichsüberprüfung in der nativen OAuth-Provider-Konfiguration eingegeben wurden. Ändern Sie diese Werte nicht, da dies fehlerhafte Operationen im erweiterten Bereich zur Folge haben könnte.
Informationen zur Bereichskonfiguration finden Sie unter Bereiche für einen nativen OAuth-Provider konfigurieren. Informationen zur erweiterten Bereichsüberprüfung finden Sie unter Bereich.
oauth.advscope.app.url
oauth.advscope.app.tls-profile
oauth.advscope.own.url
oauth.advscope.own.tls-profile
Angepasste Fehlerkontextvariablen
oauth.custom_error.status.code
oauth.custom_error.status.reason
oauth.custom_error.message
oauth.custom_error.description