Web Sohbeti ile tekli işaret
ŞUNLAR IÇIN GEÇERLIDIR: SDK v4
Çoklu oturum açma (SSO), Web Sohbeti denetimi gibi bir istemcinin kullanıcı adına bir botla iletişim kurmasına olanak tanır. Şu anda yalnızca Microsoft Entra ID kimlik sağlayıcısı desteklenmektedir.
Genellikle bir Web Sohbeti bir web sitesi sayfasına eklenir. Kullanıcı web sitesinde oturum açtığında, Web Sohbeti kullanıcı adına bir bot çağırır. Kullanıcının kimlik bilgilerine göre web sitesi istemcisinin belirteci, bota erişmek için farklı bir belirteçle değiştirilir. Bu şekilde kullanıcının iki kez oturum açması gerekmez; web sitesinde ilk kez ve botta ikinci kez, dolayısıyla SSO terimi.
Aşağıdaki diyagramda Web Sohbeti istemcisi kullanılırken SSO akışı gösterilmektedir.
Hata durumunda SSO, OAuth kartını göstermenin mevcut davranışına geri döner. Kullanıcı onayı gerektiğinde veya belirteç değişimi başarısız olduğunda hata oluşabilir.
Şimdi akışı analiz edelim.
Kullanıcı web sitesinde oturum açar.
Web Sohbeti tarafından bir OAuth tetikleyici etkinliği alınır.
Web Sohbeti, OAuth tetikleyici etkinliği aracılığıyla botla bir konuşma başlatır.
Bot Web Sohbeti bir OAuth Kartı geri gönderir.
Web Sohbeti, kullanıcıya görüntülemeden önce OAuth kartını durdurur ve bir
TokenExchangeResource
özellik içerip içermediğini denetler.özelliği varsa, Web Sohbeti kullanıcı için değiştirilebilir bir belirteç almalıdır ve bu bir Microsoft Entra Id belirteci olmalıdır.
Web Sohbeti, aşağıda gösterilen gövdeyle bota bir Invoke etkinliği gönderir.
{ "type": "Invoke", "name": "signin/tokenExchange", "value": { "id": "<any unique ID>", "connectionName": "<connection name on the bot (from the OAuth Card)>", "token": "<exchangeable token>" } }
Bot, değiştirilebilir bir belirteç almak için Azure AI Bot Hizmeti bir istek vererek öğesini işler
TokenExchangeInvokeRequest
.Azure AI Bot Hizmeti belirteci bota gönderir.
Bot, Web Sohbeti bir geri döndürür
TokenExchangeInvokeResponse
. Web Sohbeti alırTokenExchangeInvokeResponse
kadar bekler.{ "status": "<response code>", "body": { "id":"<unique ID>", "connectionName": "<connection Name on the bot (from the OAuth Card)>", "failureDetail": "<failure reason if status code isn't 200, null otherwise>" } }
'nin
TokenExchangeInvokeResponse
birstatus
200
değeri varsa, Web Sohbeti OAuth kartını göstermez. Diğerstatus
herhangi bir kullanıcı için veya alınmamışsaTokenExchangeInvokeResponse
, Web Sohbeti kullanıcıya OAuth kartını gösterir. Bu, herhangi bir hata veya kullanıcı onayı gibi karşılanmamış bağımlılıklar durumunda SSO akışının normal OAuthCard akışına geri dönmesini sağlar.
Uygulama örneği için lütfen bu SSO örneğine bakın.