Ustawianie zasady OAuthOAuth22Info

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Co

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

Możesz tylko dodawać lub modyfikować atrybuty niestandardowe. Za pomocą tej zasady nie możesz zmieniać pól, takich jak zakres, stan, wygasa data ważności, deweloper_email, identyfikator klienta, nazwa organizacji czy odświeżenie_liczby. Jeśli atrybut już istnieje, ta zasada go aktualizuje. Jeśli nie istnieje, jest dodawana przez zasadę. Przywoływany token dostępu musi być prawidłowy i zatwierdzony.

Sample

Podstawowy przykład

Poniżej znajdziesz przykład zasady używanej do aktualizowania tokena dostępu OAuth 2.0. Przykład poniżej pozwala znaleźć token dostępu w wiadomości żądania, wyszukując parametr zapytania o nazwie access_token. Gdy aplikacja kliencka przedstawi token dostępu, poniższe zasady zlokalizują go w parametrze zapytania. Następnie zostanie zaktualizowany profil tokena dostępu. Spowoduje to dodanie do profilu właściwości niestandardowej o nazwie department.id.

<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 elementów 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">

Tabela poniżej zawiera opis atrybutów wspólnych dla wszystkich elementów nadrzędnych zasad:

Atrybut Opis Domyślne 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>, aby oznaczyć zasadę w edytorze serwera proxy interfejsu zarządzania inną nazwą w języku naturalnym.

Nie dotyczy Wymagane
continueOnError

Ustaw wartość false, aby zwracać błąd w przypadku niepowodzenia zasady. Jest to normalne działanie większości zasad.

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

false Opcjonalnie
enabled

Ustaw jako true, aby wymuszać zasadę.

Ustaw wartość false, aby wyłączyć tę zasadę. Zasada nie będzie egzekwowana, nawet jeśli pozostanie dołączona do procesu.

prawda Opcjonalnie
async

Ten atrybut został wycofany.

false Wycofano

Element <DisplayName>

Użyj oprócz atrybutu name, aby oznaczyć zasadę w edytorze serwera proxy interfejsu zarządzania inną nazwą w języku naturalnym.

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

Nie dotyczy

Jeśli pominiesz ten element, zostanie użyta wartość atrybutu name zasady.

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 żądania wiadomości jako parametr zapytania, wpisz request.queryparam.access_token. Możesz użyć dowolnej prawidłowej zmiennej, która odwołuje się do tokena. Można też przekazać ciąg tokena dosłownego (rzadki przypadek).

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

Atrybuty

Atrybut Opis Domyślne Obecność
referencja

Zmienna tokena dostępu. Zwykle pobierany ze zmiennej przepływu.

Nie dotyczy Opcjonalnie

Element <Attributes>

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

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

Element <Attributes>/<Attribute>

Pojedynczy atrybut do zaktualizowania.

Atrybut name wskazuje właściwość niestandardową profilu tokena dostępu, która ma zostać zaktualizowana. W tym przykładzie pokazujemy, jak używać wskazanej zmiennej i wartości statycznej.

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

Atrybuty

Atrybut Opis Domyślne Obecność
nazwa Nazwa atrybutu profilu do dodania lub zmiany. Nie dotyczy
referencja

Wartość przypisana do atrybutu profilu.

Nie dotyczy Opcjonalnie

Zmienne przepływu

Jeśli wszystko się uda, ustawione zostaną 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 definiowany przez schemat XML (.xsd). Schematy zasad są dostępne na GitHubie.

Informacje o błędach

W tej sekcji opisujemy kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, jeśli opracowujesz reguły dotyczące błędów do obsługi takich błędów. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postę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 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 Informacje o tym, jak rozwiązać ten problem, znajdziesz w tym poście w społeczności Apigee.

Błędy wdrażania

Informacje o błędach wdrażania znajdziesz w komunikacie zgłoszonym w interfejsie.

Zmienne błędów

Te zmienne są ustawiane, gdy 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 środowiska wykonawczego powyżej. Nazwa błędu to ostatnia część kodu. 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