Sdílet prostřednictvím


Příklady komunikace služeb vystavitele

Služba Microsoft Entra Verified ID může vydávat ověřitelné přihlašovací údaje načtením deklarací identity z tokenu ID vygenerovaného zprostředkovatelem identity kompatibilním s OpenID vaší organizace. V tomto článku se dozvíte, jak nastavit zprostředkovatele identity, aby s ním mohl Authenticator komunikovat a načíst správný token ID, který se má předat vydávající službě.

K vystavení ověřitelných pověření je Authenticator instruován stažením smlouvy ke shromáždění vstupních dat od uživatele a k odeslání těchto informací do vydávající služby. Pokud potřebujete použít token ID, musíte nastavit zprostředkovatele identity, aby se authenticator mohl přihlásit k uživateli pomocí protokolu OpenID Connect. Deklarace identity ve výsledném tokenu ID slouží k naplnění obsahu ověřitelných přihlašovacích údajů. Authenticator ověří uživatele pomocí toku autorizačního kódu OpenID Connect. Váš poskytovatel OpenID musí podporovat následující funkce OpenID Connect:

Funkce Popis
Typ udělení Musí podporovat typ udělení autorizačního kódu.
Formát tokenu Musí vytvářet nešifrované kompaktní JWT.
Algoritmus podpisu Musí vytvořit podepsané JWT pomocí RS 256.
Konfigurační dokument Musí podporovat konfigurační dokument OpenID Connect a jwks_uri.
Registrace klienta Musí podporovat registraci veřejného klienta pomocí hodnoty redirect_uri pro vcclient://openid/.
PKCE Doporučuje se z bezpečnostních důvodů, ale nevyžaduje se.

Příklady požadavku HTTP odeslaného vašemu zprostředkovateli identity najdete níže. Váš zprostředkovatel identity musí přijímat a odpovídat na tyto požadavky v souladu se standardem ověřování OpenID Connect.

Registrace klienta

Pokud chcete získat ověřitelné přihlašovací údaje, musí se vaši uživatelé přihlásit k vašemu ZDP z aplikace Microsoft Authenticator.

Pokud chcete tuto výměnu povolit, zaregistrujte aplikaci u svého zprostředkovatele identity. Pokud používáte Microsoft Entra ID, najdete pokyny zde. Při registraci použijte následující hodnoty.

Nastavení Hodnota
Název aplikace <Issuer Name> Verifiable Credential Service
Přesměrování URI vcclient://openid/

Po registraci aplikace u zprostředkovatele identity si poznamenejte jeho ID klienta. Použijete ho v následující části. Je také třeba zapsat adresu URL známého koncového bodu pro zprostředkovatele identity kompatibilního s OIDC. Služba vydávající služby používá tento koncový bod ke stažení veřejných klíčů potřebných k ověření tokenu ID po odeslání službou Authenticator.

Nakonfigurovaný identifikátor URI přesměrování používá Authenticator, aby věděl, kdy je přihlášení dokončeno, a může načíst ID token.

Žádost o autorizaci

Žádost o autorizaci odeslaná vašemu zprostředkovateli identity používá následující formát.

GET /authorize?client_id=<client-id>&redirect_uri=vcclient%3A%2F%2Fopenid%2F&response_mode=query&response_type=code&scope=openid&state=12345&nonce=12345 HTTP/1.1
Host: www.contoso.com
Connection: Keep-Alive
Parametr Hodnota
client_id ID klienta získané během procesu registrace aplikace.
redirect_uri Musí používat vcclient://openid/.
response_mode Musí podporovat query.
response_type Musí podporovat code.
scope Musí podporovat openid.
state Musí se vrátit klientovi podle standardu OpenID Connect.
nonce Musí být vrácena jako deklarace identity v tokenu ID podle standardu OpenID Connect.

Když obdrží žádost o autorizaci, měl by váš zprostředkovatel identity ověřit uživatele a provést všechny kroky potřebné k dokončení přihlášení, jako je vícefaktorové ověřování.

Proces přihlašování můžete přizpůsobit tak, aby vyhovoval vašim potřebám. Můžete požádat uživatele, aby zadali další informace, přijali podmínky služby, zaplatili za své přihlašovací údaje a další. Po dokončení všech kroků odpovíte na žádost o autorizaci přesměrováním na identifikátor URI přesměrování, jak je znázorněno níže.

vcclient://openid/?code=nbafhjbh1ub1yhbj1h4jr1&state=12345
Parametr Hodnota
code Autorizační kód vrácený vaším zprostředkovatelem identity.
state Musí se vrátit klientovi podle standardu OpenID Connect.

Žádost o token

Požadavek na token odeslaný vašemu zprostředkovateli identity má následující formulář.

POST /token HTTP/1.1
Host: www.contoso.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 291

client_id=<client-id>&redirect_uri=vcclient%3A%2F%2Fopenid%2F&grant_type=authorization_code&code=nbafhjbh1ub1yhbj1h4jr1&scope=openid
Parametr Hodnota
client_id ID klienta získané během procesu registrace aplikace.
redirect_uri Musí používat vcclient://openid/.
scope Musí podporovat openid.
grant_type Musí podporovat authorization_code.
code Autorizační kód vrácený vaším zprostředkovatelem identity.

Když váš zprostředkovatel identity obdrží požadavek na token, odpoví tokenem ID.

HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache

{
"id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjFlOWdkazcifQ.ewogImlzc
    yI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5
    NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZ
    fV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5Nz
    AKfQ.ggW8hZ1EuVLuxNuuIJKX_V8a_OMXzR0EHR9R6jgdqrOOF4daGU96Sr_P6q
    Jp6IcmD3HP99Obi1PRs-cwh3LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ
    NqeGpe-gccMg4vfKjkM8FcGvnzZUN4_KSP0aAp1tOJ1zZwgjxqGByKHiOtX7Tpd
    QyHE5lcMiKPXfEIQILVq0pc_E2DzL7emopWoaoZTF_m0_N0YzFC6g6EJbOEoRoS
    K5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4
    XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg"
}

Token ID musí používat formát komprimované serializace JWT a nesmí být šifrovaný. Token ID by měl obsahovat následující nároky.

Tvrzení Hodnota
kid Identifikátor klíče, který je použit pro podepsání ID tokenu a odpovídá položce v databázi poskytovatele OpenID s názvem jwks_uri.
aud ID klienta získané během procesu registrace aplikace.
iss Musí to být hodnota issuer v konfiguračním dokumentu OpenID Connect.
exp Musí obsahovat čas vypršení platnosti tokenu ID.
iat Musí obsahovat čas vydání tokenu ID.
nonce Hodnota zahrnutá v žádosti o autorizaci.
Další nároky Token ID by měl obsahovat všechny ostatní deklarace identity, jejichž hodnoty budou zahrnuty do ověřitelných přihlašovacích údajů, které budou vydány. V této části byste měli zahrnout všechny atributy týkající se uživatele, například jeho jméno.

Další kroky