Aracılığıyla paylaş


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

Genel Bakış

Güvenilen hizmet mimarisi diyagramı

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 Tokensiç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 Tokensizin 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 voipyapı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 CommunicationUseriç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 F5Azure İş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.

Oluşturulan Azure İşlevi için yanıt örneğini gösteren ekran görüntüsü.

İşlevi Azure'a dağıtma

Azure İşlevinizi dağıtmak için adım adım yönergeleri izleyebilirsiniz

Özetle şunları yapmanız gerekir:

  1. Visual Studio'dan Azure'da oturum açma
  2. Projenizi Azure hesabınızda yayımlayın. Burada mevcut bir aboneliği seçmeniz gerekir.
  3. 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.
  4. Dağıtımın son halini bekleme
  5. İş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: