Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Bir uygulama, istemci kimlik bilgileri izin türüyle kendi kimlik bilgilerini (İstemci Kimliği ve Client Secret) ekleyebilirsiniz. Öğe kimlik bilgileri geçerliyse Edge, istemci uygulamasına bir erişim jetonu döndürür.
Bu konu hakkında
Bu konu, OAuth 2.0 istemci kimlik bilgileri izin türüne ve bu akışı Apigee Edge'de nasıl uygulayacağınızı anlattı.
Kullanım alanları
Bu izin türü genellikle uygulama aynı zamanda kaynak sahibi olduğunda da kullanılır. Örneğin, bir uygulamanın, gizli tutulan verileri depolayıp almak için arka uç bulut tabanlı depolama hizmetine erişmesi kullandığı veriler yerine kendi işini yapmak için kullandığı araçlardır. Bu izin türü akışı sadece istemci uygulaması ile yetkilendirme sunucusu arasında gerçekleşir. Son kullanıcı bu izin türü akışına katılın.
Roller
Roller "aktörleri" belirtir OAuth akışına dahil olan kullanıcıların bilgilerini de içerir. Şimdi genel hatlarıyla istemci kimlik bilgisi rollerini inceleyerek Apigee Edge'in nereye yerleştiğini gösterebilirsiniz. Eksiksiz bir OAuth 2.0 rolleri hakkında daha fazla bilgi edinmek için IETF OAuth 2.0 spesifikasyonuna bakın.
- İstemci Uygulaması -- Kullanıcının korumalı bir uygulamaya erişmesi gereken uygulama kaynaklar. Bu akışla uygulama genellikle kullanıcının tarayıcısında yerel olarak değil, sunucu üzerinde çalışır. dizüstü bilgisayar veya cihaz.
- Apigee Edge -- Bu akışta Apigee Edge, OAuth yetkilendirmesidir sunucu. Görevi, erişim jetonları oluşturmak, erişim jetonlarını doğrulamak ve yetkilendirilmiş kaynak sunucuya gönderilen korumalı kaynaklar için istek sayısı.
- Kaynak Sunucusu: Korunan verileri depolayan arka uç hizmeti istemci uygulamasının erişim için izne ihtiyacı var. Apigee Edge, ardından Apigee Edge aynı zamanda kaynak sunucudur.
Kod örneği
Burada, tam, çalışan bir GitHub'da istemci kimlik bilgileri izin türünün örnek uygulaması başlıklı makaleyi inceleyin. Daha fazla örnek bağlantıları için aşağıdaki Ek kaynaklar bölümüne bakın.
Akış diyagramı
Aşağıdaki akış şemasında, Apigee Edge ile yapılan istemci kimlik bilgileri akışı gösterilmektedir. emin olmanız gerekir. Genel olarak Edge, aynı zamanda bu akışta kaynak sunucudur. API proxy'leri, korunan kaynaklardır.
Müşteri kimlik bilgileri akışındaki adımlar
İstemci kimlik bilgileri kod verme türünü uygulamak için gereken adımların özetini burada bulabilirsiniz Bu örnekte Apigee Edge, yetkilendirme sunucusu olarak kullanılır. Unutmayın, bu akışla istemci uygulaması yalnızca istemci kimliğini ve istemci gizli anahtarını sunar. Bunlar geçerliyse Apigee Edge erişim jetonu.
Ön koşul: Alınabilmesi için istemci uygulamasının Apigee Edge'e kayıtlı olması gerekir istemci kimliği ve istemci gizli anahtarları dahildir. Aşağıdakiler için İstemci uygulamalarını kaydetme başlıklı makaleyi inceleyin: bolca fırsat sunuyor.
1. Müşteri şunu talep ediyor: erişim jetonu
Erişim jetonu almak için istemci, istemci kimliği değerlerini içeren bir API çağrısını Edge'e gönderir kayıtlı bir geliştirici uygulamasından alınan istemci gizli anahtarı ve istemci gizli anahtarı. Ayrıca, parametre receive_type=client_credentials, sorgu parametresi olarak iletilmelidir. (Bununla birlikte, bu parametreyi istek başlığında veya gövdesinde kabul etmek için OAuthV2 politikasını uygulayın. Ayrıntılar için OAuthV2 politikasına göz atın.
Örneğin:
$ curl -i -H 'Content-Type: application/x-www-form-urlencoded' -X POST 'https://docs-test.apigee.net/oauth/accesstoken' -d 'grant_type=client_credentials&client_id=ns4fQc14Zg4hKFCNaSzArVuwszX95X&client_secret=ZIjFyTsNgQNyxI'
Not: client_id ve client_secret değerlerini sorgu olarak iletebilirsiniz. parametrelerini içeriyorsa, bunları Base64 URL kodlamalı bir dize olarak geçirmek ve Yetkilendirme üst bilgisi. Bunun için base64 kodlama aracı veya yardımcı program kullanarak iki değer iki nokta işaretiyle (iki nokta işaretiyle birlikte) ayırın. Aşağıdaki gibi: aBase64EncodeFunction(clientidvalue:clientsecret). Yukarıdaki örnek, bu:
result = aBase64EncodeFunction(ns4fQc14Zg4hKFCNaSzArVuwszX95X:ZIjFyTsNgQNyxI) // Not: iki değeri birbirinden ayırın.
Yukarıdaki dizede base64 kodlamasının sonucu şu şekildedir: bnM0ZlFjMTRaZzRoS0ZDTmFTekFyVnV3c3pYOTVYOlpJakZ5VHNOZ1FOeXhJOg==
Ardından jeton isteğini şu şekilde yapın:
$ curl -i -H 'Content-Type: application/x-www-form-urlencoded' -X POST 'https://docs-test.apigee.net/oauth/accesstoken' -d 'grant_type=client_credentials' -H 'Authorization: Basic bnM0ZlFjMTRaZzRoS0ZDTmFTekFyVnV3c3pYOTVYOlpJakZ5VHNOZ1FOeXhJOg=='
2. Edge, giriş bilgileri
API çağrısının /accesstoken uç noktasına gönderildiğini unutmayın. Bu uç noktanın bir politikası var kimlik bilgilerini doğrulayan bir e-posta adresi bulunmalıdır. Yani politika, gönderilen politika ile anahtarlarıyla birlikte kullanabilirsiniz. Raporlarınızdaki Edge'deki OAuth uç noktaları hakkında daha fazla bilgi için OAuth'u Yapılandırma başlıklı makaleyi inceleyin. uç noktalar ve politikalar hakkında daha fazla bilgi edinin.
3. Edge yanıt döndürüyor
Kimlik bilgileri uygunsa Edge, istemciye bir erişim jetonu döndürür. Değilse bir hata geri döndü.
4. Müşteri, korumalı API
Artık istemci, geçerli bir erişim jetonuyla korunan API'ye çağrı yapabilir. Burada senaryoda, Apigee Edge'e (proxy) istekler yapılır ve Edge, erişim jetonunu, API çağrısını hedef kaynak sunucusuna iletmeden önce yapmanız gerekir. Örneğin, Aşağıdaki Korunan API'yi çağırma bölümüne bakın.
Akışları ve politikaları yapılandırma
Yetkilendirme sunucusu olarak Edge, erişim jetonu isteklerini işler. API geliştiricisi olarak hem jeton isteklerini işlemek hem de bir sunucu eklemek ve bir OAuthV2 politikası. Bu bölümde, söz konusu uç noktanın nasıl yapılandırılacağı açıklanmaktadır.
Özel akış yapılandırması
API proxy akışının nasıl yapılandırıldığını göstermenin en kolay yolu XML akışını göstermektir belirler. Aşağıda, erişim jetonu isteğini işlemek için tasarlanmış örnek bir API proxy akışı verilmiştir. Örneğin, Örneğin, bir istek geldiğinde ve yol soneki /accesstoken ile eşleştiğinde, GetAccessToken tetiklendiği anlamına gelir. Bkz. OAuth'u Yapılandırma uç noktaları ve politikaları ile özel bir akış oluşturmak için gereken adımlara hızlıca genel bakış İşte bu şekilde.
<Flows> <Flow name="GetAccessToken"> <!-- This policy flow is triggered when the URI path suffix matches /oauth/accesstoken. Publish this URL to app developers to use when obtaining an access token using an auth code --> <Condition>proxy.pathsuffix == "/oauth/accesstoken"</Condition> <Request> <Step><Name>GetAccessToken</Name></Step> </Request> </Flow> </Flows>
Akışı bir politikayla yapılandırma
Aşağıdaki gibi, uç noktaya bir politika eklemeniz gerekir. Bkz. OAuth'u Yapılandırma uç noktalar ve politikalar'ı tıklayın. proxy uç noktasına bağlanır.
Erişim jetonu al
Bu politika, /accesstoken
yoluna eklidir. OAuthV2 kullanır
politikasını kullanın.
<OAuthV2 name="GetAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>3600000</ExpiresIn> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GenerateResponse/> </OAuthV2>
Erişim jetonunu almak için API çağrısı bir POST'tur ve base64 olarak kodlanmış client_id + client+secret ve sorgu parametresi grant_type=client_credentials. Kapsam ve durum için isteğe bağlı parametreler de içerebilir. Örneğin, örnek:
$ curl -i -H 'Content-Type: application/x-www-form-urlencoded' -X POST 'https://docs-test.apigee.net/oauth/accesstoken' -d 'grant_type=client_credentials' -H 'Authorization: Basic c3FIOG9vSGV4VHo4QzAySVgT1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ'
Erişim jetonunu doğrulama politikasını ekleme
API'nizi OAuth 2.0 güvenliğiyle korumak için VerifyAccessToken işlemi. Bu politika, gelen isteklerin geçerli bir erişim jetonuna sahip olup olmadığını kontrol eder. Jeton geçerliyse Edge isteği işler. Geçerli değilse Edge bir hata döndürür. Örneğin, daha fazla bilgi edinmek için Doğrulama erişim jetonları ile ilgili daha fazla bilgi edinin.
<OAuthV2 async="false" continueOnError="false" enabled="true" name="VerifyAccessToken"> <DisplayName>VerifyAccessToken</DisplayName> <ExternalAuthorization>false</ExternalAuthorization> <Operation>VerifyAccessToken</Operation> <SupportedGrantTypes/> <GenerateResponse enabled="true"/> <Tokens/> </OAuthV2>
Korunan API'yi çağırma
OAuth 2.0 güvenliğiyle korunan bir API'yi çağırmak için geçerli bir erişim sunmanız gerekir. jeton. Doğru kalıp, jetonu aşağıdaki gibi bir Yetkilendirme başlığına eklemektir: Not aynı zamanda "hamiline ait jeton" olarak da adlandırıldığından emin olun.
$ curl -H "Authorization: Bearer UAj2yiGAcMZGxfN2DhcUbl9v8WsR" \ http://myorg-test.apigee.net/v0/weather/forecastrss?w=12797282
Ayrıca bkz. Erişim gönderme jeton.
Ek kaynaklar
- Apigee, API geliştiricileri için şu kursu da içeren bir online eğitim sunmaktadır: API Security'yi de içerir.
- OAuthV2 politikası -- yetkilendirme sunucusuna nasıl istek gönderileceğini ve bu yapılandırmanın nasıl yapılandırılacağını gösteren OAuthV2 politikası.