Kullanıcı kimlik doğrulaması
ŞUNLAR IÇIN GEÇERLIDIR: SDK v4
Bazen botun e-postayı denetleme, uçuş durumunu denetleme veya sipariş verme gibi güvenli çevrimiçi kaynaklara kullanıcı adına erişmesi gerekir. Kullanıcının botu kendi adına bunu yapması için yetkilendirmesi ve botu yetkilendirmek için kullanıcının kimliğini doğrulaması gerekir. OAuth , kullanıcının kimliğini doğrulamak ve botu yetkilendirmek için kullanılır. Ayrıca bkz. Kimlik doğrulama türleri.
OAuth bilgilerinizi yenilemek istiyorsanız aşağıdakilere bakın:
- İyi OAuth'a genel bakış, resmi belirtimlere göre daha kolay izleyebileceğiniz bir genel bakış
- OAuth belirtimi
Konuşmada kullanıcı kimlik doğrulaması
Kullanıcı adına e-postayı denetleme, takvime başvurma, uçuş durumunu denetleme veya sipariş verme gibi belirli işlemleri gerçekleştirmek için botun Microsoft Graph, GitHub veya şirketin REST hizmeti gibi bir dış hizmeti çağırması gerekir. Her dış hizmetin bu çağrıların güvenliğini sağlamanın bir yolu vardır. Bu istekleri göndermenin yaygın yollarından biri, bu dış hizmette kullanıcıyı benzersiz olarak tanımlayan bir kullanıcı belirteci kullanmaktır (bazen JSON Web Belirteci (JWT) olarak da adlandırılır).
Bir dış hizmete yapılan çağrının güvenliğini sağlamak için botun kullanıcının bu hizmet için belirtecini alabilmesi için oturum açmasını istemesi gerekir. Birçok hizmet, OAuth veya OAuth2 protokolü aracılığıyla belirteç almayı destekler.
Azure AI Bot Hizmeti, OAuth protokolüyle çalışan ve belirteç yaşam döngüsünü yöneten özel oturum açma kartları ve hizmetleri sağlar. Bot, kullanıcı belirteci almak için bu özellikleri kullanabilir.
Bot yapılandırmasının bir parçası olarak, OAuth bağlantısı Azure'daki Azure AI Bot Hizmeti kaynağına kaydedilir.
Bağlantı, geçerli bir OAuth istemci kimliği ve gizli dizisi, etkinleştirecek OAuth kapsamları ve bu kimlik sağlayıcısının gerektirdiği diğer bağlantı meta verileriyle birlikte kullanılacak kimlik sağlayıcısı hakkında bilgiler içerir.
Botun kodunda OAuth bağlantısı, kullanıcının oturum açmasına ve kullanıcı belirtecini almasına yardımcı olmak için kullanılır.
Aşağıdaki görüntüde, kimlik doğrulama işlemine dahil olan öğeler gösterilmektedir.
Bot Framework Belirteç Hizmeti hakkında
Bot Framework Belirteç Hizmeti şu görevden sorumludur:
- Çok çeşitli dış hizmetlerle OAuth protokolünün kullanımını kolaylaştırma.
- Belirli bir bot, kanal, konuşma ve kullanıcı için belirteçleri güvenli bir şekilde depolama.
- Kullanıcı belirteçleri alma.
Bahşiş
Botta süresi dolmuş bir kullanıcı belirteci varsa, bot şunları yapmalıdır:
- Kullanıcının oturumunu kapatma
- Oturum açma akışını yeniden başlatma
Örneğin, Microsoft Graph API'sini kullanarak kullanıcının son e-postalarını denetleyebilen bir bot, kimlik sağlayıcısından bir kullanıcı belirteci (bu örnekte Microsoft Entra Id) gerektirir. Tasarım zamanında bot geliştiricisi şu iki önemli adımı gerçekleştirir:
- Azure portalı aracılığıyla Bot Framework Belirteç Hizmeti'ne bir Microsoft Entra ID uygulaması, bir Kimlik Sağlayıcısı kaydeder.
- Bot için bir OAuth bağlantısı (örneğin
GraphConnection
, adlı) yapılandırılır.
Aşağıdaki resimde, Microsoft Graph hizmeti kullanılarak bir e-posta isteği gönderildiğinde kullanıcının botla etkileşiminin zaman sırası gösterilmektedir.
Kullanıcı bota bir e-posta isteğinde bulunur.
Bu iletiye sahip bir etkinlik kullanıcıdan Bot Framework kanal hizmetine gönderilir. Kanal hizmeti, etkinlik içindeki alanın ayarlanmasını ve iletinin bota gönderilmesini sağlar
userid
.Dekont
Kullanıcı kimlikleri, kullanıcının Facebook kimliği veya SMS telefon numarası gibi kanala özeldir.
Bot, Bot Framework Belirteç Hizmeti'ne OAuth bağlantısı
GraphConnection
için UserId için bir belirteci olup olmadığını soran bir istekte bulunur.Bu kullanıcı botla ilk kez etkileşimde olduğundan, Bot Framework Belirteç Hizmeti'nin bu kullanıcı için henüz bir belirteci yoktur ve bota bir NotFound sonucu döndürür.
Dekont
Belirteç bulunursa kimlik doğrulama adımları atlanır ve bot depolanan belirteci kullanarak e-posta isteğinde bulunabilir.
Bot, bağlantı adı
GraphConnection
olan bir OAuthCard oluşturur ve bu kartı kullanarak oturum açmak isteyen kullanıcıyı yanıtlar.Etkinlik, bu istek için geçerli bir OAuth oturum açma URL'si oluşturmak üzere Bot Framework Belirteç Hizmeti'ni çağıran Bot Framework Kanal Hizmeti'ni geçer. Bu oturum açma URL'si OAuthCard'a eklenir ve kart kullanıcıya döndürülür.
Kullanıcıya OAuthCard'ın oturum açma düğmesine tıklayarak oturum açması için bir ileti sunulur.
Kullanıcı oturum açma düğmesine tıkladığında kanal hizmeti bir web tarayıcısı açar ve oturum açma sayfasını yüklemek için dış hizmete çağrıda bulunur.
Kullanıcı dış hizmet için bu sayfada oturum açar. Ardından dış hizmet, Bot Framework Belirteç Hizmeti ile OAuth protokol değişimini tamamlar ve bu da dış hizmetin Bot Framework Belirteç Hizmeti'ne kullanıcı belirtecini göndermesine neden olur. Bot Framework Belirteç Hizmeti bu belirteci güvenli bir şekilde depolar ve bu belirteçle bota bir etkinlik gönderir.
Bot, etkinliği belirteçle birlikte alır ve MS Graph API'sine yönelik çağrılar yapmak için kullanabilir.
Oturum açma URL'sinin güvenliğini sağlama
Bot Framework kullanıcı oturum açma işlemini kolaylaştırırken dikkat edilmesi gereken önemli noktalardan biri, oturum açma URL'sinin nasıl güvenli olduğudur. Kullanıcıya bir oturum açma URL'si sunulduğunda, bu URL söz konusu botun belirli bir konuşma kimliği ve kullanıcı kimliğiyle ilişkilendirilir. Bu URL'yi paylaşmayın; bu, belirli bir bot konuşmasında yanlış oturum açmanın oluşmasına neden olur. Paylaşılan oturum açma URL'si kullanan güvenlik saldırılarını azaltmak için, makinenin ve oturum açma URL'sine tıklayan kişinin konuşma penceresinin sahibi olduğundan emin olun.
Microsoft Teams, Direct Line ve WebChat gibi bazı kanallar bunu kullanıcı fark etmeden yapabilir. Örneğin, WebChat oturum açma akışının WebChat konuşması ile aynı tarayıcıda gerçekleşmesini sağlamak için oturum tanımlama bilgilerini kullanır. Ancak, diğer kanallar için kullanıcıya genellikle 6 basamaklı bir sihirli kod sunulur. Bu, yerleşik çok faktörlü kimlik doğrulamasına benzer çünkü Bot Framework Belirteç Hizmeti, kullanıcı son kimlik doğrulamasını tamamlamadığı sürece belirteci bota yayınlamaz ve oturum açan kişinin 6 basamaklı kodu girerek sohbet deneyimine erişimi olduğunu kanıtlar.
Önemli
Lütfen bu önemli Güvenlik konularını göz önünde bulundurun. Bu blog gönderisinde ek bilgi bulabilirsiniz: WebChat'i Azure AI Bot Hizmeti Kimlik Doğrulaması ile kullanma.
Sonraki adımlar
Kullanıcı kimlik doğrulaması hakkında bilgi edindiğinize göre şimdi bunu botunuza nasıl uygulayabileceğinize göz atalım.