Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Kaynak sahibi şifresi (veya "şifre") verme türü, çoğunlukla uygulamanın yüksek düzeyde güvenilir olduğu durumlarda kullanılır. Bu yapılandırmada kullanıcı, kaynak sunucu kimlik bilgilerini (kullanıcı adı/şifre) istemci uygulamasına sağlar. İstemci uygulaması da bu kimlik bilgilerini Apigee Edge'e erişim jetonu isteğiyle gönderir. Kimlik sunucusu, kimlik bilgilerini doğrular ve geçerli olmaları durumunda Edge, erişim jetonu oluşturmaya devam eder ve jetonu uygulamaya döndürür.
Bu konu hakkında
Bu konuda, OAuth 2.0 kaynak sahibi şifresi verme akışı türüyle ilgili genel bir açıklama ve genel bakış sunulmakta, ayrıca bu akışın Apigee Edge'de nasıl uygulanacağı ele alınmaktadır.
Faydalı bulabileceğiniz örnekler
- Erişim jetonu isteme: Şifre verme türü: Jeton isteğinin nasıl oluşturulacağını, şifre verme türü için OAuthV2 politikasının nasıl yapılandırılacağını ve Edge'de politika için uç noktanın nasıl yapılandırılacağını gösterir.
- oauth-validate-key-secret: GitHub'da, Edge'e dağıtıp deneyebileceğiniz örnek bir proxy. Bu, şifre atama türünü içeren uçtan uca bir örnektir. Bu örnekte, kullanıcının kimlik bilgilerini bir kimlik sağlayıcıya göndermeden önce istemci uygulamasının kimlik bilgilerinin (anahtar/gizli) kimliğini doğrulama gibi en iyi uygulama gösterilmektedir.
Video
Video: Şifre atama türünü uygulama hakkında bu videoya göz atın.
Kullanım alanları
Bu yetki türü, kullanıcının kaynak sunucusu kimlik bilgilerini uygulamaya vermesi gerektiğinden son derece güvenilir veya ayrıcalıklı uygulamalar için tasarlanmıştır. Genellikle uygulama, kullanıcının kimlik bilgilerini girdiği bir giriş ekranı sağlar.
Akış şeması
Aşağıdaki akış şeması, yetkilendirme sunucusu olarak Apigee Edge'in kullanıldığı kaynak sahibi şifresi verme türü akışını göstermektedir.
İpucu: Bu diyagramın daha büyük bir sürümünü görmek için diyagramı sağ tıklayıp yeni bir sekmede açın veya diyagramı kaydedip bir resim görüntüleyicide açın.

Şifre atama türü akışındaki adımlar
Apigee Edge'in yetkilendirme sunucusu olarak kullanıldığı durumlarda şifre izni türünü uygulamak için gereken adımların özeti aşağıda verilmiştir.
Ön koşul: İstemci kimliği ve istemci sırrı anahtarlarını almak için istemci uygulaması Apigee Edge'e kaydedilmelidir. Ayrıntılar için İstemci uygulamalarını kaydetme başlıklı makaleyi inceleyin.
1. Kullanıcı akışı başlatır ve kimlik bilgilerini girer
Uygulamanın kullanıcının korumalı kaynaklarına erişmesi gerektiğinde (örneğin, kullanıcı uygulamada bir düğmeyi tıkladığında) kullanıcı bir giriş formuna yönlendirilir.
2. Uygulama, Apigee Edge'den erişim jetonu ister.
Uygulama, kullanıcının kimlik bilgilerini içeren bir erişim jetonu isteğini Apigee Edge'deki bir GenerateAccessToken uç noktasına gönderir.
Bu hibe türü için gerekli parametreleri içeren örnek bir POST isteğini aşağıda bulabilirsiniz:
$ 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 aşağıdaki gibi de yürütülebilir. Bu durumda, sizin için base64 kodlu Temel Kimlik Doğrulama üstbilgisini oluşturmak üzere curl'de -u seçeneği kullanılır.
$ 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ırken istemci kimlik bilgileri HTTP temel kimlik doğrulama üstbilgisinde kodlanır. Gerekli temel kimlik doğrulama üstbilgisiyle ilgili ayrıntılar da dahil olmak üzere bu API çağrısının ayrıntılı açıklaması için "Erişim jetonları ve yetkilendirme kodları isteme" başlıklı makalenin şifre verme bölümüne bakın.
3. Edge, istemci uygulamasını doğrular.
Edge, kullanıcının kullanıcı adını ve şifresini bir kimlik sağlayıcıya göndermeden önce isteği yapan istemci uygulamasının geçerli ve güvenilir bir uygulama olduğunu bilmelidir. Bunu yapmanın bir yolu, API çağrısında API anahtarı kimlik doğrulamasını kullanmaktır. Bazı durumlarda hem istemci anahtarını hem de istemci sırrını doğrulamak isteyebilirsiniz. Bu alternatif tekniği gösteren örnek bir proxy'yi GitHub'daki api-platform-samples deposunda bulabilirsiniz.
4. Edge, giriş kimlik bilgilerini işler.
İstemci uygulaması doğrulandıktan sonra, kimlik hizmetini çağırmak için hizmet çağrısı veya JavaScript politikası kullanabilir ve kullanıcının kimlik bilgilerini gönderebilirsiniz. Örneğin, LDAP hizmeti veya kimlik bilgilerini doğrulamak için kullanmak istediğiniz herhangi bir hizmet olabilir. Bu politikalarla ilgili ayrıntılar için Değişkenleri Çıkarma Politikası ve JavaScript Politikası'na bakın.
Kimlik hizmeti kimlik bilgilerini doğrular ve 200 yanıtı döndürürse Edge isteği işlemeye devam eder. Aksi takdirde Edge işlemi durdurur ve istemci uygulamasına bir hata döndürür.
5. OAuthV2 politikası yürütülür.
Kimlik bilgileri geçerliyse bir sonraki işleme adımı, şifre verme türü için yapılandırılmış bir OAuthV2 politikasını yürütmektir. Bir örnek verelim. <UserName> ve <PassWord> öğeleri zorunludur. Bu öğeleri, ExtractVariables politikasıyla kaydedilen akış değişkenlerinden alabilirsiniz. Bu politika hakkında ayrıntılı referans bilgileri için OAuthV2 politikası'nı inceleyin.
<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 jetonu içeren bir yanıt oluşturulur. Yanıt JSON biçimindedir. Örneğin, access_token'ın aşağıdaki öğelerden biri olduğunu unutmayın:
{ "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. İstemci, korumalı API'yi çağırır.
Artık istemci, geçerli bir erişim koduyla korumalı API'ye çağrı yapabilir. Bu senaryoda, Apigee Edge'e (proxy) istekler gönderilir ve Edge, API çağrısını hedef kaynak sunucusuna iletmeden önce erişim jetonunu doğrulamaktan sorumludur. Erişim jetonları, bir Yetkilendirme üstbilgisinde iletilir. Örneğin:
$ curl -H "Authorization: Bearer I6daIgMSiUgYX1K2qgQWPi37ztS6 " http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282