Aracılığıyla paylaş


Bota kimlik doğrulaması ekleme

ŞUNLAR IÇIN GEÇERLIDIR: SDK v4

Azure AI Bot Hizmeti v4 SDK'sı, kullanıcı kimlik doğrulaması gerektiren çevrimiçi kaynaklara erişebilen botların geliştirilmesini kolaylaştırır. Azure, her kullanıcının kimlik bilgilerine göre bir belirteç oluşturmak için OAuth 2.0 kullanarak sizin için yaptığı için botunuzun kimlik doğrulama belirteçlerini yönetmesi gerekmez. Botunuz bu kaynaklara erişmek için Azure tarafından oluşturulan belirteci kullanır. Bu şekilde, kullanıcının güvenli bir kaynağa erişmek için bota kimlik ve parola sağlaması gerekmez, yalnızca güvenilir bir kimlik sağlayıcısına sağlanır.

Bot Framework'ün bu tür bir kimlik doğrulamasını nasıl işlediğine genel bakış için bkz . Kullanıcı kimlik doğrulaması.

Bu makalede iki örneğe başvuruda bulunur. Kimlik doğrulama belirtecinin nasıl alınacakları gösterilir. Diğeri daha karmaşıktır ve kullanıcı adına Microsoft Graph'a nasıl erişileceği gösterilir. Her iki durumda da bot için bir OAuth belirteci almak üzere kimlik sağlayıcısı olarak Azure AD v1 veya v2 kullanabilirsiniz. Bu makale şunların nasıl yapılacağını kapsar:

  • Azure Bot kaynağı oluşturma
  • Microsoft Entra Id kimlik sağlayıcısını oluşturma
  • Microsoft Entra ID kimlik sağlayıcısını bota kaydetme
  • Bot kodunu hazırlama

Bu makaleyi tamamladıktan sonra birkaç basit görevi yanıtlayan bir bota sahip olacaksınız. Microsoft Graph örneğinde bir e-posta gönderebilir, kim olduğunuzu görüntüleyebilir ve son e-postaları kontrol edebilirsiniz. OAuth özelliklerini test etmek için botu yayımlamanız gerekmez; ancak bot için geçerli Azure uygulama kimliği ve parolası gerekir.

Not

Bot Framework JavaScript, C# ve Python SDK'ları desteklenmeye devam edecektir, ancak Java SDK'sı son uzun vadeli destek Kasım 2023'te sona erecek şekilde kullanımdan kaldırılacaktır.

Java SDK ile oluşturulan mevcut botlar çalışmaya devam edecektir.

Yeni bot derlemesi için Microsoft Copilot Studio'yu kullanmayı göz önünde bulundurun ve doğru copilot çözümünü seçme hakkında bilgi edinin.

Daha fazla bilgi için bkz . Bot oluşturmanın geleceği.

Web Sohbeti ve Doğrudan Hat ile ilgili dikkat edilmesi gerekenler

Önemli

Web Sohbeti denetimini kullanarak bir bota bağlanırken güvenlik risklerini azaltmak için gelişmiş kimlik doğrulamasının etkinleştirildiği Direct Line kullanmanız gerekir. Daha fazla bilgi için bkz . Direct Line gelişmiş kimlik doğrulaması.

Önkoşullar

  • Botun temel bilgileri, durumu yönetme, iletişim kutusu kitaplığı ve sıralı konuşma akışını uygulama ve iletişim kutularını yeniden kullanma hakkında bilgi.

  • Azure ve OAuth 2.0 geliştirme bilgileri.

  • .NET için Visual Studio 2017 veya üzeri.

  • JavaScript için Node.js.

  • Python için Python 3.8+

  • Aşağıda listelenen örneklerden biri.

    Örnek BotBuilder sürümü Gösteriler
    C# veya JavaScript ya da Java ya da Python'da kimlik doğrulaması v4 OAuthCard desteği
    C# veya JavaScript ya da Java ya da Python'da Microsoft Graph için kimlik doğrulaması v4 OAuth 2.0 ile Microsoft Graph API desteği
    C# veya JavaScript ya da Java ya da Python'da Microsoft Teams için kimlik doğrulaması v4 OAuth 2.0 ile Microsoft Graph API desteği

    Bu makalede başvuruda bulunan örnekleri çalıştırmak için şunlar gerekir:

    • Azure'da bot kaynağının kaydedildiği bir Microsoft Entra ID uygulaması. Bu uygulama, botunun Microsoft Graph gibi bir dış güvenli kaynağa erişmesine olanak tanır. Ayrıca kullanıcının botla Web Sohbeti gibi çeşitli kanallar üzerinden iletişim kurmasına da olanak tanır.
    • Kimlik sağlayıcısı işlevi görecek ayrı bir Microsoft Entra ID uygulaması. Bu uygulama, bot ile güvenli kaynak arasında OAuth bağlantısı kurmak için gereken kimlik bilgilerini sağlar. Bu makalede kimlik sağlayıcısı olarak Active Directory kullanıldığına dikkat edin. Diğer birçok sağlayıcı da desteklenir.

Önemli

Azure'a bir bot kaydettiğinizde bir Microsoft Entra ID uygulaması atanır. Ancak bu uygulama, kanaldan bota erişimin güvenliğini sağlar. Botun kullanıcı adına erişmesini istediğiniz her dış güvenli kaynak için ek bir Microsoft Entra ID uygulamasına ihtiyacınız vardır.

Kaynağı oluşturma

Botunuzu Azure AI Bot Hizmeti kaydetmenizi sağlayacak Azure Bot kaynağını oluşturun.

İpucu

Yeni Web Uygulaması Botu ve Bot Kanalları Kayıt kaynakları oluşturulamaz; ancak yapılandırılan ve dağıtılan bu tür mevcut kaynaklar çalışmaya devam eder. SDK sürüm 4.14.1.2 veya sonraki bir sürümden bir VSIX veya Yeoman şablonundan oluşturulan botlar, Azure Bot kaynağı oluşturacak ARM şablonlarını içerir.

  1. Azure portalına gidin.

  2. Sağ bölmede Kaynak oluştur'u seçin.

  3. Arama kutusuna yazın botve Enter tuşuna basın.

  4. Azure Bot kartını seçin.

    Azure bot kaynağını seçme

  5. Oluştur'u belirleyin.

  6. Gerekli alanlara değerleri girin ve ayarları gözden geçirip güncelleştirin.

    1. Proje ayrıntıları altında bilgi sağlayın. Botunuzun genel mi yoksa yerel veri yerleşimi mi olacağını seçin. Şu anda yerel veri yerleşimi özelliği "westeurope" ve "centralindia" bölgesindeki kaynaklar için kullanılabilir. Daha fazla bilgi için bkz. Azure yapay zeka Bot Hizmeti bölgeselleştirme.

      Proje, Azure Bot kaynağının ayarlarını ayrıntılarıyla gösterir

    2. Microsoft Uygulama Kimliği altında bilgi sağlayın. Bot kimliğinizin Azure'da nasıl yönetileceğini ve yeni bir kimlik oluşturulup oluşturulmayacağını veya mevcut bir kimliğin nasıl kullanılacağını seçin.

      Azure Bot kaynağı için Microsoft uygulama kimliği ayarları

  7. Gözden geçir ve oluştur’u seçin.

  8. Doğrulama başarılı olursa Oluştur'u seçin.

  9. Dağıtım tamamlandıktan sonra Kaynağa git'i seçin. Botu ve ilgili kaynakları seçtiğiniz kaynak grubunda listelenmiş olarak görmeniz gerekir.

  10. Bot Framework SDK'nız yoksa tercih ettiğiniz dile yönelik paketleri kullanmayı öğrenmek için GitHub'dan indir'i seçin.

    SDK'da bot oluşturma

Artık Bot Framework SDK'sı ile botunuzu oluşturmaya hazırsınız.

İpucu

Azure, yeni bir uygulama kimliğine sahip yeni bir tek kiracılı veya çok kiracılı Azure Bot kaynağı oluşturduğunda bir parola da oluşturur.

Bot kimlik bilgileri

Botunuzun yapılandırma dosyasına kimlik bilgileri eklemek için bu adımları izleyin. Dosya, botu oluşturmak için kullandığınız programlama diline bağlı olarak farklılık gösterir.

Önemli

Bot Framework SDK'sının Java sürümü yalnızca çok kiracılı botları destekler. C#, JavaScript ve Python sürümleri bot kimliğini yönetmek için üç uygulama türünü de destekler.

Dil Dosya adı Notlar
C# appsettings.json Botunuzun kimliğini yönetmek için üç uygulama türünü de destekler.
JavaScript .Env Botunuzun kimliğini yönetmek için üç uygulama türünü de destekler.
Java application.properties Yalnızca çok kiracılı botları destekler.
Python config.py Botunuzun kimliğini yönetmek için üç uygulama türünü de destekler.

Eklemeniz gereken kimlik bilgileri botunun uygulama türüne bağlıdır. Yapılandırma dosyanızda aşağıdaki değerleri sağlayın.

C#, JavaScript ve Python botlarında kullanılabilir.

Özellik Değer
MicrosoftAppType UserAssignedMSI
MicrosoftAppId Kullanıcı tarafından atanan yönetilen kimliğin istemci kimliği.
MicrosoftAppPassword Uygulanamaz. Kullanıcı tarafından atanan yönetilen kimlik botu için bunu boş bırakın.
MicrosoftAppTenantId Kullanıcı tarafından atanan yönetilen kimliğin kiracı kimliği.

App Service'inizi güncelleştirmek için

Botunuz için mevcut bir App Service kaynağınız (web uygulaması) varsa ve botunuz kullanıcı tarafından atanan bir yönetilen kimlik uygulamasıysa botunuzun uygulama hizmetini güncelleştirmeniz gerekebilir:

  1. Botunuzun web uygulaması için App Service dikey penceresine gidin.
  2. Ayarlar'ın altında Kimlik'i seçin.
  3. Kimlik dikey penceresinde Kullanıcı tarafından atanan sekmesini ve Ekle (+) öğesini seçin.
  4. Kullanıcı tarafından atanan yönetilen kimlik ekle dikey penceresinde:
    1. Aboneliğinizi seçin.

    2. Kullanıcı tarafından atanan yönetilen kimlikler için botunuzun yönetilen kimliğini seçin. Yönetilen kimlik sizin için otomatik olarak oluşturulduysa botunuzla aynı ada sahip olur.

    3. Botunuzda bu kimliği kullanmak için Ekle'yi seçin.

      Bot için yönetilen kimliğin seçili olduğu App Service Kimliği dikey penceresi.

Uygulamanızı veya kiracı kimliğinizi almak için

Botunuzun uygulamasını veya kiracı kimliğini almak için:

  1. Botunuzun Azure Bot kaynağı dikey penceresine gidin.
  2. Bot'un Yapılandırma dikey penceresine gidin. Bu dikey pencerede bot'un Microsoft Uygulama Kimliği'ni veya Uygulama Kiracı Kimliği'ni kopyalayabilirsiniz.

Yeni parola oluşturmak için

Tek kiracılı ve çok kiracılı botların bazı işlemler için ihtiyacınız olan bir uygulama gizli dizisi veya parolası vardır. Azure AI Bot Hizmeti bot gizli dizinizi gizler. Ancak botun App Service kaynağının sahibi yeni bir parola oluşturabilir:

  1. Botunuzun Azure Bot kaynağı dikey penceresine gidin.
  2. Bot'un Yapılandırma dikey penceresine gidin.
  3. Microsoft Uygulama Kimliği'nin yanındaki Yönet'i seçerek uygulama hizmetinin Sertifikalar + gizli diziler dikey penceresine gidin.
  4. Yeni bir istemci gizli dizisi oluşturmak ve değeri güvenli bir yere kaydetmek için dikey penceredeki yönergeleri izleyin.

Microsoft Entra Id kimlik hizmeti

Microsoft Entra Id, OAuth 2.0 gibi endüstri standardı protokolleri kullanarak kullanıcılarda güvenli bir şekilde oturum açabilen uygulamalar oluşturmanıza olanak tanıyan bir bulut kimliği hizmetidir.

Şu iki kimlik hizmetlerinden birini kullanabilirsiniz:

  1. Microsoft Entra ID geliştirici platformu (v1.0). Azure AD v1 uç noktası olarak da bilinen bu uç nokta, bir Microsoft iş veya okul hesabıyla güvenli bir şekilde oturum açan uygulamalar oluşturmanıza olanak tanır. Daha fazla bilgi için bkz . Geliştiriciler için Microsoft Entra Id'ye (v1.0) genel bakış.
  2. Microsoft kimlik platformu (v2.0). Azure AD platformunun (v1.0) evrimi olan Microsoft Entra Id uç noktası olarak da bilinir. Tüm Microsoft kimlik sağlayıcılarında oturum açıp Microsoft Graph gibi Microsoft API'lerini veya geliştiricilerin oluşturduğu diğer API'leri çağırmak için belirteçler alan uygulamalar oluşturmanıza olanak tanır. Daha fazla bilgi için bkz. Microsoft kimlik platformu (v2.0) genel bakış.

v1 ve v2 uç noktaları arasındaki farklar hakkında bilgi için bkz. Neden Microsoft kimlik platformu 'a (v2.0) güncelleştirilsin?. Tam bilgi için bkz. Microsoft kimlik platformu (eski adıyla Geliştiriciler için Microsoft Entra Id).

Microsoft Entra Id kimlik sağlayıcısını oluşturma

Bu bölümde bot kimliğini doğrulamak için OAuth 2.0 kullanan bir Microsoft Entra Id kimlik sağlayıcısının nasıl oluşturulacağı gösterilmektedir. Azure AD v1 veya Microsoft Entra Id uç noktalarını kullanabilirsiniz.

İpucu

Microsoft Entra ID uygulamasını oluşturmanız ve bir uygulama tarafından istenen izinlere temsilci atamayı onaylayabileceğiniz bir kiracıya kaydetmeniz gerekir.

  1. Azure portalında Microsoft Entra Id panelini açın. Doğru kiracıda değilseniz, doğru kiracıya geçmek için Dizini değiştir'i seçin. (Kiracı oluşturma hakkında bilgi için bkz. Portala erişin ve bir kiracı oluşturun.)

  2. Uygulama kayıtları panelini açın.

  3. Uygulama kayıtları panelinde Yeni kayıt'ı seçin.

  4. Gerekli alanları doldurun ve uygulama kaydını oluşturun.

    1. Uygulamanızı adlandırın.

    2. Uygulamanız için Desteklenen hesap türlerini seçin. (Bu seçeneklerden herhangi biri bu örnekle çalışır.)

    3. Yeniden Yönlendirme URI'si için Web'i seçin ve URL'yi desteklenen OAuth yeniden yönlendirme URL'lerinden birine ayarlayın.

    4. Kaydet'i seçin.

      • Oluşturulduktan sonra Azure, uygulamanın Genel Bakış sayfasını görüntüler.
      • Uygulama (istemci) kimliği değerini kaydedin. Bu değeri daha sonra bağlantı dizesi oluşturduğunuzda ve Microsoft Entra ID sağlayıcısını bot kaydına kaydettiğinizde istemci kimliği olarak kullanacaksınız.
      • Dizin (kiracı) kimliği değerini kaydedin. Bu sağlayıcı uygulamasını botunuza kaydetmek için bu değeri kullanacaksınız.
  5. Gezinti bölmesinde Sertifikalar ve gizli diziler'i seçerek uygulamanız için bir gizli dizi oluşturun.

    1. İstemci gizli dizileri'nin altında Yeni istemci gizli dizisi'ni seçin.
    2. Bu gizli diziyi, gibi bot loginbu uygulama için oluşturmanız gerekebilecek diğer kullanıcılardan tanımlamak için bir açıklama ekleyin.
    3. Süre Sonu için gizli dizi süresinin dolacağı süreyi seçin.
    4. Ekle'yi seçin.
    5. Sertifikalar ve gizli diziler'den ayrılmadan önce gizli diziyi kaydedin. Bu değeri daha sonra Microsoft Entra ID uygulamanızı botunuza kaydederken gizli dizi olarak kullanacaksınız.
  6. Gezinti bölmesinde API izinleri'ni seçerek API izinleri panelini açın. Uygulama için API izinlerini açıkça ayarlamak en iyi yöntemdir.

    1. api izinleri isteme bölmesini göstermek için İzin ekle'yi seçin.

    2. Bu örnek için Microsoft API'leri ve Microsoft Graph'ı seçin.

    3. Temsilci izinleri'ni seçin ve ihtiyacınız olan izinlerin seçili olduğundan emin olun. Bu örnek için bu izinler gerekir.

      Not

      YÖNETİÇİ ONAYI GEREKLİ olarak işaretlenen tüm izinler hem kullanıcının hem de kiracı yöneticisinin oturum açmasını gerektirir, bu nedenle botunuzun bunlardan uzak durma eğilimi vardır.

      • openid
      • profil
      • Mail.Read
      • Mail.Send
      • User.Read
      • User.ReadBasic.All
    4. İzinler ekle'yi seçin. (Bir kullanıcı bot aracılığıyla bu uygulamaya ilk kez eriştiğinde onay vermesi gerekir.)

Artık yapılandırılmış bir Microsoft Entra ID uygulamanız var.

Not

bağlantı dizesi oluşturduğunuzda ve kimlik sağlayıcısını bot kaydına kaydettiğinizde Uygulama (istemci) kimliğini ve İstemci gizli dizisini atayacaksınız. Sonraki bölüme bakın.

Microsoft Entra ID kimlik sağlayıcısını bota kaydetme

Bir sonraki adım, kimlik sağlayıcınızı botunuza kaydetmektir.

  1. Botunuzun Azure Bot kaynak sayfasını Azure portalında açın.

  2. Ayarlar'ı seçin.

  3. Sayfanın alt kısmındaki OAuth Bağlantı Ayarları'nın altında Ayar Ekle'yi seçin.

  4. Formu aşağıdaki gibi doldurun:

    1. Adı. Bağlantınız için bir ad girin. Bunu bot kodunuzda kullanacaksınız.

    2. Hizmet Sağlayıcısı. Microsoft Entra Id'yi seçerek Microsoft Entra Id'ye özgü alanları görüntüleyin.

    3. İstemci kimliği. Microsoft Entra Id kimlik sağlayıcınız için kaydettiğiniz uygulama (istemci) kimliğini girin.

    4. gizli dizi. Microsoft Entra Id kimlik sağlayıcınız için kaydettiğiniz gizli diziyi girin.

      İpucu

      Sertifikaları kullanmak istiyorsanız AAD v2 with Certificates sağlayıcısını seçebilirsiniz. Bot Hizmeti Belirteç Deposu'na (appid: 5b404cf4-a79d-4cfe-b866-24bf8e1a4921) sertifikayı alma izni vermeniz gerekir.

    5. Belirteç Değişimi URL'si. Yalnızca Microsoft Entra Id'de SSO için kullanıldığından boş bırakın.

    6. Kiracı Kimliği. Microsoft Entra ID uygulamanız için daha önce kaydettiğiniz dizin (kiracı) kimliğini girin veya Azure DD uygulamasını oluştururken seçilen desteklenen hesap türlerine bağlı olarak ortak değerini girin. Hangi değerin ataneceğine karar vermek için şu ölçütleri izleyin:

      • Microsoft Entra Id uygulamasını oluştururken, Yalnızca bu kuruluş dizininde Hesaplar'ı seçtiyseniz (yalnızca Microsoft - Tek kiracı) Microsoft Entra Id uygulaması için daha önce kaydettiğiniz kiracı kimliğini girin.
      • Bununla birlikte, herhangi bir kuruluş dizininde (Herhangi bir Microsoft Entra ID dizini - Xbox, Outlook.com gibi çok kiracılı ve kişisel Microsoft hesapları) veya herhangi bir kuruluş dizinindeki Hesaplar'ı (Microsoft Entra ID dizini - Çok kiracı) seçtiyseniz, kiracı kimliği yerine girin common . Aksi takdirde, Microsoft Entra Id uygulaması kimliği seçilen kiracı aracılığıyla doğrular ve kişisel Microsoft hesaplarını hariç tutar.

      Bu, kimliği doğrulanabilir kullanıcılarla ilişkilendirilmiş kiracı olacaktır. Daha fazla bilgi için bkz . Microsoft Entra Id'de Kiracı.

    7. Kapsamlar için, uygulama kaydından seçtiğiniz iznin adlarını girin. Test amacıyla şunu girebilirsiniz: openid profile.

      Not

      Microsoft Entra Id için Kapsamlar alanı büyük/küçük harfe duyarlı, boşlukla ayrılmış bir değer listesi alır.

  5. Kaydet'i seçin.

Not

