Kullanıcı kaydı ve ürün aboneliği için temsilci seçme
ŞUNLAR IÇIN GEÇERLIDIR: Geliştirici | Temel | Temel v2 | Standart | Standart v2 | Premium
Temsilci seçme, web sitenizin kullanıcı verilerine sahip olmasını ve özel doğrulama gerçekleştirmesini sağlar. Temsilci seçme ile, geliştirici portalının yerleşik işlevselliği yerine mevcut web sitenizi kullanarak geliştirici oturum açma/kaydolma (ve ilgili hesap yönetimi işlemleri) ve ürün aboneliğini işleyebilirsiniz.
Geliştirici oturum açma ve kaydolma yetkisini alma
Geliştirici oturum açma, kaydolma ve geliştirici hesabı yönetimi seçeneklerini mevcut web sitenize devretmek için sitenizde özel bir temsilci uç noktası oluşturun. Bu özel temsilci, API Management geliştirici portalından başlatılan tüm oturum açma/kaydolma ve ilgili istekler için giriş noktası görevi görür.
Son iş akışı şu şekilde olacaktır:
- Geliştirici, API Management geliştirici portalında oturum açma veya kaydolma bağlantısına veya hesap yönetimi bağlantısına tıklar.
- Tarayıcı temsilci uç noktasına yeniden yönlendirir.
- Döndürülen temsilci uç noktası, kullanıcıyı oturum açma/kaydolma veya hesap yönetimi kullanıcı arabirimiyle yeniden yönlendirir veya sunar.
- İşlem tamamlandıktan sonra kullanıcı, bıraktığı konumda API Management geliştirici portalına geri yönlendirilir.
API Management'ı istekleri temsilci uç noktası aracılığıyla yönlendirecek şekilde ayarlama
Soldaki menüde, Geliştirici portalı'nın altında Temsilci Seçme'yi seçin.
Temsilci oturum açma ve kaydolmayı etkinleştirmek için onay kutusuna tıklayın.
Özel temsilci uç noktanızın URL'sine karar verin ve temsilci uç noktası URL'si alanına girin.
Temsilci Doğrulama Anahtarı alanında:
- İsteğin API Management'tan geldiğini doğrulama amacıyla sağlanan imzayı hesaplamak için kullanılan bir gizli dizi girin.
- Api Management için Oluştur düğmesine tıklayarak sizin için rastgele bir anahtar oluşturun.
Kaydet'e tıklayın.
Temsilci uç noktanızı oluşturma
Sitenizde uygulanacak yeni bir temsilci uç noktası oluşturmak için önerilen adımlar:
İşleme bağlı olarak aşağıdaki formda bir istek alın:
http://www.yourwebsite.com/apimdelegation?operation={operation}& returnUrl={Kaynak sayfanın URL'si}&salt={string}&sig={string}
-Veya-
http://www.yourwebsite.com/apimdelegation?operation={operation}& userId={account}&salt={string}&sig={string} kullanıcı kimliği
Sorgu parametreleri:
Parametre Açıklama işlem Temsilci isteği türünü tanımlar. Kullanılabilir işlemler: SignIn, SignUp, ChangePassword, ChangeProfile, CloseAccount, SignOut. returnUrl Oturum Açma veya Kaydolma'da, kullanıcının oturum açma veya kaydolma bağlantısına tıkladığı URL. userId ChangePassword, ChangeProfile, CloseAccount ve SignOut'ta, yönetmek istediğiniz hesabın kullanıcı kimliği. tuz Güvenlik karması hesaplama için kullanılan özel bir tuz dizesi. Sıg Kendi hesaplanan karmanızla karşılaştırmak için kullanılan hesaplanan güvenlik karması. İsteğin Azure API Management'tan geldiğini doğrulayın (isteğe bağlı, ancak güvenlik için kesinlikle önerilir).
ReturnUrl (veya UserId) ve salt sorgu parametrelerine göre bir dizenin HMAC-SHA512 karması hesaplama. Örnekler için örnek kodumuzu gözden geçirin.
Oturum Açma ve Kaydolma için:
HMAC(salt + '\n' + returnUrl)
ChangePassword, ChangeProfile, CloseAccount ve SignOut için:
HMAC(salt + '\n' + userId)
Yukarıdaki hesaplanan karmayı sig sorgu parametresinin değeriyle karşılaştırın. İki karma eşleşiyorsa, sonraki adıma geçin. Aksi takdirde isteği reddedin.
Oturum açma/kaydolma veya hesap yönetimi işlemi isteği aldığınızı doğrulayın.
Kullanıcıya oturum açma/kaydolma veya hesap yönetimi kullanıcı arabirimi sunma.
İşlemi sizin tarafınızda tamamladıktan sonra API Management'ta kullanıcıyı yönetin. Örneğin, kullanıcı kaydolırsa API Management'ta buna karşılık gelen bir hesap oluşturun.
- API Management REST API'siyle bir kullanıcı oluşturun.
- Kullanıcı kimliğini, kullanıcı deponuzdaki aynı değere veya yeni, kolay izlenen bir kimlik olarak ayarlayın.
Oturum açma veya kaydolma sonrasında, kullanıcının kimliği başarıyla doğrulandığında:
API Management REST API aracılığıyla paylaşılan erişim belirteci isteyin.
Yukarıdaki API çağrısından aldığınız SSO URL'sine bir returnUrl sorgu parametresi ekleyin. Örneğin:
https://contoso.developer.azure-api.net/signin-sso?token=<URL-encoded token>&returnUrl=%2Freturn%2Furl
Kullanıcıyı yukarıda oluşturulan URL'ye yeniden yönlendirin.
Ürün aboneliğini devretme
Ürün aboneliklerini temsilci seçme, kullanıcı oturum açma/kaydolma için temsilci seçmeye benzer şekilde çalışır. Son iş akışı aşağıdaki gibi olacaktır:
- Geliştirici, API Management geliştirici portalında bir ürün seçer ve Abone Ol düğmesine tıklar.
- Tarayıcı temsilci uç noktasına yeniden yönlendirir.
- Temsilci uç noktası, tasarladığınız gerekli ürün aboneliği adımlarını gerçekleştirir. Bunlar şunları içerebilir:
- Faturalama bilgilerini istemek için başka bir sayfaya yönlendiriliyor.
- Ek sorular sorma.
- Bilgileri depolama ve herhangi bir kullanıcı eylemi gerektirmeme.
API Management işlevini etkinleştirme
Temsilci seçme sayfasında Ürün aboneliğine temsilci seç'e tıklayın.
Temsilci uç noktanızı oluşturma
Sitenizde uygulanacak yeni bir temsilci uç noktası oluşturmak için önerilen adımlar:
İşleme bağlı olarak aşağıdaki formda bir istek alın.
http://www.yourwebsite.com/apimdelegation?operation={operation}&p roductId={abone olunacak ürün}&userId={user making request}&salt={string}&sig={string}
-Veya-
http://www.yourwebsite.com/apimdelegation?operation={operation}& subscriptionId={yönetilecek abonelik}&salt={string}&sig={string}
Sorgu parametreleri:
Parametre Açıklama işlem Temsilci isteği türünü tanımlar. Geçerli ürün aboneliği istekleri seçenekleri şunlardır: - Abone ol: Kullanıcıyı verilen kimlikle belirli bir ürüne abone olma isteği (aşağıya bakın).
- Abonelikten çıkma: Bir kullanıcının ürün aboneliğinden çıkma isteği
Productıd Abone Ol'da, kullanıcının abonelik istediği ürün kimliği. userId Abone ol'da, istekte bulunan kullanıcının kimliği. subscriptionId Aboneliği kaldır'da ürün aboneliği kimliği. tuz Güvenlik karması hesaplama için kullanılan özel bir tuz dizesi. Sıg Kendi hesaplanan karmanızla karşılaştırmak için kullanılan hesaplanan güvenlik karması. İsteğin Azure API Management'tan geldiğini doğrulayın (isteğe bağlı, ancak güvenlik için kesinlikle önerilir)
ProductId ve userId (veya subscriptionId) ve salt query parametrelerine dayalı olarak bir dizenin HMAC-SHA512'sini hesaplama:
Abone Ol için:
HMAC(salt + '\n' + productId + '\n' + userId)
Abonelikten Çıkma için:
HMAC(salt + '\n' + subscriptionId)
Yukarıdaki hesaplanan karmayı sig sorgu parametresinin değeriyle karşılaştırın. İki karma eşleşiyorsa, sonraki adıma geçin. Aksi takdirde isteği reddedin.
Ürün aboneliğini, işlemde istenen işlem türüne göre işleyin (örneğin: faturalama, diğer sorular vb.).
İşlemi sizin tarafınızda tamamladıktan sonra API Management'ta aboneliği yönetin. Örneğin, abonelikler için REST API'yi çağırarak kullanıcıyı API Management ürününe abone yapın.
Örnek kod
Bu kod örnekleri, kullanıcı oturum açma veya kaydolma yetkisini alırken sorgu parametresinin returnUrl
karması oluşturma işlemini gösterir. returnUrl
, kullanıcının oturum açma veya kaydolma bağlantısına tıkladığı sayfanın URL'sidir.
- Azure portalının Temsilci seçme ekranında ayarlanan temsilci doğrulama anahtarını alın.
- İmzayı doğrulayan ve geçirilen returnUrl'ün geçerliliğini kanıtlayan bir HMAC oluşturun.
Küçük bir değişiklikle, ile ve userId
ürün aboneliğini temsilci olarak seçme gibi productId
diğer karmaları hesaplamak için aynı kodu kullanabilirsiniz.
returnUrl karması oluşturmak için C# kodu
using System.Security.Cryptography;
string key = "delegation validation key";
string returnUrl = "returnUrl query parameter";
string salt = "salt query parameter";
string signature;
using (var encoder = new HMACSHA512(Convert.FromBase64String(key)))
{
signature = Convert.ToBase64String(encoder.ComputeHash(Encoding.UTF8.GetBytes(salt + "\n" + returnUrl)));
// change to (salt + "\n" + productId + "\n" + userId) when delegating product subscription
// compare signature to sig query parameter
}
returnUrl karması oluşturmak için NodeJS kodu
var crypto = require('crypto');
var key = 'delegation validation key';
var returnUrl = 'returnUrl query parameter';
var salt = 'salt query parameter';
var hmac = crypto.createHmac('sha512', new Buffer(key, 'base64'));
var digest = hmac.update(salt + '\n' + returnUrl).digest();
// change to (salt + "\n" + productId + "\n" + userId) when delegating product subscription
// compare signature to sig query parameter
var signature = digest.toString('base64');
Önemli
Temsilci değişikliklerinin geçerli olması için geliştirici portalını yeniden yayımlamanız gerekir.
Sonraki adımlar
- Geliştirici portalı hakkında daha fazla bilgi edinin.
- Microsoft Entra Id kullanarak veya Azure AD B2C ile kimlik doğrulaması yapın.
- Geliştirici portalıyla ilgili daha fazla soru mu var? Soruların yanıtlarını SSS bölümünde bulabilirsiniz.