Azure İşlevleri kullanarak güvenilir bir kullanıcı erişim hizmeti oluşturma
Bu makalede, güvenilir bir kullanıcı erişim hizmeti oluşturmak için Azure İşlevleri nasıl kullanılacağı açıklanmaktadır.
Önemli
Bu öğreticinin sonunda oluşturulan uç nokta güvenli değildir. Azure İşlev Güvenliği makalesindeki güvenlik ayrıntılarını okuduğunuzdan emin olun. Kötü aktörlerin belirteç sağlayamamalarını sağlamak için uç noktaya güvenlik eklemeniz gerekir.
Kodu İndir
GitHub'da bu hızlı başlangıcın son halini alan kodu bulun
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ayrıntılar için bkz. Ücretsiz hesap oluşturma.
- Desteklenen platformlardan birinde çalışan Visual Studio Code.
-
Node.js, Etkin LTS ve Bakım LTS sürümleri (10.14.1 önerilir).
node --version
Sürümünüzü denetlemek için komutunu kullanın. - Visual Studio Code için Azure İşlevleri uzantısı.
- Etkin bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. İletişim Hizmetleri kaynağı oluşturun.
Genel Bakış
Bu öğreticide güvenilir belirteç sağlama hizmeti olarak hizmet verecek bir Azure İşlevi oluşturacağız. Kendi belirteç sağlama hizmetinizi önyüklemek için bu öğreticiyi kullanabilirsiniz.
Bu hizmet, kullanıcıların Azure İletişim Hizmetleri kimlik doğrulaması yapmakla sorumludur. İletişim Hizmetleri uygulamalarınızın kullanıcıları, sohbet yazışmalarına ve VoIP çağrılarına katılmak için bir Access Token
gerektirir. Azure İşlevi, kullanıcı ile İletişim Hizmetleri arasında güvenilir bir aracı olarak çalışır. Bu, kaynak bağlantı dizenizi kullanıcılarınıza göstermeden erişim belirteçleri sağlamanızı sağlar.
Daha fazla bilgi için istemci-sunucu mimarisi ve kimlik doğrulaması ve yetkilendirme kavramsal belgelerine bakın.
Ayarlama
Azure İşlevleri ayarlama
İlk olarak Azure işlevimizin temel yapısını ayarlayalım. Kurulumla ilgili adım adım yönergeler burada bulunabilir: Visual Studio Code kullanarak işlev oluşturma
Azure İşlevimiz aşağıdaki yapılandırmayı gerektirir:
- Dil: JavaScript
- Şablon: HTTP Tetikleyicisi
- Yetkilendirme Düzeyi: Anonim (Farklı bir yetkilendirme modeli tercih ederseniz bu daha sonra değiştirilebilir)
- İşlev Adı: Kullanıcı tanımlı
Yukarıdaki yapılandırmayla Azure İşlevleri yönergelerini takip ettikten sonra, Azure İşlevi için Visual Studio Code'de işlevin kendisini içeren bir dosyaya sahip bir index.js
projeniz olmalıdır. Bu dosyanın içindeki kod aşağıdaki gibi olmalıdır:
module.exports = async function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
const name = (req.query.name || (req.body && req.body.name));
const responseMessage = name
? "Hello, " + name + ". This HTTP triggered function executed successfully."
: "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";
context.res = {
// status: 200, /* Defaults to 200 */
body: responseMessage
};
}
Şimdi Azure İletişim Hizmetleri kitaplıkları yüklemeye devam edeceğiz.
İletişim hizmetleri kitaplıklarını yükleme
oluşturmak User Access Tokens
için kitaplığını Identity
kullanacağız.
npm install
JavaScript için Azure İletişim Hizmetleri Kimlik SDK'sını yüklemek için komutunu kullanın.
npm install @azure/communication-identity --save
seçeneği --save
, kitaplığı package.json dosyanızda bağımlılık olarak listeler.
Dosyanın en üstünde index.js
, CommunicationIdentityClient
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Erişim belirteci oluşturma
Azure İşlevimizin oluşturmasına User Access Tokens
izin vermek için öncelikle İletişim Hizmetleri kaynağımız için bağlantı dizesini kullanmamız gerekir.
Bağlantı dizenizi alma hakkında daha fazla bilgi için kaynak sağlama hızlı başlangıcını ziyaret edin.
const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'
Ardından, özgün işlevimizi oluşturacak User Access Tokens
şekilde değiştireceğiz.
User Access Tokens
yönteminden createUser
bir kullanıcı oluşturularak oluşturulur. Kullanıcı oluşturulduktan sonra yöntemini kullanarak azure işlevinin getToken
döndürdüğü kullanıcı için bir belirteç oluşturabiliriz.
Bu örnekte belirteç kapsamını olarak voip
yapılandıracağız. Uygulamanız için diğer kapsamlar gerekli olabilir.
Kapsamlar hakkında daha fazla bilgi edinin
module.exports = async function (context, req) {
let tokenClient = new CommunicationIdentityClient(connectionString);
const user = await tokenClient.createUser();
const userToken = await tokenClient.getToken(user, ["voip"]);
context.res = {
body: userToken
};
}
Mevcut İletişim Hizmetleri CommunicationUser
için oluşturma adımını atlayabilir ve yalnızca bir erişim belirteci oluşturabilirsiniz.
Kullanıcı erişim belirteçleri oluşturma hızlı başlangıcında daha fazla ayrıntı bulabilirsiniz.
Azure İşlevini test etme
kullanarak F5
Azure İşlevini yerel olarak çalıştırın. Bu işlem Azure İşlevini yerel olarak başlatır ve aracılığıyla erişilebilir hale getirir: http://localhost:7071/api/FUNCTION_NAME
.
Yerel olarak çalıştırmayla ilgili ek belgelere göz atın
Tarayıcınızda URL'yi açtığınızda, belirtecin İletişim Kullanıcı Kimliği, belirteci ve süre sonunu içeren bir yanıt gövdesi görmeniz gerekir.
İşlevi Azure'a dağıtma
Azure İşlevinizi dağıtmak için adım adım yönergeleri izleyebilirsiniz
Özetle şunları yapmanız gerekir:
- Visual Studio'dan Azure'da oturum açma
- Projenizi Azure hesabınızda yayımlayın. Burada mevcut bir aboneliği seçmeniz gerekir.
- Visual Studio sihirbazını kullanarak yeni bir Azure İşlevi kaynağı oluşturun veya mevcut bir kaynağı kullanın. Yeni bir kaynak için bunu istediğiniz bölge, çalışma zamanı ve benzersiz tanımlayıcı ile yapılandırmanız gerekir.
- Dağıtımın son halini bekleme
- İşlevi 🎉 çalıştırma
Azure İşlevi çalıştırma
URL'yi kullanarak Azure işlevini çalıştırma http://<function-appn-ame>.azurewebsites.net/api/<function-name>
VISUAL STUDIO CODE'da işleve sağ tıklayıp İşlev URL'sini kopyalayarak URL'yi bulabilirsiniz.
Azure işlevinizi çalıştırma hakkında daha fazla bilgi için
Azure İşlevi'nin güvenliğini sağlama
Kullanıcılara erişim belirteçleri sağlamak üzere güvenilir bir hizmet ayarlamanın bir parçası olarak, kötü bir aktörün hizmetiniz için rastgele belirteçler oluşturamadığından emin olmak için bu uç noktanın güvenliğini dikkate almalıyız. Azure İşlevleri, farklı kimlik doğrulama ilkeleri kullanarak uç noktanın güvenliğini sağlamak için kullanabileceğiniz yerleşik güvenlik özellikleri sağlar. Azure İşlev Güvenliği hakkında daha fazla bilgi edinin
Kaynakları temizleme
İletişim Hizmetleri aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler. Azure İletişim Hizmeti kaynaklarını temizleme ve Azureİşlev Kaynaklarını temizleme hakkında daha fazla bilgi edinebilirsiniz.
Sonraki adımlar
Ayrıca şunları da yapmak isteyebilirsiniz: