Azure AD korumalı Azure İşlevleri için özel bağlayıcı oluşturma

Kimlik doğrulaması için Azure Active Directory (AAD) kullanan Power Apps bağlayıcılarının temel ilkesi, kullanıcıya zaten erişimi olan veriler dışında hiçbir veriye erişim vermemesidir. Bunun nedeni AAD korumalı hizmetine yapılan API çağrısının, bağlayıcıda oturum açmak için kullanılan kullanıcı kimliği altında yürütülmesidir. Dolayısıyla kimliği doğrulanmış kullanıcı için verilen izinleri zorlamak hedef hizmetin sorumluluğundadır.

Bu öğreticide Azure İşlevleri’ni kullanarak REST API oluşturmayı, AAD kimlik doğrulamasını etkinleştirmeyi ve ardından Özel Bağlayıcı olarak Power Apps’in kullanımına sunmayı gösterir.

Visual Studio Code kullanarak Azure işlevleri oluşturma

Azure İşlevleri ile barındırma seçenekleri, dil seçimi ve Azure Portalını, Visual Studio Code’u, Visual Studio’yu vb. kullanma gibi yazma seçenekleri de dahil olmak üzere dikkate alınması gereken birçok seçenek vardır. Bu öğreticide biz C# ve Visual Studio Code kullanacağız. Bu eğitmeni tamamlayabilmeniz için öncelikle hızlı başlangıç: Visual Studio Code kullanarak Azure İşlevleri projesi oluşturma'yı tamamlamalısınız. Projeyi Azure'da yayımlama adımında İşlev Uygulamanız için sağladığınız adı not alın.

Önemli

Kaynakları temizleme bölümünü tamamlamayın. Önceden yaptığınız işlemlerin üzerinden devam etmek için tüm kaynaklarınızı olduğu gibi tutmanız gerekir.

