OAuth-Ablaufvariablen

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Apigee Edge kapselt OAuth 1.0a- und OAuth 2-Funktionen in einer Reihe von Richtlinien. Die Lebenszyklusverwaltung von Tokens und Secrets, einschließlich Generierung, Validierung und Speicherung, wird von Apigee Edge im Namen Ihrer Back-End-Dienste verwaltet.

In diesem Dokument werden die durch OAuth-Richtlinien definierten Flussvariablen angegeben. Mit den Variablen können benutzerdefiniertes Verhalten für OAuth-Abläufe implementiert werden. Informationen zur OAuth-Verwendung finden Sie unter OAuth.

OAuth 2.0-Ablaufvariablen

Die in dieser Tabelle definierten Ablaufvariablen werden beim Ausführen der entsprechenden OAuth-Richtlinien ausgefüllt und sind somit für andere Richtlinien oder Anwendungen verfügbar, die im API-Proxy-Ablauf ausgeführt werden.

Richtlinie für Zugriffstoken überprüfen
  • organization_name
  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • accesstoken.{custom_attribute}
  • issued_at
  • expires_in
  • status
  • scope
  • apiproduct.name*
  • apiproduct.<custom_attribute_name>*

* API-Produktvariablen

Beispielrichtlinie:

<OAuthV2 name="VerifyAccessToken">
    <Operation>VerifyAccessToken</Operation>
    <Scope>space-separated-scopes</Scope>*
    <AccessToken>flow.variable</AccessToken>*        
    <AccessTokenPrefix>Bearer</AccessTokenPrefix>*
</OAuthV2>

Es werden nur Inhabertokens unterstützt. MAC-Tokens werden nicht unterstützt.

Das Zugriffstoken muss standardmäßig im Autorisierungs-HTTP-Anfrageheader übergeben werden.

Beispiel:

"Authorization: Bearer {PlainText_AccessToken}"

Beliebige flow.variable können übergeben werden als:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Wenn die optionalen Felder nicht angegeben sind, werden die Werte gemäß der OAuth 2.0-Spezifikation extrahiert.

Richtlinie für Autorisierungscode generieren
Variablen, die bei Erfolg festgelegt werden:
  • oauthv2authcode.{policy_name}.code
  • oauthv2authcode.{policy_name}.redirect_uri
  • oauthv2authcode.{policy_name}.scope
  • oauthv2authcode.{policy_name}.client_id

Beispielrichtlinie:

<OAuthV2 name="GetAuthCode">
  <Operation>GenerateAuthorizationCode</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <ResponseType>flow.variable</ResponseType>*
  <ClientId>flow.variable</ClientId>*
  <RedirectUri>flow.variable</RedirectUri>*
  <Scope>flow.variable</Scope>*
  <State>flow.variable</State>*
  <Attributes>*   
    <Attribute name=”1” ref=”flow.variable”>value1</Attribute>
    <Attribute name=”2” ref=”flow.variable”>value2</Attribute>
  </Attributes>
</OAuthV2>

* Optional

Beliebige flow.variable können übergeben werden als:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Wenn die optionalen Felder nicht angegeben sind, werden die Werte gemäß der OAuth 2.0-Spezifikation extrahiert.

Attributwerte werden dynamisch aus der angegebenen Ablaufvariablen oder statisch unter Verwendung eines Standardwerts in der Richtlinie abgeleitet.

Wenn beide angegeben werden, hat die Flussvariable Vorrang.

Zugriffstoken-Richtlinie für Berechtigungstypen „Autorisierungscode“, „Nutzeranmeldedaten“ und „Clientanmeldedaten“ generieren
Variablen, die bei Erfolg festgelegt werden:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Beispielrichtlinie:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <SupportedGrantTypes>*
    <GrantType>authorization_code</GrantType>
    <GrantType>password</GrantType>
   <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>flow.variable</GrantType>* 
  <ClientId>flow.variable</ClientId>* 
  <RedirectUri>flow.variable</RedirectUri>* 
  <Scope>flow.variable</Scope>* 
  <AppEndUser>flow.variable</AppEndUser>* 
  <Code>flow.variable</Code>* 
  <UserName>flow.variable</UserName>* 
  <PassWord>flow.variable</PassWord>*
  <Attributes>*
    <Attribute name=”1” ref=”flow.variable”>value1</Attribute> 
    <Attribute name=”2” ref=”flow.variable”>value2</Attribute>  
  </Attributes>
</OAuthV2>

* Optional

Beliebige flow.variable können übergeben werden als:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Wenn die optionalen Felder nicht angegeben sind, werden die Werte gemäß der OAuth 2.0-Spezifikation extrahiert.

Attributwerte werden dynamisch aus der angegebenen Ablaufvariablen oder statisch unter Verwendung eines Standardwerts in der Richtlinie abgeleitet.

Wenn beide angegeben werden, hat die Flussvariable Vorrang.

Zugriffstoken-Richtlinie für impliziten Gewährungstyp generieren
Variablen, die bei Erfolg festgelegt werden:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Beispielrichtlinie:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessTokenImplicitGrant</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <ResponseType>flow.variable></ResponseType>*
  <ClientId>flow.variable></ClientId>*
  <RedirectUri>flow.variable></RedirectUri>*
  <Scope>flow.variable></Scope>*
  <State>flow.variable></State>*
  <AppEndUser>flow.variable</AppEndUser>*                                   
  <Attributes>*
    <Attribute name=”1” ref=”flow.variable”>value1</Attribute>
    <Attribute name=”2” ref=”flow.variable”>value2</Attribute>
  </Attributes>
</OAuthV2>

* Optional

Beliebige flow.variable können übergeben werden als:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Wenn die optionalen Felder nicht angegeben sind, werden die Werte gemäß der OAuth 2.0-Spezifikation extrahiert.

Attributwerte werden dynamisch aus der angegebenen Ablaufvariablen oder statisch unter Verwendung eines Standardwerts in der Richtlinie abgeleitet.

Wenn beide angegeben werden, hat die Flussvariable Vorrang.

Richtlinie für Zugriffstoken aktualisieren
Variablen, die bei Erfolg festgelegt werden:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Beispielrichtlinie:

<OAuthV2 name="RefreshAccessToken">
  <Operation>RefreshAccessToken</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <GrantType>flow.variable</GrantType>*
  <RefreshToken>flow.variable</RefreshToken>*
</OAuthV2>

* Optional

Beliebige flow.variable können übergeben werden als:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

Wenn die optionalen Felder nicht angegeben sind, werden die Werte gemäß der OAuth 2.0-Spezifikation extrahiert.

Richtlinie für Kundenattribute abrufen

Beispielrichtlinie:

<GetOAuthV2Info name="GetClientAttributes">
<ClientId ref="{variable_name}"/>
</GetOAuthV2Info>

Beispielrichtlinie:

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
Richtlinie für Zugriffstoken-Attribute abrufen
Variablen, die bei Erfolg festgelegt werden:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.scope
  • oauthv2accesstoken.{policy_name}.refresh_token
  • oauthv2accesstoken.{policy_name}.accesstoken.{custom_attribute_name}
  • oauthv2accesstoken.{policy_name}.developer.id
  • oauthv2accesstoken.{policy_name}.developer.app.name
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.status

Beispielrichtlinie:

<GetOAuthV2Info name="GetTokenAttributes">
  <AccessToken ref="{variable_name}"/>
</GetOAuthV2Info>

Beispielrichtlinie:

<GetOAuthV2Info name="GetTokenAttributes">
<AccessToken>{access_token}</AccessToken>
</GetOAuthV2Info>
Richtlinie für Autorisierungscodeattribute abrufen

Beispielrichtlinie:

<GetOAuthV2Info name="GetAuthCodeAttributes">
 <AuthorizationCode ref="{variable_name}"/>
</GetOAuthV2Info>

Beispielrichtlinie:

<GetOAuthV2Info name="GetAuthCodeAttributes">
    <AuthorizationCode>{authorization_code}</AuthorizationCode>
</GetOAuthV2Info>
Richtlinie für Attribute für Aktualisierungstokens abrufen

Beispielrichtlinie:

<GetOAuthV2Info name="GetTokenAttributes">
  <RefreshToken ref="{variable_name}"/>
</GetOAuthV2Info>

Beispielrichtlinie:

<GetOAuthV2Info name="GetTokenAttributes">
    <RefreshToken>{refresh_token}</RefreshToken>
</GetOAuthV2Info>

OAuth 1.0a-Ablaufvariablen

Die in dieser Tabelle definierten Ablaufvariablen werden beim Ausführen der entsprechenden OAuth-Richtlinien ausgefüllt und sind somit für andere Richtlinien oder Anwendungen verfügbar, die im API-Proxy-Ablauf ausgeführt werden.

Tokenrichtlinie für Anfrage generieren

Beispielrichtlinie:

<OAuthV1 name="GenerateRequestToken">
  <Operation>GenerateRequestToken</Operation>
</OAuthV1>

Bei Erfolg festgelegte Variablen:

  • oauth_token
  • oauth_token_secret
  • oauth_callback_confirmed
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Richtlinie für Zugriffstoken generieren

Beispielrichtlinie:

<OAuthV1 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
</OAuthV1>

Bei Erfolg festgelegte Variablen:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Richtlinie zur Überprüfung von Zugriffstoken

Beispielrichtlinie:

<OAuthV1 name="VerifyAccessToken">
  <Operation>VerifyAccessToken</Operation>
</OAuthV1>

Bei Erfolg festgelegte Variablen:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

API-Schlüsselrichtlinie prüfen

Beispielrichtlinie:

<GetOAuthV1Info name="VerifyApiKey">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <APIKey ref="{variable_name}" />
</GetOAuthV1Info>

* Optional

Bei Erfolg festgelegte Variablen:

  • oauth_consumer_key
  • oauth_consumer_secret

Nutzerrichtlinie bestätigen

Beispielrichtlinie:

<GetOAuthV1Info name="VerifyConsumer">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <ConsumerKey ref="{variable_name}" />
</GetOAuthV1Info>

* Optional

Bei Erfolg festgelegte Variablen:

  • oauth_consumer_key
  • oauth_consumer_secret

Tokenrichtlinie prüfen

Beispielrichtlinie:

<GetOAuthV1Info name="VerifyToken">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <RequestToken ref="{variable_name}" />
</GetOAuthV1Info>

* Optional

Bei Erfolg festgelegte Variablen:

  • oauth_token
  • oauth_token_secret