Zasady OASwalidacji

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Informacje o zasadzie OASValidation

Zasada OASValidation (OpenAPI Specification Validation) umożliwia weryfikację przychodzącego żądania lub wiadomości z odpowiedzią na podstawie specyfikacji OpenAPI 3.0 (JSON lub YAML). Zobacz Jakie treści są weryfikowane?

Zasada OASValidation określa nazwę specyfikacji OpenAPI, która ma być używana do weryfikacji, gdy wykonywany jest krok, do którego jest dołączona. Specyfikacja OpenAPI jest przechowywana jako zasób w standardowej lokalizacji w pakiecie proxy interfejsu API: apiproxy/resources/oas. Specyfikacja OpenAPI musi mieć rozszerzenie .json, .yml lub .yaml.

Dodaj specyfikację OpenAPI jako zasób do pakietu proxy interfejsu API za pomocą interfejsu lub interfejsu API zgodnie z opisem w artykule Zarządzanie zasobami.

Jakie treści są weryfikowane?

W tabeli poniżej znajdziesz podsumowanie treści wiadomości z prośbą, które są weryfikowane przez zasadę OASValidation, według komponentu.

Komponenty Poproś o weryfikację
Basepath Weryfikuje ścieżkę podstawową zdefiniowaną przez serwer proxy interfejsu API; ignoruje ścieżkę podstawową określoną w specyfikacji OpenAPI.
Ścieżka Sprawdza, czy ścieżka żądania (bez ścieżki podstawowej) pasuje do jednego ze wzorców ścieżek zdefiniowanych w specyfikacji OpenAPI.
Czasownik Sprawdza, czy w specyfikacji OpenAPI zdefiniowano czasownik dla ścieżki.
Treść wiadomości żądania
  • W razie potrzeby sprawdza, czy w żądaniu znajduje się treść wiadomości.
  • Opcjonalnie weryfikuje treść wiadomości pod kątem schematu treści żądania operacji w specyfikacji OpenAPI. Skonfiguruj tę opcję za pomocą <ValidateMessageBody>

Uwaga: zasada weryfikuje treść wiadomości żądania ze specyfikacją OpenAPI tylko wtedy, gdy nagłówek Content-Type ma wartość application/json. Jeśli typ treści nie jest ustawiony na application/json, weryfikacja treści wiadomości żądania zostanie automatycznie zakończona (bez faktycznego sprawdzania treści).

Parametry
  • Sprawdza, czy w żądaniu znajdują się wymagane parametry, w tym parametry ścieżki, nagłówka, zapytania i pliku cookie.
  • Sprawdza, czy wartości parametrów są zgodne z wartościami zdefiniowanymi w specyfikacji OpenAPI.
  • Opcjonalnie sprawdza, czy w żądaniu występują parametry, które nie są zdefiniowane w specyfikacji OpenAPI. Skonfiguruj tę opcję za pomocą <AllowUnspecifiedParameters>

W tej tabeli znajdziesz podsumowanie treści wiadomości odpowiedzi, które są weryfikowane przez komponenty zasad OASValidation.

Komponenty Weryfikacja odpowiedzi
Ścieżka Sprawdza, czy ścieżka żądania (bez ścieżki podstawowej) pasuje do jednego ze wzorców ścieżek zdefiniowanych w specyfikacji OpenAPI.
Czasownik Sprawdza, czy w specyfikacji OpenAPI zdefiniowano czasownik dla ścieżki.
Treść wiadomości z odpowiedzią
  • W razie potrzeby sprawdza, czy w odpowiedzi znajduje się treść wiadomości.
  • Sprawdza, czy nagłówki odpowiedzi w specyfikacji OpenAPI są obecne w wiadomości z odpowiedzią oraz czy wartość nagłówków odpowiedzi jest zgodna ze schematem.
  • Opcjonalnie sprawdza treść wiadomości pod kątem schematu treści odpowiedzi operacji w specyfikacji OpenAPI. Skonfiguruj tę opcję za pomocą <ValidateMessageBody>

Przykłady

Przykłady poniżej pokazują, jak za pomocą zasady OASValidation weryfikować wiadomości na podstawie specyfikacji OpenAPI 3.0.

Weryfikowanie wiadomości z prośbą