AAD kullanarak Azure İşlevleri'ne yapılan çağrıları koruma

  1. Azure Portalı'nda İşlev Uygulamanızı bulun. Listede İşlev Uygulamanızın adını seçin.

    Azure Portalı'ndaki İşlev Uygulamalarının Listesi

  2. En üst bölümde, Platform özellikleri sekmesine geçin.

    Azure portalındaki İşlev Uygulaması dikey penceresinde vurgulanan "Platform özellikleri" sekmesi

  3. Ardından grubundan Kimlik Doğrulaması / Yetkilendirme bağlantısını seçin.

    Azure portalındaki İşlev Uygulaması dikey penceresinde vurgulanan "Kimlik Doğrulaması / Yetkilendirme" bağlantısı

  4. Kimlik Doğrulaması / Yetkilendirme dikey penceresinde App Service Kimlik Doğrulaması geçiş düğmesini Açık konuma getirerek App Service Kimlik Doğrulamasını etkinleştirin.

    Azure portalındaki İşlev Uygulaması kimlik doğrulaması ayarlarında vurgulanmış "App Service Kimlik Doğrulaması" geçiş düğmesinin "Açık" seçeneği

  5. İsteğin kimliği doğrulanmamış olduğunda gerçekleştirilecek eylem açılan listesindeki değeri Azure Active Directory ile oturum aç olarak değiştirin. Bu ayar, API'ye yapılan anonim isteklere izin verilmemesini sağlar.

    İşlev Uygulaması kimlik doğrulama ayarları dikey penceresindeki 'İsteğin kimliği doğrulanmamış olduğunda gerçekleştirilecek eylem' açılan listesinde 'Azure Active Directory ile oturum aç' seçeneği vurgulanmış durumda

  6. Ardından, kimlik doğrulama sağlayıcıları listesinde Azure Active Directory öğesini seçin.

    İşlev Uygulaması için kimlik doğrulama sağlayıcıları listesinde 'Azure Active Directory' vurgulanmış durumda

  7. Azure Active Directory Ayarları dikey penceresinde Yönetim modu seçeneğini Hızlı olarak ayarlayın. İkinci Yönetim modu seçeneğini Yeni AD Uygulaması Oluştur olarak ayarlayın.

    Azure portalında bir İşlev uygulaması için açılan Azure Active Directory Ayarları dikey penceresi

    Önemli

    Devam etmeden önce Uygulama Oluştur alanındaki değeri not alın ve daha sonra kullanmak üzere kopyalayıp bir yere yapıştırın. Bu değer, API'nin güvenliğini sağlamak için kullanacağınız AAD uygulamasının adını temsil eder. Daha sonra Özel Bağlayıcınızı yapılandırırken bu değeri kullanacaksınız.

  8. Seçiminizi onaylamak için Tamam düğmesini seçin.

  9. Kimlik Doğrulaması / Yetkilendirme dikey penceresine dönün ve İşlev Uygulamasının kimlik doğrulaması ve yetkilendirme ayarlarını güncelleştirmek için Kaydet'i seçin.

    Azure portalında İşlev Uygulamasının "Kimlik Doğrulaması / Yetkilendirme" dikey penceresinde vurgulanmış "Kaydet" düğmesi

  10. Kaydettikten sonra, Azure Active Directory kimlik doğrulama sağlayıcıları bölümünde öğesini seçin.

    Azure Active Directory Sağlayıcı

  11. Azure AD Uygulaması’nı seçin, ardından İstemci Kimliği değerini kopyalayın ve daha sonra kullanmak üzere bir yere yapıştırın.

    İstemci Kimliği sayfası

  12. Gizli modda yeni bir tarayıcı penceresi açarak ve API'ye giderek API'nin doğru bir şekilde güvenlik altına alındığını onaylayın. İşlev Uygulamanızın URL'si, İşlev Uygulaması dikey penceresinin Genel Bakış bölümünde bulunabilir. Kimlik doğrulaması ayarları doğru uygulandıysa Azure AD oturum açma sayfasına yeniden yönlendirilmeniz gerekir.

    Azure AD oturum açma sayfası

Azure İşleviniz için Özel Bağlayıcı oluşturma

AAD kimlik doğrulamasını kullanan bir Özel Bağlayıcı oluşturmak için bir AAD uygulama kaydı oluşturup Özel Bağlayıcının güvenliğini sağlamalı ve AAD kullanarak Azure İşlevleri'ne yapılan çağrıları koruma bölümünde oluşturulan AAD uygulama kaydı tarafından korunan Azure İşlevleri'ne temsilci erişimi almalısınız.

AAD'de Özel Bağlayıcınız için uygulama kaydı oluşturma

İlk olarak Özel Bağlayıcınız için bir AAD uygulaması oluşturun. Bu, Özel Bağlayıcıya Azure İşlevleri'nizi çağırma izni vermek için gereklidir.

  1. Azure Portalı'nda Uygulama kayıtları sayfasına gidin.

    Azure Portalında Azure AD kayıtları sayfası

  2. Kayıtlı uygulamalar listesinde, Yeni kayıt'ı seçin.

    Ekle düğmesi

  3. Uygulamanız için bir ad girin, aşağıdaki ekran görüntüsünde gösterilen seçenekleri belirleyin ve ardından Kaydet düğmesini seçin.

    Uygulama kaydetme formu

    Not

    Uygulama kaydı seçenekleri hakkında daha fazla bilgi edinmek için bkz. Hızlı Başlangıç: Microsoft kimlik platformuna sahip bir uygulamayı kaydettirme.

  4. Kaydet düğmesini seçtikten sonra Uygulama kaydınız için API izinleri gösterilir.

    API izinleri ekranı

  5. İzin ekle düğmesini seçin.

    İzin ekle düğmesi

  6. Kuruluşumun kullandığı API'ler sekmesini seçin, ardından AAD kullanarak Azure İşlevleri'ne yapılan çağrıları koruma bölümünün 7. adımındaki uygulama adını arayın. Uygulama adını bulduğunuzda bu ada tıklayın.

    Önemli

    Uygulama adınız ekran görüntüsünde gösterilenden farklı olacaktır.

    Azure İşlev uygulaması adı

  7. user_impersonation onay kutusunu seçin ve İzin ekle düğmesine tıklayın.

    user_impersonation izni ekleme

    Not

    İzinler hakkında daha fazla bilgi edinmek için bkz. Microsoft kimlik platformu uç noktasında izinler ve onay.

  8. Sertifikalar ve gizli anahtarlar'ı ve ardından Yeni gizli anahtar düğmesini seçin.

    Sertifikalar ve gizli anahtarlar

  9. Gizli anahtarınız için bir açıklama girin, süre sonu dönemini belirleyin ve ardından Ekle'yi seçin.

    Gizli anahtar ekleme

  10. Yeni gizli anahtarınız görüntülenir. Değeri kopyalayıp bir yere yapıştırın. Buna daha sonra ihtiyacınız olacak.

    Anahtar oluşturma

  11. Genel Bakış'ı seçin, ardından Uygulama (istemci) kimliği değerini kopyalayıp bir yere yapıştırın. Buna daha sonra ihtiyacınız olacak.

    Anahtar oluşturma

Daha sonra dönebilmek için bu sayfayı açık bırakın. Azure portalında bir adım daha vardır, ancak öncelikle özel bir bağlayıcı oluşturun.

Özel bağlayıcı oluşturma

AAD uygulamasını yapılandırdığınıza göre artık Özel Bağlayıcı'yı oluşturabilirsiniz. Özel Bağlayıcı oluşturmak için, bağlanmak istediğiniz API'yi açıklayarak bağlayıcının bu API'nin işlemlerini ve veri yapılarını anlamasını sağlamanız gerekir. Özel Bağlayıcılar için Azure İşlevleri oluştururken, genellikle aşağıdaki adımları tekrarlayıp bağlayıcınızı yinelemeli bir yöntemle oluşturursunuz:

  1. Visual Studio Code ile Azure İşlevini yerel olarak oluşturun, test edin ve hatalarını ayıklayın.
  2. İşlev Uygulamanızı Azure'a dağıtın.
  3. Özel Bağlayıcı yapılandırmasını, İşlev Uygulamanızdaki değişiklikleri yansıtacak şekilde güncelleştirin.

Postman, web API'lerini test etmeye yönelik popüler bir araçtır. Bu araç genellikle Azure İşlevleri'ni test etmek için kullanılır. Bu konuda, Postman koleksiyonundan bir özel bağlayıcı oluşturacaksınız. Postman koleksiyonu size sağlanacaktır.

Not

