Aracılığıyla paylaş


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.

Web Sohbeti için oturum açma akışına yönelik sıralı diyagram.

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.

  1. Kullanıcı web sitesinde oturum açar.

  2. Web Sohbeti tarafından bir OAuth tetikleyici etkinliği alınır.

  3. Web Sohbeti, OAuth tetikleyici etkinliği aracılığıyla botla bir konuşma başlatır.

  4. Bot Web Sohbeti bir OAuth Kartı geri gönderir.

  5. Web Sohbeti, kullanıcıya görüntülemeden önce OAuth kartını durdurur ve bir TokenExchangeResource özellik içerip içermediğini denetler.

  6. ö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.

  7. 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>"
        }
    }
    
  8. Bot, değiştirilebilir bir belirteç almak için Azure AI Bot Hizmeti bir istek vererek öğesini işlerTokenExchangeInvokeRequest.

  9. Azure AI Bot Hizmeti belirteci bota gönderir.

  10. Bot, Web Sohbeti bir geri döndürürTokenExchangeInvokeResponse. Web Sohbeti alır TokenExchangeInvokeResponsekadar 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>"
        }
    }
    
  11. 'nin TokenExchangeInvokeResponse bir status 200değeri varsa, Web Sohbeti OAuth kartını göstermez. Diğer status 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.