Bu değerler uygulamanızın Microsoft Graph API'sini kullanarak Office 365 verilerine erişmesini sağlar. Ayrıca Belirteç Değişimi URL'si yalnızca Microsoft Entra Id'de SSO için kullanıldığından boş bırakılmalıdır.

Bağlantınızı test edin

  1. Oluşturduğunuz bağlantıyı açmak için bağlantı girdisini seçin.
  2. Hizmet Sağlayıcısı Bağlantı Ayarı bölmesinin üst kısmındaki Bağlantıyı Test Et'i seçin.
  3. İlk kez bu, uygulamanızın istediği izinleri listeleyen yeni bir tarayıcı sekmesi açmalı ve sizden kabul etmenizi istemelidir.
  4. Kabul Et’i seçin.
  5. Bu işlem sizi bağlantınızın-adı> Başarılı sayfasına bağlantı test etme <sayfasına yönlendirmelidir.

Artık kullanıcı belirteçlerini almak için bot kodunuzda bu bağlantı adını kullanabilirsiniz.

Bot kodunu hazırlama

Bu işlemi tamamlamak için botunuzun uygulama kimliği ve parolası gerekir.

  1. Çalışmak istediğiniz örneği GitHub deposundan kopyalayın: Bot kimlik doğrulaması veya Microsoft Graph için Bot kimlik doğrulaması.

  2. Güncelleştirme appsettings.json:

    • Botunuza eklediğiniz OAuth bağlantı ayarının adına ayarlayın ConnectionName .

    • botunuzun MicrosoftAppPassword uygulama kimliğini ve uygulama gizli dizisini ayarlayınMicrosoftAppId.

      Bot gizli dizinizdeki karakterlere bağlı olarak, XML'nin paroladan kaçması gerekebilir. Örneğin, tüm ve işaretin (&) olarak &amp;kodlanması gerekir.

    {
      "MicrosoftAppType": "",
      "MicrosoftAppId": "",
      "MicrosoftAppPassword": "",
      "MicrosoftAppTenantId": "",
      "ConnectionName": ""
    }
    

    Genel bulutta veri yerleşimi ile botta OAuth kullanmak için uygulama ayarlarınıza aşağıdaki yapılandırmaları eklemeniz gerekir

    "OAuthUrl": "<Regional-OAuth-Uri>",
    "ToChannelFromBotOAuthScope": "https://api.botframework.com",
    "ToChannelFromBotLoginUrlTemplate": "https://api.botframework.com",
    "PublicAzureChannel": "https://api.botframework.com",
    "ToBotFromChannelOpenIdMetadataUrl": "https://login.botframework.com/v1/.well-known/openidconfiguration",
    "ToBotFromEmulatorOpenIdMetadataUrl": "https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration",
    "ToBotFromChannelTokenIssuer": "https://api.botframework.com",
    "ToChannelFromBotLoginUrl": "https://login.microsoftonline.com/botframework.com",
    

    Burada <Regional-OAuth-Url> aşağıdaki URI'lerden biridir:

    URI Açıklama
    https://europe.api.botframework.com Avrupa'da veri yerleşimi olan genel bulut botları için.
    https://unitedstates.api.botframework.com Birleşik Devletler veri yerleşimi olan genel bulut botları için.
    https://india.api.botframework.com Hindistan'da veri yerleşimi olan genel bulut botları için.
  3. Güncelleştirme Startup.cs:

    Kamu bulutu gibi genel olmayan Azure bulutlarında OAuth kullanmak için Startup.cs dosyasına aşağıdaki kodu eklemeniz gerekir.

    string uri = "<uri-to-use>";
    MicrosoftAppCredentials.TrustServiceUrl(uri);
    OAuthClientConfig.OAuthEndpoint = uri;
    
    

    Burada <uri-to-use> aşağıdaki URI'lerden biridir:

    URI Açıklama
    https://api.botframework.azure.us Veri yerleşimi olmayan Birleşik Devletler kamu bulutu botları için.
    https://api.botframework.com Veri yerleşimi olmayan genel bulut botları için. Bu varsayılan URI'dir ve Startup.cs için değişiklik gerektirmez.

Microsoft uygulama kimliği ve Microsoft uygulama parolası değerlerini almak için bkz. Kayıt parolasını alma.

Not