Kendi koleksiyonunuzu oluşturmayı öğrenmek için Özel bağlayıcı için Postman koleksiyonu oluşturma konusuna bakın. Özel Bağlayıcı oluştururken Postman kullanmak seçeneklerden biridir. Diğer seçenekler hakkında bilgi edinmek için API'yi açıklama ve özel bağlayıcıyı tanımlama konusuna bakın.

  1. Yeni bir tarayıcı sekmesinde, veya Power Apps veya Power Automate olarak oturum açın.

  2. Aşağıdaki kodu kopyalayın. Tercih ettiğiniz metin düzenleyicisini kullanarak yeni bir dosya oluşturun ve dosyanın içeriği olarak kodu yapıştırın. Dosyayı kaydedin. Dosyaya istediğiniz adı verebilirsiniz ancak bu adı unutmamanız gerekir (örneğin: tutorial-custom-connector.json). Bu dosyayı sonraki adımlarda kullanmanız gerekecektir.

    {
        "id": "c4b5deba-f97b-47d0-82a5-a2b32561fb01",
        "name": "Custom Connector",
        "description": null,
        "auth": null,
        "events": null,
        "variables": [],
        "order": [
            "374365a1-ede5-4ead-8068-d878085dad26"
        ],
        "folders_order": [],
        "protocolProfileBehavior": {},
        "folders": [],
        "requests": [
            {
                "id": "374365a1-ede5-4ead-8068-d878085dad26",
                "name": "Hello",
                "url": "http://localhost:7071/api/Hello",
                "description": "",
                "data": [],
                "dataOptions": {
                    "raw": {
                        "language": "json"
                    }
                },
                "dataMode": "raw",
                "headerData": [
                    {
                        "key": "Content-Type",
                        "name": "Content-Type",
                        "value": "application/json",
                        "description": "",
                        "type": "text"
                    }
                ],
                "method": "POST",
                "pathVariableData": [],
                "queryParams": [],
                "auth": null,
                "events": null,
                "folder": null,
                "responses": [
                    {
                        "id": "46baba58-7b85-4a2e-8c7d-303080e08ba9",
                        "name": "Hello",
                        "status": null,
                        "mime": null,
                        "language": "plain",
                        "text": "Hello, Marc. This HTTP triggered function executed successfully.",
                        "responseCode": {
                            "code": 200,
                            "name": "OK"
                        },
                        "requestObject": {
                            "data": [],
                            "dataMode": "raw",
                            "dataOptions": {
                                "raw": {
                                    "language": "json"
                                }
                            },
                            "headerData": [
                                {
                                    "key": "Content-Type",
                                    "name": "Content-Type",
                                    "value": "application/json",
                                    "description": "",
                                    "type": "text"
                                }
                            ],
                            "method": "POST",
                            "pathVariableData": [],
                            "queryParams": [],
                            "url": "http://localhost:7071/api/Hello",
                            "rawModeData": "{\n\t\"name\": \"Marc\"\n}"
                        },
                        "headers": [
                            {
                                "key": "Date",
                                "value": "Wed, 04 Mar 2020 22:32:06 GMT"
                            },
                            {
                                "key": "Content-Type",
                                "value": "text/plain; charset=utf-8"
                            },
                            {
                                "key": "Server",
                                "value": "Kestrel"
                            },
                            {
                                "key": "Transfer-Encoding",
                                "value": "chunked"
                            }
                        ],
                        "cookies": null,
                        "request": "374365a1-ede5-4ead-8068-d878085dad26",
                        "collection": "c4b5deba-f97b-47d0-82a5-a2b32561fb01"
                    }
                ],
                "rawModeData": "{\n\t\"name\": \"Marc\"\n}",
                "headers": "Content-Type: application/json\n",
                "pathVariables": {}
            }
        ]
    }
    
  3. Gezinti bölmesinde, Veri'yi seçerek genişletin ve ardından Özel Bağlayıcılar'ı seçin.

    Gezinti bölmesinde özel bağlayıcılar

  4. Sağ üst köşede, Yeni özel bağlayıcı'yı ve ardından Postman koleksiyonunu içeri aktar'ı seçin.

    Bir Postman koleksiyonunu içeri aktarın

  5. Bağlayıcının adını girin, İçeri Aktar düğmesini seçin, 2. adımda oluşturduğunuz dosyaya göz atın ve Devam'ı seçin.

    Dosyanın adı ve konumu

  6. Genel sayfası açılır. Düzen'i HTTPS olarak değiştirin, Ana Bilgisayar değerini İşlev Uygulamanızın etki alanıyla değiştirin ve ardından sihirbazın Güvenlik sayfasına ilerleyin.

    Genel bilgiler ayarları

  7. Güvenlik sayfasında, uygulamanızın AAD bilgilerini girin.

    OAuth ayarları

    Güvenlik bilgilerini girdikten sonra Bağlayıcıyı güncelleştir düğmesini seçerek Özel Bağlayıcı'yı oluşturun.

  8. Güvenlik sayfasında yeniden yönlendirme URL'si alanı dolduruldu. Bu URL'yi kopyalayarak, Bu öğreticinin sonraki bölümünde kullanabilirsiniz.

    Not

    Yeniden Yönlendirme URL'sini görmek için aşağı kaydırmanız gerekebilir.

    Kaynak URL'si

  9. Başka bir tarayıcı sekmesinde, AAD'de Özel Bağlayıcınız için uygulama kaydı oluşturma bölümünde oluşturduğunuz uygulama kaydına dönün. Genel Bakış bölümünde olduğunuzdan emin olun ve Yeniden Yönlendirme URI'sı Ekle seçeneğini belirleyin.

    Kaynak URL'si

  10. Platform ekle düğmesini seçin.

    Platform ekle düğmesi

  11. Platformları yapılandır bölmesinde, Web'i seçin.

    Platformları yapılandırma

  12. Web'i Yapılandır bölmesinde, 7. adımdaki Yeniden Yönlendirme URL'sini yapıştırın ve ardından Yapılandır düğmesini seçin.

    Platformları yapılandırma

  13. Özel Bağlayıcı yapılandırmasını içeren tarayıcı sekmesine dönün. Sihirbazın Güvenlik sayfasında olmanız gerekir.

  14. Tanım sözcüğünü seçerek sihirbazın Tanım sayfasına ilerleyin ve inceleyin.

    Platformları yapılandırma

    Not

    Tanım, içeri aktardığınız Postman koleksiyonundan alınır. Hızlı Bşalangıç: Visual Studio Code Azure İşlevleri projesi oluşturma'da herhangi bir kod değiştirdiyseniz, alma dosyası API'nizin şekliyle eşleşmeyebilir. Yeni bir Postman koleksiyonu oluşturmanız veya eylemi Özel Bağlayıcı'da el ile ayarlamanız gerekir. Yeni Postman koleksiyonu oluşturmak için bu öğreticinin önceki bölümlerinde paylaşılan buradaki bağlantıları kullanın. Eylemi el ile ayarlamak için Sıfırdan özel bağlayıcı oluşturma öğreticisinin Bağlayıcı tanımı oluşturma bölümünü inceleyebilirsiniz.

