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ınacağı 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

Yapay zeka hizmetleri, düzenleme ve bilgi seçiminizle aracılar oluşturmak için Microsoft 365 Aracıları SDK'sını kullanmayı göz önünde bulundurun. Aracılar SDK'sı C#, JavaScript veya Python desteğine sahiptir. SDK hakkında daha fazla bilgiyi aka.ms/agents adresinde bulabilirsiniz. SaaS tabanlı bir aracı platformu arıyorsanız Microsoft Copilot Studio'yu göz önünde bulundurun. Bot Framework SDK'sı ile oluşturulmuş mevcut bir botunuz varsa botunuzu Aracılar SDK'sına güncelleştirebilirsiniz. Bot Framework SDK'sını Aracılar SDK'sına geçirme kılavuzunda temel değişiklikleri ve güncelleştirmeleri gözden geçirebilirsiniz. Bot Framework SDK'sı için destek biletleri artık 31 Aralık 2025 itibarıyla hizmet verilmeyecektir.

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 3.8+.

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

    Örnek BotBuilder sürümü Gösterir
    Kimlik doğrulamasıC# veya JavaScript veya Java veya Python'da v4 OAuthCard desteği
    Microsoft Graph için kimlik doğrulamasıC# veya JavaScript ya da Java veya Python ile v4 OAuth 2.0 ile Microsoft Graph API desteği
    Python veya Java veya JavaScript veya C# ile 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 portala 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 Azure Yapay Zeka Bot Hizmeti'nde Bölgeselleştirme bölümüne bakın.

      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 seçeneğini 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 kullanılan 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# (programlama dili) 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 uygulama.özellikleri Yalnızca çok kiracılı botları destekler.
Piton 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.

Mülk 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 paneline gidin.
  2. Ayarlar'ın altında Kimlik'i seçin.
  3. Kimlik panelinde Kullanıcı tarafından atanan sekmesini ve Ekle (+) öğesini seçin.
  4. Kullanıcı tarafından atanan yönetilen kimlik ekleme 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 bölmesi.

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

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

  1. Botunuzun Azure Bot kaynak paneline gidin.
  2. Bot Yapılandırma sekmesine gidin. Bu bölümde, bot'un Microsoft Uygulama Kimliği 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 anahtarı veya parolası vardır. Azure AI Bot Hizmeti bot sırrınızı gizler. Ancak botun App Service kaynağının sahibi yeni bir parola oluşturabilir:

  1. Botunuzun Azure Bot kaynak paneline gidin.
  2. Bot Yapılandırma sekmesine 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 anahtarı oluşturmak ve değeri güvenli bir yere kaydetmek için paneldeki 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 izinleri temsilci olarak onaylayabileceğiniz bir kiracıda 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 (tenant) ID 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 anahtarlar'ı seçerek uygulamanız için bir gizli anahtar oluşturun.

    1. İstemci gizli anahtarları altında, Yeni istemci gizli anahtarı'nı seçin.
    2. Bu gizli bilgiyi, örneğin bot login, bu uygulama için oluşturmanız gerekebilecek diğerlerinden ayırt etmek için bir açıklama ekleyin.
    3. Süre Sonu için gizlinin süresinin dolacağı süreyi seçin.
    4. Ekle'yi seçin.
    5. Sertifikalar ve gizli anahtarlar'dan çıkmadan önce gizli anahtarı kaydedin. Bu değeri daha sonra Microsoft Entra ID uygulamanızı botunuza kaydederken istemci sırrı 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. Bir izin ekle'yi seçerek API izinleri isteme bölümünü gösterin.

    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, bu izinleri gerektirir.

      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ı dizesini oluşturduğunuzda ve kimlik sağlayıcısını bot kaydına kaydettiğinizde Uygulama (istemci) kimliğini ve İstemci gizli anahtarını 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. istemci sırrı. Microsoft Entra ID kimlik sağlayıcınız için kaydettiğiniz gizli bilgiyi girin.

      İpucu

      Sertifikaları kullanmak istiyorsanız AAD v2 with Certificates sağlayıcısını seçebilirsiniz. Bot Hizmeti Belirteç Deposu'na (appid: 00001111-aaaa-2222-bbbb-3333cccc4444) 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ı ID. 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ş dizinindeki hesapları (yalnızca Microsoft - Tek kiracı) seçtiyseniz, Microsoft Entra ID uygulaması için daha önce kaydettiğiniz kiracı kimliğini girin.
      • Ancak, herhangi bir kuruluş dizinindeki Hesapları (Herhangi bir Microsoft Entra ID dizini - çok kiracılı ve kişisel Microsoft hesapları, örneğin Xbox, Outlook.com) veya herhangi bir kuruluş dizinindeki Hesapları (Microsoft Entra ID dizini - Çok kiracılı) seçtiyseniz, kiracı kimliği yerine girin. Aksi takdirde, Microsoft Entra ID uygulaması, kimliği seçilen kiracı hesabı aracılığıyla doğrulama yapar 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 Microsoft Entra ID'de Kiracılık bölümüne bakın.

    7. Kapsamlar için uygulama kaydından seçtiğiniz izin 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 Token Değişim 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 <

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:

    • OAuth bağlantı ayarının adını, botunuza eklediğiniz şekilde ayarlayın ConnectionName.

    • MicrosoftAppId ve MicrosoftAppPassword değerlerini botunuzun uygulama kimliği ve uygulama gizli anahtarı olarak belirleyin.

      Bot gizli dizinizdeki karakterlere bağlı olarak, parolayı XML'e uygun şekilde kodlamanız gerekebilir. Örneğin, herhangi bir ampersand işareti (&) &amp; olarak 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 (Evrensel Kaynak Tanımlayıcısı) Açıklama
    https://europe.api.botframework.com Avrupa'da veri yerleşimi olan halka açık bulut botları için.
    https://unitedstates.api.botframework.com Amerika Birleşik Devletleri'nde veri yerleşimi bulunan 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 (Evrensel Kaynak Tanımlayıcısı) Açıklama
    https://api.botframework.azure.us Veri yerleşimi olmayan Birleşik Devletler hükümet 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 Kayıt parolasını alma bölümüne bakın.

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ü'nü yükleyin. Ayrıca Öykünücü ile Hata Ayıklama bölümüne bakın.

Bot örneğinin oturum açabilmesi için Öykünücü'yü Kimlik doğrulaması için Öykünücü'yü 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, appsettings.json veya .env dosyasında bot uygulamasına atadığınız aynı değerlerdir. Ö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. OAuthPrompt, aşağıdakilerden oluşan bir belirteç alma akışı oluşturur:

  1. Azure AI Bot Hizmeti'nin mevcut kullanıcı ve bağlantı için zaten bir belirteci olup olmadığını kontrol etme. Belirteç varsa belirteç geri döndürülür.
  2. Azure AI Bot Hizmeti önbelleğe alınmış bir belirteci yoksa, kullanıcının seçebileceği bir oturum açma düğmesi olan bir OAuthCard 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ı.

Diyaloglar\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 BeginDialogAsync kullanın.

  • 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çmaya çalıştıktan sonra jeton 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 alacağı belirteç yanıtı olayını bekler.

Botlar\AuthBot.cs

AuthBot, ActivityHandler'den türetilmiştir ve belirteç yanıtı olay etkinliklerini açıkça işler. Burada, OAuth isteminin olayı işlemesine ve belirteci almasına olanak tanıyan aktif iletişimi sürdürürüz.

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 bağlantının zaman aşımına uğramasına güvenmek yerine bizzat oturumu kapatmalarına izin vermek en iyi uygulamadır.

Diyaloglar\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