Megosztás a következőn keresztül:


Az egyszeri bejelentkezés ismertetése

A KÖVETKEZŐKRE VONATKOZIK: SDK v4

Az egyszeri bejelentkezés (SSO) lehetővé teszi az erőforrásokhoz való hozzáférést a független alkalmazások között. Egy felhasználó például bejelentkezhet egy szolgáltatásba egy gyökérrobotban, a gyökérrobot pedig megoszthatja a hozzáférési jogkivonatot egy képességrobottal. Jelenleg csak a Microsoft Entra-azonosítójú identitásszolgáltató támogatott.

Az egyszeri bejelentkezés a következő forgatókönyvekre vonatkozik:

  • Egy gyökérrobot és egy vagy több képességrobot. A felhasználó bejelentkezik a gyökérrobotból. A robot ezután több készséget hív meg a felhasználó nevében.
  • Webhelybe ágyazott webchat vezérlőelem. A felhasználó bejelentkezik a webhelyről. A webhely ezután meghív egy robotot vagy egy készséget a felhasználó nevében.

Az egyszeri bejelentkezés a következő előnyöket nyújtja:

  • A felhasználónak nem kell többször bejelentkeznie.
  • A gyökérrobotnak vagy webhelynek nem kell ismernie a felhasználó engedélyeit.

Feljegyzés

Az egyszeri bejelentkezés a Bot Framework SDK 4.8-s és újabb verziójában érhető el.

Egyszeri bejelentkezés összetevőinek interakciója

Az alábbi időütemezési diagramok az egyszeri bejelentkezés különböző összetevői közötti interakciókat mutatják be.

  • Az alábbi ábra egy gyökérrobot folyamatát szemlélteti.

    SSO-szekvenciadiagram gyökérrobothoz.

  • Az alábbi ábra egy webchat vezérlőelem folyamatát és tartalék folyamatát szemlélteti.

    SSO-szekvenciadiagram egy webchat vezérlőelemhez.

    Ha a jogkivonat cseréje meghiúsul, a visszaesés azt jelzi, hogy a felhasználónak be kell jelentkeznie. Ilyen hibák akkor fordulhatnak elő, ha további engedélyekre van szükség, vagy a jogkivonat nem a megfelelő szolgáltatáshoz tartozik.

Elemezzük a folyamatot.

  1. Az ügyfél beszélgetést indít az OAuth-forgatókönyvet aktiváló robottal.

  2. A robot egy OAuth-kártyát küld vissza az ügyfélnek.

  3. Az ügyfél elfogja az OAuth kártyát, mielőtt megjelenítené a felhasználónak, és ellenőrzi, hogy tartalmaz-e tulajdonságot TokenExchangeResource .

  4. Ha a tulajdonság létezik, az ügyfél egy üzenetet TokenExchangeInvokeRequest küld a robotnak. Az ügyfélnek egy cserélhető jogkivonattal kell rendelkeznie a felhasználó számára, amelynek Microsoft Entra-azonosító jogkivonatnak kell lennie, és amelynek célközönségének meg kell egyeznie a tulajdonságával TokenExchangeResource.Uri . Az ügyfél egy meghívási tevékenységet küld a robotnak az alábbi törzstel.

    {
        "type": "Invoke",
        "name": "signin/tokenExchange",
        "value": {
            "id": "<any unique ID>",
            "connectionName": "<connection Name on the skill bot (from the OAuth Card)>",
            "token": "<exchangeable token>"
        }
    }
    
  5. A robot feldolgozza és TokenExchangeInvokeRequest visszaküldi az ügyfelet TokenExchangeInvokeResponse . Az ügyfélnek várnia kell, amíg megkapja a TokenExchangeInvokeResponse.

    {
        "status": "<response code>",
        "body": {
            "id":"<unique ID>",
            "connectionName": "<connection Name on the skill bot (from the OAuth Card)>",
            "failureDetail": "<failure reason if status code isn't 200, null otherwise>"
        }
    }
    
  6. Ha az TokenExchangeInvokeResponse egyik, status 200akkor az ügyfél nem jeleníti meg az OAuth-kártyát. Lásd a normál folyamatábra . Ha az ügyfél nem status TokenExchangeInvokeResponse érkezik meg, akkor az ügyfél megjeleníti az OAuth-kártyát a felhasználónak. Tekintse meg a tartalékfolyamat-diagramot . Ez biztosítja, hogy az egyszeri bejelentkezés folyamata visszaessen a normál OAuthCard-folyamatra, ha hibák vagy nem megfelelő függőségek vannak, például felhasználói hozzájárulás.

Következő lépések