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.
Az alábbi ábra egy webchat vezérlőelem folyamatát és tartalék folyamatát szemlélteti.
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.
Az ügyfél beszélgetést indít az OAuth-forgatókönyvet aktiváló robottal.
A robot egy OAuth-kártyát küld vissza az ügyfélnek.
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
.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ávalTokenExchangeResource.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>" } }
A robot feldolgozza és
TokenExchangeInvokeRequest
visszaküldi az ügyfeletTokenExchangeInvokeResponse
. Az ügyfélnek várnia kell, amíg megkapja aTokenExchangeInvokeResponse
.{ "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>" } }
Ha az
TokenExchangeInvokeResponse
egyik,status
200
akkor az ügyfél nem jeleníti meg az OAuth-kártyát. Lásd a normál folyamatábra . Ha az ügyfél nemstatus
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.