Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Kaynak sahibi şifresi (veya "şifre") izin türü çoğunlukla uygulamanın son derece güvenilir. Bu yapılandırmada kullanıcı, kaynak sunucu kimlik bilgilerini sağlar (kullanıcı adı/şifre) gönderilir. Bu da kullanıcı Apigee'ye bir erişim jetonu isteği gönderir. Kenar. Kimlik sunucusu, kimlik bilgilerini doğrular. Bu kimlikler geçerliyse Edge doğrulama işlemine geçer ve uygulamaya geri döndürüyor.
Bu konu hakkında
Bu konuda, OAuth 2.0 kaynak sahibi şifresine ilişkin genel bir açıklama ve genel bakış sunulmaktadır ve bu akışın Apigee Edge'de nasıl uygulanacağını anlatacak.
Yararlı bulabileceğiniz örnekler
- İstekte bulunuyor an erişimtoken: Şifre izni türü: Jeton isteğinin nasıl oluşturulduğunu, Şifre atama türü için OAuthV2 politikası ve Kenar.
- oauth-verify-key-secret: GitHub'da, Edge'e dağıtıp deneyebileceğiniz örnek bir proxy çıkar. Bu, şifre izni türünü gösteren uçtan uca bir örnektir. En iyi deneyimi temsil eder Bu uygulama, istemcinin kimlik bilgilerini (anahtar/gizli) doğrulayıp ve bir kimlik sağlayıcıya göndermesi gerekir.
Video
Video: Şifre iznini uygulamayla ilgili bu videoya göz atın türü.
Kullanım alanları
Kullanıcı gerekli olduğu için bu izin türü, yüksek düzeyde güvenilir veya ayrıcalıklı uygulamalara yöneliktir. kaynak sunucusu kimlik bilgilerini uygulamaya vermelidir. Uygulama genellikle bir giriş ekranı sunar. Kullanıcı, kimlik bilgilerini girdiği yerdir.
Akış diyagramı
Aşağıdaki akış şemasında, Apigee ile kaynak sahibi şifre verme türü akışı gösterilmektedir Yetkilendirme sunucusu olarak uç sunma.
İpucu: Bu şemanın daha büyük bir sürümünü görmek için şemayı sağ tıklayıp yeni bir sekme açın veya sekmeyi kaydedip bir resim görüntüleyicide açın.
Şifre atama türü akışındaki adımlar
Apigee Edge şu durumlarda şifre verme türünü uygulamak için gereken adımların bir özetini burada bulabilirsiniz: işlevi görür.
Ön koşul: İstemci uygulamasının aşağıdaki işlemler için Apigee Edge'e kayıtlı olması gerekir: istemci kimliğini ve istemci gizli anahtarlarını edinin. Aşağıdakiler için İstemci uygulamalarını kaydetme başlıklı makaleyi inceleyin: bolca fırsat sunuyor.
1. Kullanıcı akışı başlatır ve kimlik bilgilerini girer
Uygulamanın, kullanıcının korunan kaynaklarına erişmesi gerektiğinde (örneğin, kullanıcı kullanıcı giriş formuna yönlendirilir.
2. Uygulama istekleri Apigee Edge'den bir erişim jetonu
Uygulama, kullanıcının kimlik bilgilerini de içeren bir erişim jetonu isteği Apigee Edge'de GenerateAccessToken uç noktası.
Aşağıda, bu izin türü için gerekli parametreleri içeren örnek bir POST isteği verilmiştir:
$ curl -i \ -X POST \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'Authorization: Basic c3FIOG9vSGV4VHo4QzAySVg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ' \ -d 'grant_type=password&username=the-user-name&password=the-users-password' \ https://docs-test.apigee.net/oauth/token
Alternatif olarak bu komut, kıvrılmak için -u seçeneği kullanılarak aşağıdaki gibi de uygulanabilir sizin için base64 kodlu Temel Kimlik Doğrulama üstbilgisini oluşturabilirsiniz.
$ curl -i \ -X POST \ -H 'Content-Type: application/x-www-form-urlencoded' \ -u sqH8ooHexTz8C02IX9ORo6rhgq1iSrAl:Z4ljtJdneBOjPMAU \ -d 'grant_type=password&username=the-user-name&password=the-users-password' \ https://docs-test.apigee.net/oauth/token
(Bu komutların her biri tek bir satırda olmalıdır.)
Kullanıcı kimlik bilgileri form parametrelerinde yer alır; istemci kimlik bilgileri ise HTTP temel kimlik doğrulama başlığında kodlanmış olmalıdır. Bu API çağrısının ayrıntılı açıklaması için ve gerekli Basic Auth üstbilgisiyle ilgili ayrıntılara bakın, bkz. "İstekte bulunuyor erişim jetonlarına ve yetkilendirme kodlarına erişim" olarak değiştirebilirsiniz.
3. Edge, istemciyi doğrular uygulama
Kullanıcının kullanıcı adını ve şifresini kimlik sağlayıcıya göndermeden önce Edge'in bunu bilmesi gerekir istekte bulunan istemci uygulamasının geçerli ve güvenilir bir uygulama olduğundan emin olun. Bunu yapmanın bir yolu da anahtar kimlik doğrulamasını etkinleştirin. Bazı durumlarda, hem istemci hem de istemci anahtarının ve sır. Bu allternate tekniğini api-platform-samples deposuna gidin.
4. Edge, giriş kimlik bilgileri
İstemci uygulaması doğrulandıktan sonra, kullanıcının kimlik bilgilerini göndererek kimlik hizmetinden yararlanır. Örneğin, bu bir LDAP hizmeti veya kimlik bilgilerini doğrulamak için kullanmak istediğiniz herhangi bir hizmet. Bu politikalarla ilgili ayrıntılar için Değişkenleri Ayıklama konusuna bakın politika ve JavaScript politikası hakkında daha fazla bilgi edinin.
Kimlik hizmeti, kimlik bilgilerini doğrular ve bir 200 yanıtı döndürürse Edge isteği işlemeye devam etmeli; aksi takdirde, Edge işlemeyi durdurur ve istemci uygulaması.
5. OAuthV2 politikası yürütür
Kimlik bilgileri geçerliyse bir sonraki işleme adımı bir OAuthV2 politikası yürütmektir. yapılandırıldı. Bir örnekle açıklayalım. <UserName> ve <PassWord> öğeleri gereklidir ve bu öğeleri, kullanılan akış değişkenlerinden ExtractVariables politikasıyla kaydedildi. Bu politikayla ilgili ayrıntılı referans bilgileri için OAuthV2 politikasına bakın.
<OAuthV2 name="GetAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>360000000</ExpiresIn> <SupportedGrantTypes> <GrantType>password</GrantType> </SupportedGrantTypes> <GrantType>request.queryparam.grant_type</GrantType> <UserName>login</UserName> <PassWord>password</PassWord> <GenerateResponse/> </OAuthV2>
Bu politika başarılı olursa istemciye erişim içeren bir yanıt oluşturulur. jeton. Yanıt, JSON biçimindedir. Bir örnekle açıklayalım. access_token değerinin öğeler:
{ "issued_at": "1420258685042", "scope": "READ", "application_name": "ce1e94a2-9c3e-42fa-a2c6-1ee01815476b", "refresh_token_issued_at": "1420258685042", "status": "approved", "refresh_token_status": "approved", "api_product_list": "[PremiumWeatherAPI]", "expires_in": "1799", "developer.email": "tesla@weathersample.com", "organization_id": "0", "token_type": "BearerToken", "refresh_token": "IFl7jlijYuexu6XVSSjLMJq8SVXGOAAq", "client_id": "5jUAdGv9pBouF0wOH5keAVI35GBtx3dT", "access_token": "I6daIgMSiUgYX1K2qgQWPi37ztS6", "organization_name": "docs", "refresh_token_expires_in": "0", "refresh_count": "0" }
6. Müşteri, korumalı API
Artık geçerli bir erişim koduyla istemci, 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. Erişim jetonları iletilecektir. Örneğin:
$ curl -H "Authorization: Bearer I6daIgMSiUgYX1K2qgQWPi37ztS6 " http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282