Ustawianie zasady OAuthOAuth22Info

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Co

Umożliwia dodawanie lub aktualizowanie atrybutów niestandardowych powiązanych z tokenem dostępu. Atrybuty niestandardowe może zawierać np. nazwę działu, identyfikator klienta lub identyfikator sesji. Zobacz też Dostosowywanie tokenów Authorization Codes (Kody autoryzacji).

Możesz tylko dodawać lub modyfikować atrybuty niestandardowe. Za pomocą tej zasady nie można zmieniać pól takich jak zakres, stan, wygasa_adres, adres e-mail dewelopera, client_id, org_name lubrefresh_count. Jeśli już istnieje, ta zasada go aktualizuje. Jeśli taki plik nie istnieje, zostanie dodany przez zasadę. token dostępu musi być prawidłowy i w stanie zatwierdzonym.

Przykłady

Podstawowy przykład

Poniżej znajduje się przykładowa zasada używana do zaktualizowania tokena dostępu OAuth 2.0. Przykład poniżej znajduje token dostępu w wiadomości żądania, wyszukując parametr zapytania o nazwie access_token Gdy aplikacja kliencka przedstawia token dostępu, zasada poniżej zlokalizuje token dostępu w parametrze zapytania. Następnie zaktualizuje uprawnienia dostępu przez token. Dodaje do tabeli właściwość niestandardową o nazwie department.id profil.

<SetOAuthV2Info name="SetOAuthV2Info"> 
  <AccessToken ref="request.queryparam.access_token"></AccessToken>
  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
  </Attributes>
</SetOAuthV2Info>

Odniesienie do elementu

Dokumentacja elementu opisuje elementy i atrybuty zasady SetOAuthV2.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="SetOAuthV2Info-1">    
    <DisplayName>Set OAuth v2.0 Info 1</DisplayName>
    <AccessToken ref={some-variable}></AccessToken>
    <Attributes/>
</SetOAuthV2Info>
</xml>

<SetOAuthV2Info> atrybuty

<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">

W tej tabeli opisano atrybuty wspólne dla wszystkich elementów nadrzędnych zasad:

Atrybut Opis Domyślny Obecność
name

Wewnętrzna nazwa zasady. Wartość atrybutu name może zawierać litery, cyfry, spacje, łączniki, podkreślenia i kropki. Ta wartość nie może przekracza 255 znaków.

Opcjonalnie możesz użyć elementu <DisplayName> do oznaczenia zasady jako edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.

Nie dotyczy Wymagane
continueOnError

Ustaw jako false, aby w przypadku niepowodzenia zasady zwracany był błąd. To normalne w przypadku większości zasad.

Ustaw jako true, aby wykonywanie przepływu było kontynuowane nawet po zastosowaniu zasady niepowodzenie.

fałsz Opcjonalnie
enabled

Aby egzekwować zasadę, ustaw wartość true.

Aby wyłączyć zasadę, ustaw wartość false. Te zasady nie będą jest wymuszane nawet wtedy, gdy jest ono połączone z przepływem.

prawda Opcjonalnie
async

Ten atrybut został wycofany.

fałsz Wycofano

&lt;DisplayName&gt; element

Używaj oprócz atrybutu name do oznaczania zasady w edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.

<DisplayName>Policy Display Name</DisplayName>
Domyślny

Nie dotyczy

Jeśli pominiesz ten element, atrybut name zasady otrzyma wartość .

Obecność Opcjonalnie
Typ Ciąg znaków

&lt;AccessToken&gt; element

Określa zmienną, w której znajduje się token dostępu. Jeśli na przykład token dostępu to do wiadomości jako parametru zapytania, określ request.queryparam.access_token Możesz użyć dowolnej prawidłowej zmiennej, która odwołuje się do token. Można też przekazać ciąg tokena literału (rzadkie litery).

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
Domyślne: Nie dotyczy
Obecność: Wymagane
Typ: Ciąg znaków

Atrybuty

Atrybut Opis Domyślny Obecność
odsyłacz

Zmienna tokena dostępu. Wartość jest zwykle pobierana ze zmiennej przepływu.

Nie dotyczy Opcjonalnie

&lt;Attributes&gt; element

Zestaw atrybutów w profilu tokena dostępu, które będą zmodyfikowane lub uzupełnione.

Domyślne: Nie dotyczy
Obecność: Wymagane
Typ: Nie dotyczy

&lt;Attributes&gt;/&lt;Attribute&gt; element

Pojedynczy atrybut do zaktualizowania.

Atrybut name określa właściwość niestandardową profilu tokena dostępu, który ma zostać Zaktualizowano. Z tego przykładu dowiesz się, jak użyć wskazanej zmiennej i wartości statycznej.

  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
    <Attribute name="foo">bar</Attribute>
  </Attributes>
Domyślne: Nie dotyczy
Obecność: Opcjonalnie
Typ: Nie dotyczy

Atrybuty

Atrybut Opis Domyślny Obecność
nazwa Nazwa atrybutu profilu, który chcesz dodać lub zmienić. Nie dotyczy
odsyłacz

Wartość do przypisania do atrybutu profilu.

Nie dotyczy Opcjonalnie

Zmienne przepływu

Po udanym działaniu zostaną ustawione następujące zmienne procesu:

  • oauthv2accesstoken.{policyName}.access_token
  • oauthv2accesstoken.{policyName}.client_id
  • oauthv2accesstoken.{policyName}.refresh_count
  • oauthv2accesstoken.{policyName}.organization_name
  • oauthv2accesstoken.{policyName}.expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.refresh_token_expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.issued_at
  • oauthv2accesstoken.{policyName}.status
  • oauthv2accesstoken.{policyName}.api_product_list
  • oauthv2accesstoken.{policyName}.token_type
  • oauthv2accesstoken.{policyName}.{custom_attribute_name}

Schemat

Każdy typ zasad jest definiowany przez schemat XML (.xsd). Schematy zasad są dostępne na GitHubie.

Informacje o błędzie

W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna
steps.oauth.v2.access_token_expired 500 Token dostępu wysłany do zasady stracił ważność.
steps.oauth.v2.invalid_access_token 500 Token dostępu wysłany do zasady jest nieprawidłowy.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Więcej informacji: ten post na karcie Społeczność Apigee z informacjami o rozwiązywaniu tego problemu.

Błędy wdrażania

Więcej informacji o błędach wdrażania znajdziesz w komunikacie zgłoszonym w interfejsie.

Zmienne błędów

Te zmienne są ustawiane, gdy ta zasada wywołuje błąd w czasie działania.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. oauthV2.SetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. oauthV2.SetTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. oauthV2.SetTokenInfo.cause = Invalid Access Token

Przykładowa odpowiedź na błąd

{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}

Przykładowa reguła błędu

<FaultRule name=SetOAuthV2Info Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>

Powiązane artykuły