Artık bu bot kodunu Azure aboneliğinizde yayımlayabilirsiniz (projede sağ seçim yapın ve Yayımla'yı seçin), ancak bu makale için gerekli değildir. Azure portalında botu yapılandırırken kullandığınız uygulama ve barındırma planını kullanan bir yayımlama yapılandırması ayarlamanız gerekir.

Öykünücüyü kullanarak botu test edin

Henüz yapmadıysanız Bot Framework Öykünücüsü'ni yükleyin. Ayrıca bkz. Öykünücü ile hata ayıklama.

Bot örneği oturum açma işleminin çalışması için Öykünücü'yü Kimlik doğrulaması için yapılandırma bölümünde gösterildiği gibi yapılandırmanız gerekir.

Test Etme

Kimlik doğrulama mekanizmasını yapılandırdıktan sonra gerçek bot örnek testini gerçekleştirebilirsiniz.

Not

Bot örneğinin uygulanma şekli nedeniyle bir sihirli kod girmeniz istenebilir. Bu sihirli kod RFC#7636'nın bir parçasıdır ve ek bir güvenlik öğesi eklemek için vardır. Sihirli kodu kaldırdıktan sonra güvenlik riski artar. Bu, gelişmiş kimlik doğrulamasının etkinleştirildiği Direct Line kullanılarak azaltılabilir. Daha fazla bilgi için bkz . Bot Framework gelişmiş kimlik doğrulaması.

  1. Bot örneğini makinenizde yerel olarak çalıştırın.
  2. Öykünücüyü başlatın.
  3. Bota bağlanırken botunuzun uygulama kimliğini ve parolasını sağlamanız gerekir.
    • Uygulama kimliğini ve parolayı Azure uygulama kaydından alırsınız. Bunlar, veya .env dosyasındaki bot uygulamasına atadığınız değerlerle appsettings.json aynıdır. Öykünücü'de bu değerleri yapılandırma dosyasında veya bota ilk kez bağlandığınızda atarsınız.
    • Bot kodunuzda paroladan XML kaçışı yapmanız gerekiyorsa, bunu burada da yapmanız gerekir.
  4. Bot için kullanılabilir komutların listesini görmek için yazın help ve kimlik doğrulama özelliklerini test edin.
  5. Oturum açtıktan sonra, oturumu kapatana kadar kimlik bilgilerinizi yeniden sağlamanız gerekmez.
  6. Oturumu kapatmak ve kimlik doğrulamanızı iptal etmek için yazın logout.

Not

Bot kimlik doğrulaması için Bot Bağlayıcısı hizmetinin kullanılması gerekir. Hizmet, Azure Bot kaynağınızdan bilgilere erişir.

Kimlik doğrulama örneği

Bot kimlik doğrulama örneğinde iletişim kutusu, kullanıcı oturum açtıktan sonra kullanıcı belirtecini alacak şekilde tasarlanmıştır.

Kimlik doğrulama örnek botuyla örnek konuşma.

Microsoft Graph için kimlik doğrulaması örneği

Microsoft Graph için Bot kimlik doğrulaması örneğinde, iletişim kutusu kullanıcı oturum açtıktan sonra sınırlı sayıda komutu kabul etmek üzere tasarlanmıştır.

Microsoft Graph kimlik doğrulaması örnek botuyla örnek konuşma.


Ek bilgi

Kullanıcı botdan kullanıcının oturum açmasını gerektiren bir işlem gerçekleştirmesini istediğinde, bot belirli bir bağlantı için belirteç almayı başlatmak için bir OAuthPrompt kullanabilir. aşağıdakilerden OAuthPrompt oluşan bir belirteç alma akışı oluşturur:

  1. Azure AI Bot Hizmeti geçerli kullanıcı ve bağlantı için zaten bir belirteci olup olmadığını denetleme. Belirteç varsa belirteç döndürülür.
  2. Azure AI Bot Hizmeti önbelleğe alınmış bir belirteci yoksa, OAuthCard kullanıcının seçebileceği bir oturum açma düğmesi olan bir oluşturulur.
  3. Kullanıcı oturum açma düğmesini seçtikten OAuthCard sonra Azure AI Bot Hizmeti bota kullanıcının belirtecini doğrudan gönderir veya kullanıcıya sohbet penceresine girmesi için 6 basamaklı bir kimlik doğrulama kodu sunar.
  4. Kullanıcıya bir kimlik doğrulama kodu sunulursa, bot bu kimlik doğrulama kodunu kullanıcının belirteci ile değiştirir.

Aşağıdaki bölümlerde, örneğin bazı yaygın kimlik doğrulama görevlerini nasıl uyguladığı açıklanmaktadır.

Kullanıcının oturumunu açmak ve belirteç almak için OAuth istemi kullanma

C# örneği için mimari diyagramı.

İletişim Kutuları\MainDialog.cs

Oluşturucusunda MainDialog'a bir OAuth istemi ekleyin. Burada, bağlantı adının değeri appsettings.json dosyasından alınmıştı.

AddDialog(new OAuthPrompt(
    nameof(OAuthPrompt),
    new OAuthPromptSettings
    {
        ConnectionName = ConnectionName,
        Text = "Please Sign In",
        Title = "Sign In",
        Timeout = 300000, // User has 5 minutes to login (1000 * 60 * 5)
    }));

İletişim kutusu adımında, kullanıcıdan oturum açmasını isteyen OAuth istemini başlatmak için kullanın BeginDialogAsync .

  • Kullanıcı zaten oturum açmışsa bu, kullanıcıya sormadan bir belirteç yanıt olayı oluşturur.
  • Aksi takdirde, bu işlem kullanıcıdan oturum açmasını ister. Azure AI Bot Hizmeti, kullanıcı oturum açmayı denedikten sonra belirteç yanıt olayını gönderir.
return await stepContext.BeginDialogAsync(nameof(OAuthPrompt), null, cancellationToken);

Aşağıdaki iletişim kutusu adımında, önceki adımda elde edilen sonuçta bir belirtecin olup olmadığını denetleyin. Null değilse, kullanıcı başarıyla oturum açtı.

// Get the token from the previous step. Note that we could also have gotten the
// token directly from the prompt itself. There is an example of this in the next method.
var tokenResponse = (TokenResponse)stepContext.Result;

TokenResponseEvent'i bekleme

OAuth istemini başlattığınızda, kullanıcının belirtecini alacak bir belirteç yanıt olayı bekler.

Botlar\AuthBot.cs

AuthBot , belirteç yanıtı olay etkinliklerinden ActivityHandler türetilir ve açıkça işler. Burada, OAuth isteminin olayı işlemesine ve belirteci almasına olanak tanıyan etkin iletişim kutusuna devam edeceğiz.

protected override async Task OnTokenResponseEventAsync(ITurnContext<IEventActivity> turnContext, CancellationToken cancellationToken)
{
    Logger.LogInformation("Running dialog with Token Response Event Activity.");

    // Run the Dialog with the new Token Response Event Activity.
    await Dialog.RunAsync(turnContext, ConversationState.CreateProperty<DialogState>(nameof(DialogState)), cancellationToken);
}

Kullanıcının oturumunu kapatma

Kullanıcıların zaman aşımına uğradıklarına bağlı olmak yerine açıkça oturumu kapatmalarına izin vermek en iyi yöntemdir.

İletişim Kutuları\LogoutDialog.cs

private async Task<DialogTurnResult> InterruptAsync(DialogContext innerDc, CancellationToken cancellationToken = default(CancellationToken))
{
    if (innerDc.Context.Activity.Type == ActivityTypes.Message)
    {
        var text = innerDc.Context.Activity.Text.ToLowerInvariant();

        if (text == "logout")
        {
            // The UserTokenClient encapsulates the authentication processes.
            var userTokenClient = innerDc.Context.TurnState.Get<UserTokenClient>();
            await userTokenClient.SignOutUserAsync(innerDc.Context.Activity.From.Id, ConnectionName, innerDc.Context.Activity.ChannelId, cancellationToken).ConfigureAwait(false);

            await innerDc.Context.SendActivityAsync(MessageFactory.Text("You have been signed out."), cancellationToken);
            return await innerDc.CancelAllDialogsAsync(cancellationToken);
        }
    }

    return null;
}

Teams Kimlik Doğrulaması Ekleme

OAuth, Teams'de diğer kanallardan farklı şekilde işlenir. Teams Kimlik Doğrulama Botu örneği (C#, JavaScript, Java veya Python'da) Teams için kimlik doğrulamasını düzgün bir şekilde uygulamayı gösterir.

Daha fazla bilgi