W tym przykładzie zasada myoaspolicy weryfikuje treść komunikatu żądania pod kątem schematu treści komunikatu żądania operacji zdefiniowanego w specyfikacji OpenAPI my-spec.json.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.json</OASResource>
   <Options>
      <ValidateMessageBody>true</ValidateMessageBody>
   </Options>
   <Source>request</Source>
</OASValidation>

Jeśli treść wiadomości nie jest zgodna ze specyfikacją OpenAPI, zwracany jest błąd policies.oasvalidation.Failed.

Weryfikowanie parametrów

W tym przykładzie zasada jest skonfigurowana tak, aby zwracać błąd, jeśli w żądaniu określono nagłówek, zapytanie lub parametr pliku cookie, który nie jest zdefiniowany w specyfikacji OpenAPI.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>false</Header>
         <Query>false</Query>
         <Cookie>false</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

Element <OASValidation>

Definiuje zasadę weryfikacji specyfikacji OpenAPI.

Wartość domyślna Patrz karta Zasady domyślne poniżej
Wymagane? Wymagane
Typ Obiekt złożony
Element nadrzędny nie dotyczy
Elementy podrzędne <DisplayName>
<OASResource>
<Source>
<Options>
<Source>

Składnia

Element <OASValidation> ma tę składnię:

<OASValidation
  continueOnError="[true|false]"
  enabled="[true|false]"
  name="policy_name"
>
    <!-- All OASValidation child elements are optional except OASResource -->
    <DisplayName>policy_display_name</DisplayName>
    <OASResource>validation_JSON_or_YAML</OASResource>
    <Options>
        <ValidateMessageBody>[true|false]</ValidateMessageBody>
        <AllowUnspecifiedParameters>
            <Header>[true|false]</Header>
            <Query>[true|false]</Query>
            <Cookie>[true|false]</Cookie>
        </AllowUnspecifiedParameters>
    </Options>
    <Source>message_to_validate</Source>
</OASValidation>

Zasady domyślne

Poniższy przykład pokazuje ustawienia domyślne po dodaniu do przepływu w interfejsie Apigee zasady weryfikacji OAS:

<OASValidation continueOnError="false" enabled="true" name="OpenAPI-Spec-Validation-1">
    <DisplayName>OpenAPI Spec Validation-1</DisplayName>
    <Properties/>
    <Source>request</Source>
    <OASResource>oas://OpenAPI-Spec-Validation-1.yaml</OASResource>
</OASValidation>

Ten element ma te atrybuty, które są wspólne dla wszystkich zasad:

Atrybut Domyślnie Wymagany? Description
name Nie dotyczy Wymagane

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 użyj elementu <DisplayName>, aby oznaczyć zasadę w edytorze proxy interfejsu zarządzania inną nazwą w języku naturalnym.

continueOnError fałsz Opcjonalnie Ustaw wartość „false”, aby wyświetlać błąd, gdy zasada nie działa. To prawidłowy proces w przypadku większości zasad. Ustaw wartość „true”, aby kontynuować wykonywanie przepływu nawet po wystąpieniu błędu.
enabled prawda Opcjonalnie Ustaw wartość „true”, aby egzekwować zasadę. Ustaw wartość „false”, aby wyłączyć zasadę. Zasada nie będzie egzekwowana, nawet jeśli pozostanie powiązana z przepływem.
async   fałsz Wycofano Ten atrybut został wycofany.

Dokumentacja elementu podrzędnego

W tej sekcji opisujemy elementy podrzędne elementu <OASValidation>.

<DisplayName>

Użyj go w połączeniu z atrybutem name, aby oznaczyć zasadę w edytorze proxy interfejsu zarządzania inną, bardziej naturalnie brzmiącą nazwą.

Element <DisplayName> jest wspólny dla wszystkich zasad.

Wartość domyślna nie dotyczy
Wymagane? Opcjonalnie: Jeśli pominiesz <DisplayName>, użyta zostanie wartość atrybutu name zasady.
Typ Ciąg znaków
Element nadrzędny <PolicyElement>
Elementy podrzędne Brak

Element <DisplayName> ma tę składnię:

Składnia

<PolicyElement>
  <DisplayName>policy_display_name</DisplayName>
  ...
</PolicyElement>

Przykład

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

Element <DisplayName> nie ma atrybutów ani elementów podrzędnych.

<OASResource>

Określa specyfikację OpenAPI, z którą ma być przeprowadzona weryfikacja. Ten plik możesz przechowywać:

  • W zakresie proxy interfejsu API w sekcji /apiproxy/resources/oas w pakiecie proxy interfejsu API
  • W sekcji Resources widoku Nawigator edytora proxy interfejsu API.

Więcej informacji znajdziesz w artykule o zarządzaniu zasobami.

Specyfikację OpenAPI możesz określić za pomocą szablonu wiadomości, np. {oas.resource.url}. W tym przypadku wartość zmiennej przepływu oas.resource.url (w nawiasach klamrowych) zostanie obliczona i podstawiona do ciągu ładunku w czasie wykonywania. Więcej informacji znajdziesz w artykule Szablony wiadomości.

Wartość domyślna Brak
Wymagane? Wymagane
Typ Ciąg znaków
Element nadrzędny <OASValidation>
Elementy podrzędne Brak

Składnia

Element <OASResource> ma tę składnię:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   ...
</OASValidation>

Przykład

Poniższy przykład odwołuje się do specyfikacji my-spec.yaml, która jest przechowywana w pakiecie proxy interfejsu API w folderze /apiproxy/resources/oas:

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
</OASValidation>

Element <OASResource> nie ma atrybutów ani elementów podrzędnych.

<Opcje>

Konfiguruje opcje zasady.

Wartość domyślna nie dotyczy
Wymagane? Opcjonalny
Typ Typ złożony
Element nadrzędny <OASValidation>
Elementy podrzędne <ValidateMessageBody>
<AllowUnspecifiedParameters>

Składnia

Element <Options> ma tę składnię:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <ValidateMessageBody>[true|false]</ValidateMessageBody>
      <AllowUnspecifiedParameters>
         <Header>[true|false]</Header>
         <Query>[true|false]</Query>
         <Cookie>[true|false]</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

Przykład

W tym przykładzie skonfigurowano opcje zasad. Poniżej znajdziesz szczegółowe opisy poszczególnych opcji.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <ValidateMessageBody>false</ValidateMessageBody>
      <AllowUnspecifiedParameters>
         <Header>false</Header>
         <Query>false</Query>
         <Cookie>false</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

<ValidateMessageBody>

Określa, czy zasady mają weryfikować treść wiadomości pod kątem schematu treści żądania operacji w specyfikacji OpenAPI. Ustaw wartość true, aby zweryfikować zawartość treści wiadomości. Ustaw wartość false, aby sprawdzić tylko, czy treść wiadomości istnieje.

Możesz określić, czy wykonanie przepływu ma być kontynuowane po wystąpieniu błędu weryfikacji, ustawiając atrybut continueOnError elementu <OASValidation> na wartość true.

Wartość domyślna fałsz
Wymagane? Opcjonalny
Typ Wartość logiczna
Element nadrzędny <Options>
Elementy podrzędne Brak

Składnia

Element <ValidateMessageBody> ma tę składnię:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
         <ValidateMessageBody>[true|false]</ValidateMessageBody>
   </Options>
   ...
</OASValidation>

Przykład

Ten przykład umożliwia weryfikację treści wiadomości:

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <ValidateMessageBody>true</ValidateMessageBody>
   </Options>
</OASValidation>

<AllowUnspecifiedParameters>

Konfiguruje działanie zasady, jeśli w żądaniu występują parametry nagłówka, zapytania lub pliku cookie, które nie są zdefiniowane w specyfikacji OpenAPI.

Wartość domyślna nie dotyczy
Wymagane? Opcjonalny
Typ Typ złożony
Element nadrzędny <Options>
Elementy podrzędne <Header>
<Query>
<Cookie>

Składnia

Element <AllowUnspecifiedParameters> ma tę składnię:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>[true|false]</Header>
         <Query>[true|false]</Query>
         <Cookie>[true|false]</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

Przykład

W tym przykładzie zasada jest skonfigurowana tak, aby zwracać błąd, jeśli w żądaniu określono nagłówek, zapytanie lub parametr pliku cookie, który nie jest zdefiniowany w specyfikacji OpenAPI.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>false</Header>
         <Query>false</Query>
         <Cookie>false</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

Konfiguruje zachowanie zasady, jeśli w żądaniu występują parametry nagłówka, które nie są zdefiniowane w specyfikacji OpenAPI.

Aby umożliwić określanie w żądaniu parametrów nagłówka, które nie są zdefiniowane w specyfikacji OpenAPI, ustaw ten parametr na true. W przeciwnym razie ustaw ten parametr na false, aby spowodować niepowodzenie wykonania zasady.

Wartość domyślna prawda
Wymagane? Wartość logiczna
Typ Typ złożony
Element nadrzędny <AllowUnspecifiedParameters>
Elementy podrzędne Brak

Składnia

Element <Header> ma tę składnię:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>[true|false]</Header>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

Przykład

W tym przykładzie zasada jest skonfigurowana tak, aby zwracać błąd, jeśli w żądaniu określono parametr nagłówka, który nie jest zdefiniowany w specyfikacji OpenAPI.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Header>false</Header>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

<Query> (element podrzędny elementu <AllowUnspecifiedParameters>)

Konfiguruje działanie zasady, jeśli w żądaniu występują parametry zapytania, które nie są zdefiniowane w specyfikacji OpenAPI.

Aby umożliwić określanie w żądaniu parametrów zapytania, które nie są zdefiniowane w specyfikacji OpenAPI, ustaw ten parametr na true. W przeciwnym razie ustaw ten parametr na false, aby spowodować niepowodzenie wykonania zasady.

Wartość domyślna prawda
Wymagane? Wartość logiczna
Typ Typ złożony
Element nadrzędny <AllowUnspecifiedParameters>
Elementy podrzędne Brak

Składnia

Element <Query> ma tę składnię:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Query>[true|false]</Query>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

Przykład

W tym przykładzie zasada jest konfigurowana tak, aby w przypadku określenia w żądaniu parametru zapytania, który nie jest zdefiniowany w specyfikacji OpenAPI, zwracała błąd.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Query>false</Query>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

Konfiguruje działanie zasady, jeśli w żądaniu występują parametry plików cookie, które nie są zdefiniowane w specyfikacji OpenAPI.

Aby umożliwić określanie w żądaniu parametrów plików cookie, które nie są zdefiniowane w specyfikacji OpenAPI, ustaw ten parametr na true. W przeciwnym razie ustaw ten parametr na false, aby spowodować niepowodzenie wykonania zasady.

Wartość domyślna prawda
Wymagane? Wartość logiczna
Typ Typ złożony
Element nadrzędny <AllowUnspecifiedParameters>
Elementy podrzędne Brak

Składnia

Element <Cookie> ma tę składnię:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Query>[true|false]</Query>
      </AllowUnspecifiedParameters>
   </Options>
   ...
</OASValidation>

Przykład

W tym przykładzie zasada jest konfigurowana tak, aby w przypadku określenia w żądaniu parametru zapytania, który nie jest zdefiniowany w specyfikacji OpenAPI, zwracała błąd.

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Options>
      <AllowUnspecifiedParameters>
         <Cookie>false</Cookie>
      </AllowUnspecifiedParameters>
   </Options>
</OASValidation>

<Source>

Wiadomość JSON, która ma zostać oceniona pod kątem ataków na ładunek JSON. Zwykle jest ona ustawiona na wartość request, ponieważ zazwyczaj musisz ocenić przychodzące żądania z aplikacji klienckich. Aby oceniać wiadomości z odpowiedzią, ustaw wartość response. Ustaw wartość message, aby automatycznie oceniać wiadomość z żądaniem, gdy zasada jest dołączona do przepływu żądania, oraz wiadomość z odpowiedzią, gdy zasada jest dołączona do przepływu odpowiedzi.

Wartość domyślna żądanie
Wymagane? Opcjonalny
Typ Ciąg znaków
Element nadrzędny <Source>
Elementy podrzędne Brak

Składnia

Element <Source> ma tę składnię:

<OASValidation name="policy_name">
   <OASResource>oas://specname[.json|.yaml|.yml]</OASResource>
   <Source>[message|request|response]</Source>
   ...
</OASValidation>

Przykład

W tym przykładzie automatycznie oceniamy wiadomość z żądaniem, gdy zasada jest dołączona do przepływu żądania, oraz wiadomość z odpowiedzią, gdy zasada jest dołączona do przepływu odpowiedzi:

<OASValidation name="myoaspolicy">
   <OASResource>oas://my-spec.yaml</OASResource>
   <Source>message</Source>
</OASValidation>

Element <Source> nie ma atrybutów ani elementów podrzędnych.

Schematy

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

Kody błędów

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.oasvalidation.Failed 500 Nie można zweryfikować treści wiadomości żądania pod kątem podanej specyfikacji OpenAPI.
steps.oasvalidation.SourceMessageNotAvailable 500

Zmienna określona w elemencie <Source> zasady jest poza zakresem lub nie można jej rozpoznać.

steps.oasvalidation.NotMessageVariable 500

Element <Source> jest ustawiony na zmienną, która nie jest typu message.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna
ResourceDoesNotExist Specyfikacja OpenAPI, do której odwołuje się element <OASResource>, nie istnieje.
ResourceCompileFailed Specyfikacja OpenAPI dołączonej do wdrożenia zawiera błędy, które uniemożliwiają jej skompilowanie. Ogólnie oznacza to, że specyfikacja nie jest poprawnie sformułowaną specyfikacją OpenAPI 3.0.
BadResourceURL Nie można przetworzyć specyfikacji OpenAPI, do której odwołuje się element <OASResource>. Ten błąd może wystąpić, jeśli plik nie jest plikiem JSON lub YAML albo adres URL pliku nie jest poprawnie określony.

Zmienne błędów

Te zmienne są ustawiane, gdy zasada wywołuje błąd w czasie działania. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami.

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 Matches "ResourceDoesNotExist"
oasvalidation.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. oasvalidation.myoaspolicy.failed = true

Obsługiwane funkcje specyfikacji OpenAPI

Zasady OASValidation obsługują funkcje specyfikacji OpenAPI, które zostały podsumowane w tabeli poniżej według kategorii. Wymienione są też funkcje, które nie są obsługiwane.

Kategoria Obsługiwane Nieobsługiwane
Formaty typów danych boolean
date
date-time
double
email
float
int32/int64
ipv4/ipv6
md5
sha1/sha256/sha512
string
uri
uri-template
uuid
binary
byte
password
Obiekt wyróżniający mapping
propertyName
Nie dotyczy
Obiekt typu multimediów schemat encoding
example
examples
Obiekt Operations parameters
requestBody
responses
security (partial support)
callbacks
deprecated
servers
Obiekt parametrów allowEmptyValue
in (query, header, path)
required
responses
schema
style (deepObject, form, formmatrix, label, pipeDelimited, simple, spaceDelimited)

Uwaga: deepObject obsługuje tylko parametry ciągu znaków; tablice i obiekty zagnieżdżone nie są obsługiwane.
allowReserved
deprecated
example
examples
content
Obiekt ścieżek delete
get
head
options
parameters
patch
post
put
trace
variables
serwerów,
Obiekt treści żądania application/json
application/hal+json
application/x-www-form-urlencoded (encoding object not supported)
content
required
application/xml
multipart/form-data
text/plain
text/xml
Obiekt odpowiedzi application/json
application/hal+json
application/x-www-form-urlencoded (encoding object not supported)
content
headers
application/xml
links
text/plain
text/xml
Obiekt odpowiedzi default
Kod stanu HTTP
Nie dotyczy
Obiekt schematu $ref
additionalProperties (tylko wariant z flagą logiczną)
allOf (ignorowany, jeśli additionalProperties ma wartość false)
anyOf
enum
exclusiveMaximum/exclusiveMinimum
format
items
maximum/minimum
maxItems/minItems
maxLength/minLength
maxProperties/minProperties
multipleOf
not
nullable
oneOf
pattern
properties
required
title
type
uniqueItems
deprecated
example
readOnly
writeOnly
xml
Obiekt schematu zabezpieczeń w (header, query) (ignorowane, jeśli type ma wartość http)
name
type (apiKey, http)
bearerFormat
flows
openIdConnectUrl
scheme
Obiekt serwera url
variables
Wiele definicji serwera

Powiązane artykuły