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