Bağlayıcıyı test etme

Şimdi de oluşturduğunuz bağlantının düzgün çalıştığından emin olmak için bağlantıyı test edin. Sınama Şu anda yalnızca Power Automate ve Power Apps uygulamasında kullanılabilir.

  1. Test sözcüğünü seçerek sihirbazın Test sayfasına ilerleyin.

    Test sayfası

  2. Test sayfasında, Yeni bağlantı'yı seçin.

    Yeni bağlantı

  3. Oluştur düğmesini seçin ve ardından AAD kullanıcı bilgilerinizle oturum açın.

    Yeni bağlantı

  4. Test sayfasına dönün.

    • Power Automate’da Test sayfasına geri dönersiniz. Bağlantı bilgilerinin güncelleştirildiğinden emin olmak için yenile simgesini seçin.

      Bağlantıyı yenileme

    • Power Apps'te geçerli ortamda kullanılabilen bağlantıların listesine yönlendirilirsiniz. Gezinti bölmesinde, Özel Bağlayıcılar'ı seçin. Özel Bağlayıcınızı bulun ve düzenle simgesini seçin.

      Gezinti bölmesinde özel bağlayıcılar

  5. Test sayfasına dönün, ad alanına bir değer girin ve ardından Test işlemi'ni seçin.

    Test işlemi

  6. İstek ve Yanıt'ı inceleyin.

    Bağlayıcı isteği

    Bağlayıcı isteği

Sonraki adımlar

Artık özel bir bağlayıcı oluşturup bağlayıcının davranışlarını tanımladığınıza göre bağlayıcıyı kullanabilirsiniz.