API Management etki alanları arası ilkeler

Bu konu, aşağıdaki ilkeler için bir API Management sağlar. İlke ekleme ve yapılandırma hakkında bilgi için bkz. API Management.

Etki alanı arası ilkeler

  • Etki alanı arası çağrılara izin ver - API'yi Adobe Flash ve Microsoft Silverlight tarayıcı tabanlı istemcilerden erişilebilir hale gelir.
  • CORS - Tarayıcı tabanlı istemcilerden etki alanı arası çağrılara izin vermek için bir işlem veya API'ye çıkış noktası arası kaynak paylaşımı (CORS) desteği ekler.
  • JSONP - JavaScript tarayıcı tabanlı istemcilerden etki alanı arası çağrılara izin vermek için bir işlem veya API'ye doldurma (JSONP) desteğiyle JSON ekler.

Etki alanı arası çağrılara izin ver

cross-domainİlkeyi kullanarak API'yi Adobe Flash ve Microsoft Silverlight tarayıcı tabanlı istemcilerden erişilebilir hale gelir.

İlke deyimi

<cross-domain>
    <!-Policy configuration is in the Adobe cross-domain policy file format,
        see https://www.adobe.com/devnet-docs/acrobatetk/tools/AppSec/CrossDomain_PolicyFile_Specification.pdf-->
</cross-domain>

Örnek

<cross-domain>
        <allow-http-request-headers-from domain='*' headers='*' />
</cross-domain>

Öğeler

Ad Açıklama Gerekli
etki alanı arası Kök öğe. Alt öğeler Adobe etki alanı arası ilke dosyası belirtimine uygun olmalıdır. Yes

Kullanım

Bu ilke aşağıdaki ilke bölümlerinde ve kapsamlarında kullanılabilir.

  • İlke bölümleri: gelen
  • İlke kapsamları: tüm kapsamlar

CORS

İlke, tarayıcı tabanlı istemcilerden etki alanı arası çağrılara izin vermek için bir işlem veya API'ye çıkış noktası arası cors kaynak paylaşımı (CORS) desteği ekler.

Not

İstek, API'de tanımlanan OPTIONS yöntemiyle bir işlemle eşiliyorsa CORS ilkeleriyle ilişkili uçuş öncesi istek işleme mantığı yürütülmez. Bu nedenle, bu tür işlemler özel uçuş öncesi işleme mantığını uygulamak için kullanılabilir.

