Ustawianie zasady OAuthOAuth22Info

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Co

Umożliwia dodawanie lub aktualizowanie atrybutów niestandardowych powiązanych z tokenem dostępu. Atrybuty niestandardowe mogą obejmować takie informacje jak nazwa działu, identyfikator klienta lub identyfikator sesji. Zobacz też Dostosowywanie tokenów i kodów autoryzacji.

Możesz tylko dodawać lub modyfikować atrybuty niestandardowe. Nie możesz używać tej zasady do zmiany pól takich jak zakres, stan, expires_in, developer_email, client_id, org_name czy refresh_count. Jeśli atrybut już istnieje, ta zasada go aktualizuje. Jeśli nie istnieje, zasada go dodaje. Token dostępu, do którego się odwołujesz, musi być prawidłowy i mieć zatwierdzony stan.

Przykłady

Podstawowy przykład

Poniżej znajdziesz przykład zasady używanej do aktualizowania tokena dostępu OAuth 2.0. Poniższy przykład lokalizuje token dostępu w wiadomości żądania, wyszukując parametr zapytania o nazwie access_token. Gdy aplikacja kliencka przedstawi token dostępu, zasada poniżej znajdzie go w parametrze zapytania. Następnie zaktualizuje profil tokena dostępu. Do profilu doda właściwość niestandardową o nazwie department.id do profilu.

<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

Odniesienie do 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>

Atrybuty <SetOAuthV2Info>

<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

Element <AccessToken>

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

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
Nazwą domyślną jest Nie dotyczy
Obecność Wymagane
Typ Ciąg znaków

Atrybuty

Atrybut Opis Domyślny Obecność
ref

Zmienna tokena dostępu. Zazwyczaj pobierana ze zmiennej przepływu.

Nie dotyczy Opcjonalny

Element <Attributes>

Zestaw atrybutów w profilu tokena dostępu, które zostaną zmodyfikowane lub rozszerzone.

Nazwą domyślną jest Nie dotyczy
Obecność Wymagane
Typ Nie dotyczy

Element <Attributes>/<Attribute>

Pojedynczy atrybut do zaktualizowania.

Atrybut name określa właściwość niestandardową profilu tokena dostępu, która ma zostać zaktualizowana. Ten przykład pokazuje, jak używać wartości zmiennej, do której się odwołujesz, oraz wartości statycznej.

  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
    <Attribute name="foo">bar</Attribute>
  </Attributes>
Nazwą domyślną jest Nie dotyczy
Obecność Opcjonalny
Typ Nie dotyczy

Atrybuty

Atrybut Opis Domyślny Obecność
name Nazwa atrybutu profilu, który chcesz dodać lub zmienić. Nie dotyczy
ref

Wartość, która ma zostać przypisana do atrybutu profilu.

Nie dotyczy Opcjonalny

Zmienne przepływu

W przypadku powodzenia zostaną ustawione te zmienne przepływu:

  • 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 zasady jest zdefiniowany przez schemat XML (.xsd). Schematy zasad są dostępne na GitHubie.

Odniesienie do błędu

W tej sekcji opisujemy kody błędów i komunikaty o błędach zwracane przez Edge oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli tworzysz reguły błędów do obsługi błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach związanych z zasadamiPostępowanie w przypadku błędów.

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 wygasł.
steps.oauth.v2.invalid_access_token 500 Token dostępu wysłany do zasad jest nieprawidłowy.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Informacje o rozwiązywaniu tego problemu znajdziesz w  tym poście na forum społeczności Apigee.

Błędy wdrażania

Informacje o błędach wdrażania znajdziesz w komunikacie wyświetlanym w interfejsie.

Zmienne błędów

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

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu wymienionego w tabeli Błędy środowiska wykonawczego powyżej. Nazwa usterki to ostatnia część kodu usterki. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name to nazwa zasady, która spowodowała błąd, określona przez użytkownika. oauthV2.SetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name to nazwa zasady, która spowodowała błąd, określona przez użytkownika. oauthV2.SetTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name to nazwa zasady, która spowodowała błąd, określona przez użytkownika. 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