Aracılığıyla paylaş


Azure İşlevleri kullanarak kimlik doğrulama 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.

Important

Bu öğreticide oluşturulan uç nokta güvenli değildir. Azure İşlevleri güvenlik makalesindeki güvenlik ayrıntıları hakkında bilgi edinmeye özen gösterin. Kötü aktörlerin belirteç sağlayamamalarını sağlamak için uç noktaya güvenlik eklemeniz gerekir.

Bu makalede şunların nasıl yapılacağını açıklanmaktadır:

  • bir işlev ayarlayın.
  • Erişim belirteçleri oluşturma.
  • İşlevi test edin.
  • İşlevi dağıtın ve çalıştırın.

Kodu indirin

GitHub'da bu hızlı başlangıcın son halini alan kodu bulun.

Prerequisites

Overview

Güvenilen hizmet mimarisini gösteren diyagram.

Bu öğreticide, güvenilir belirteç sağlama hizmeti olarak hizmet veren bir işlev uygulaması oluşturursunuz. Kendi belirteç sağlama hizmetinizi önyüklemek için bu öğreticiyi kullanabilirsiniz.

Bu hizmet, kullanıcıların İletişim Hizmetleri'ne kimliğini doğrulamakla 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 erişim belirteci gerektirir. İşlev, kullanıcı ve İletişim Hizmetleri arasında güvenilir bir aracı olarak çalışır. Kaynak bağlantı dizenizi kullanıcılarınıza göstermeden erişim belirteçleri sağlayabilirsiniz.

Daha fazla bilgi için istemci-sunucu mimarisi, kimlik doğrulaması ve yetkilendirme kavramsal belgelerine bakın.

İşlev ayarlama

Bu bölümde işlev ayarlama yordamları açıklanmaktadır.

Azure İşlevleri kurulumu

İlk olarak işlevin temel yapısını ayarlayalım. Kurulumla ilgili adım adım yönergeler için bkz . Hızlı Başlangıç: Visual Studio Code kullanarak Azure'da C# işlevi oluşturma.

İşlev aşağıdaki yapılandırmayı gerektirir:

  • Dil: JavaScript
  • Şablon: HTTP Tetikleyicisi
  • Yetkilendirme Düzeyi: Anonim (farklı bir yetkilendirme modeli tercih ederseniz daha sonra değiştirebilirsiniz)
  • İşlev Adı: Kullanıcı tanımlı

Hızlı Başlangıç: Önceki yapılandırmayla Visual Studio Code kullanarak Azure'da C# işlevi oluşturma başlığı altında verilen yönergeleri izledikten sonra, işlevin kendisini içeren bir dosyayla birlikte Visual Studio Code'da bir index.js projeniz olmalıdır. Dosyanın içinde aşağıdaki kod 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
    };
}

Sonraki adım İletişim Hizmetleri kitaplıklarını yüklemektir.

İletişim Hizmetleri kitaplıklarını yükleme

Kullanıcı erişim belirteçleri oluşturmak için Identity kitaplığını kullanırsınız.

npm install JavaScript için İletişim Hizmetleri Kimlik SDK'sını yüklemek için komutunu kullanın.


npm install @azure/communication-identity --save

--save seçeneği, kütüphaneyi package.json dosyanızda bir bağımlılık olarak listeler.

index.js dosyasının üst kısmında, CommunicationIdentityClient parametresinin arabirimini içeri aktarın.

const { CommunicationIdentityClient } = require('@azure/communication-identity');

Erişim belirteçleri oluşturma

İşlevinizin kullanıcı erişim belirteçleri oluşturmasına izin vermek için öncelikle İletişim Hizmetleri kaynağınızın bağlantı dizesini kullanmanız gerekir.

Bağlantı dizenizi alma hakkında daha fazla bilgi için bkz . Hızlı Başlangıç: İletişim Hizmetleri kaynaklarını oluşturma ve yönetme.

const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'

Ardından, kullanıcı erişim belirteçleri oluşturmak için özgün işlevinizi değiştirirsiniz.

Kullanıcı erişim belirteçleri oluşturmak için createUser yöntemini kullanarak bir kullanıcı oluşturun. Kullanıcı oluşturulduktan sonra, bu kullanıcı için bir belirteç oluşturmak için getToken yöntemini kullanın; bu belirteç işlev tarafından döndürülür.

Bu örnekte, belirteç kapsamını olarak voipyapılandıracaksınız. Uygulamanız için diğer kapsamlar gerekli olabilir. Kapsamlar hakkında daha fazla bilgi edinmek için bkz. Erişim belirteçleri oluşturma ve yönetme.

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 parametresi için oluşturma adımını atlayabilir ve bir erişim belirteci oluşturabilirsiniz. Daha fazla bilgi için bkz . Erişim belirteçleri oluşturma ve yönetme.

İşlevi test et

F5 fonksiyonunu kullanarak yerel olarak çalıştırın. Bu eylem işlevi yerel olarak başlatır ve aracılığıyla http://localhost:7071/api/FUNCTION_NAMEerişilebilir hale getirir. Yerel olarak çalıştırma hakkında daha fazla bilgi için bkz . Hızlı Başlangıç: Visual Studio Code kullanarak Azure'da C# işlevi oluşturma.

Tarayıcınızda URL'yi açtığınızda İletişim Kullanıcı Kimliği, belirteci ve belirtecin süre sonunu içeren bir yanıt gövdesi görürsünüz.

Oluşturulan işlev için bir yanıt örneği gösteren ekran görüntüsü.

İşlevi Azure’a dağıtma

İşlevinizi dağıtmak için Hızlı Başlangıç: Visual Studio Code kullanarak Azure'da C# işlevi oluşturma başlığı altındaki adım adım yönergeleri izleyin.

Özetle şunları yapmanız gerekir:

  1. Visual Studio'dan Azure'da oturum açın.
  2. Projenizi Azure hesabınızda yayımlayın. Burada mevcut bir aboneliği seçmeniz gerekir.
  3. Visual Studio sihirbazını veya var olan bir kaynağı kullanarak yeni bir işlev kaynağı oluşturun. Yeni bir kaynak için, bunu istediğiniz bölge, çalışma zamanı ve benzersiz tanımlayıcıya yapılandırmanız gerekir.
  4. Dağıtımın sonuçlanmasını bekleyin.
  5. Fonksiyonu çalıştırın.

İşlevi çalıştırma

URL'sini http://<function-appn-ame>.azurewebsites.net/api/<function-name>kullanarak işlevini çalıştırın.

URL'yi bulmak için Visual Studio Code'da işleve sağ tıklayın ve işlev URL'sini kopyalayın.

İşlevinizi çalıştırma hakkında daha fazla bilgi için bkz . Hızlı Başlangıç: Visual Studio Code kullanarak Azure'da C# işlevi oluşturma.

Uç noktanın 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ü aktörlerin hizmetiniz için rastgele belirteçler oluşturamadığından emin olmak için bu uç noktanın güvenliğini dikkate almanız gerekir. 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. Daha fazla bilgi için bkz. Azure İşlevleri güvenliği.

Kaynakları temizleme

Azure İ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. İletişim Hizmeti kaynaklarını temizleme ve Azure İşlevleri kaynaklarını temizleme hakkında daha fazla bilgi edinebilirsiniz.