CORS, bir tarayıcının ve sunucunun etkileşim kurmasına ve belirli çıkış noktası arası isteklere (bir web sayfasındaki JavaScript'den diğer etki alanlarına yapılan XMLHttpRequests çağrıları) izin verip vermeyişini belirlemesine olanak sağlar. Bu, yalnızca aynı çıkış noktası isteklerine izin verme esnekliği sağlar, ancak tüm çıkış noktası isteklerine izin vermeden daha güvenlidir.

Geliştirici portalında etkileşimli konsolu etkinleştirmek için CORS ilkesi uygulamanız gerekir. Ayrıntılar için geliştirici portalı belgelerine bakın.

İlke deyimi

<cors allow-credentials="false|true" terminate-unmatched-request="true|false">
    <allowed-origins>
        <origin>origin uri</origin>
    </allowed-origins>
    <allowed-methods preflight-result-max-age="number of seconds">
        <method>http verb</method>
    </allowed-methods>
    <allowed-headers>
        <header>header name</header>
    </allowed-headers>
    <expose-headers>
        <header>header name</header>
    </expose-headers>
</cors>

Örnek

Bu örnekte, özel üst bilgileri veya GET vePOST dışında yöntemlere sahip olanlar gibi, uçuş öncesi isteklerin nasıl desteklenleri gösterir. Özel üst bilgileri ve ek HTTP fiillerini desteklemek için, aşağıdaki allowed-methods örnekte gösterildiği gibi ve bölümlerini allowed-headers kullanın.

<cors allow-credentials="true">
    <allowed-origins>
        <!-- Localhost useful for development -->
        <origin>http://localhost:8080/</origin>
        <origin>http://example.com/</origin>
    </allowed-origins>
    <allowed-methods preflight-result-max-age="300">
        <method>GET</method>
        <method>POST</method>
        <method>PATCH</method>
        <method>DELETE</method>
    </allowed-methods>
    <allowed-headers>
        <!-- Examples below show Azure Mobile Services headers -->
        <header>x-zumo-installation-id</header>
        <header>x-zumo-application</header>
        <header>x-zumo-version</header>
        <header>x-zumo-auth</header>
        <header>content-type</header>
        <header>accept</header>
    </allowed-headers>
    <expose-headers>
        <!-- Examples below show Azure Mobile Services headers -->
        <header>x-zumo-installation-id</header>
        <header>x-zumo-application</header>
    </expose-headers>
</cors>

Öğeler

Ad Açıklama Gerekli Varsayılan
Cors Kök öğe. Yes Yok
izin verilen çıkışlar Etki origin alanı arası istekler için izin verilen çıkışları açıklayan öğeleri içerir. allowed-origins herhangi bir çıkış noktası veya URI içeren bir veya daha fazla öğeye izin vermek için origin belirten tek bir öğe * origin içerebilir. Yes Yok
başlangıç Değer tüm çıkışlara * izin vermek için veya tek bir kaynak belirten bir URI olabilir. URI bir düzen, konak ve bağlantı noktası içermeli. Yes Bağlantı noktası bir URI'de atlanırsa, HTTP için bağlantı noktası 80 ve HTTPS için 443 bağlantı noktası kullanılır.
allowed-methods GET veya POST dışında yöntemlere izin veriliyorsa bu öğe gereklidir. Desteklenen method HTTP fiillerini belirten öğeleri içerir. değeri * tüm yöntemleri gösterir. No Bu bölüm yoksa GET ve POST de desteklenin.
method Bir HTTP fiili belirtir. Bölüm varsa method en az bir öğe allowed-methods gereklidir. Yok
izin verilen üst bilgiler Bu header öğe, istekte yer alan üst bilgileri belirten öğeleri içerir. No Yok
expose-headers Bu header öğe, istemci tarafından erişilebilen üst bilgilerin adlarını belirten öğeleri içerir. No YOK
üst bilgi Bir üst bilgi adı belirtir. içinde veya header bölümü mevcutsa allowed-headers en az bir expose-headers öğe gereklidir. Yok

Öznitelikler

Ad Açıklama Gerekli Varsayılan
allow-credentials Kontrol öncesi yanıtta üst bilgi bu özniteliğin değerine ayarlanır ve istemcinin etki alanı arası isteklerde kimlik bilgilerini gönderme Access-Control-Allow-Credentials becerisini etkiler. No yanlış
terminate-unmatched-request Bu öznitelik, CORS ilke ayarlarıyla eşleşmeden çıkış noktası arası isteklerin iş sürecini kontrol eder. OPTIONS isteği bir uçuş öncesi istek olarak işlendiğinde ve CORS ilke ayarlarıyla eşleşmezse: öznitelik olarak ayarlanırsa, isteği hemen boş true bir 200 Tamam yanıtıyla sonlandırın; özniteliği olarak ayarlanırsa, gelen öğenin doğrudan öğesi olan diğer kapsam içinde CORS ilkelerini kontrol edin false ve bunları uygulayabilirsiniz. CorS ilkeleri bulunamazsa, isteği boş bir 200 Tamam yanıtıyla sonlandırin. GET veya HEAD isteği Kaynak üst bilgisi (bu nedenle çıkış noktası arası istek olarak işlenir) içerir ve CORS ilke ayarlarıyla eşleşmezse: Öznitelik olarak ayarlanırsa, isteği hemen boş true 200 Tamam yanıtıyla sonlandırın; özniteliği olarak false ayarlanırsa, isteğin normal şekilde ilerlemesine izin verme ve yanıta CORS üst bilgileri ekleme. No true
preflight-result-max-age Kontrol öncesi yanıtta üst bilgi bu özniteliğin değerine ayarlanır ve kullanıcı aracılarının uçuş öncesi yanıtı Access-Control-Max-Age önbelleğe alama becerisini etkiler. No 0

Kullanım

Bu ilke aşağıdaki ilke bölümlerinde ve kapsamlarında kullanılabilir.

  • İlke bölümleri: gelen
  • İlke kapsamları: tüm kapsamlar

JSONP

İlke, JavaScript tarayıcı tabanlı istemcilerden etki alanı arası çağrılara izin vermek için bir işlem veya API'ye doldurma jsonp (JSONP) desteğiyle JSON ekler. JSONP, Farklı bir etki alanındaki bir sunucudan veri isteğinde etmek için JavaScript programlarında kullanılan bir yöntemdir. JSONP, web sayfalarına erişimin aynı etki alanında olması gereken çoğu web tarayıcısı tarafından zorlanan sınırlamayı atlar.

İlke deyimi

<jsonp callback-parameter-name="callback function name" />

Örnek

<jsonp callback-parameter-name="cb" />

?cb=XXX geri çağırma parametresi olmadan yöntemini çağırsanız düz JSON (işlev çağrısı sarmalayıcı olmadan) döner.

Geri çağırma parametresini eklersanız bir JSONP sonucu döner ve özgün JSON sonuçlarını gibi geri ?cb=XXX çağırma işlevinin çevresinde sarmalar XYZ('<json result goes here>');

Öğeler

Ad Açıklama Gerekli
Jsonp Kök öğe. Yes

Öznitelikler

Ad Açıklama Gerekli Varsayılan
callback-parameter-name Etki alanı arası JavaScript işlev çağrısının önüne, işlevin bulunduğu tam etki alanı adı ekli. Yes Yok

Kullanım

Bu ilke aşağıdaki ilke bölümlerinde ve kapsamlarında kullanılabilir.

  • İlke bölümleri: giden
  • İlke kapsamları: tüm kapsamlar

Sonraki adımlar

İlkelerle çalışma hakkında daha fazla bilgi için bkz: