Příklady komunikace služby vystavitele

Služba Ověřené ID Microsoft Entra 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ě.

Pokud chcete vystavit ověřitelné přihlašovací údaje, služba Authenticator je instruována stažením smlouvy, aby shromáždila vstup od uživatele a odeslala informace do vydávající služby. Pokud potřebujete použít token ID, musíte nastavit zprostředkovatele identity tak, aby se authenticator mohl přihlásit k uživateli pomocí protokolu OpenID Připojení. 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í openID Připojení toku autorizačního kódu. Váš poskytovatel OpenID musí podporovat následující funkce OpenID Připojení:

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 openID Připojení konfigurační dokument a jwks_uri.
Registrace klienta Musí podporovat registraci veřejného klienta pomocí redirect_uri hodnoty vcclient://openid/.
PKCE Doporučuje se z bezpečnostních důvodů, ale nevyžaduje se.

Příklady požadavků HTTP odeslaných 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 Připojení.

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
URI pro přesměrování vcclient://openid/

Po registraci aplikace u zprostředkovatele identity si poznamenejte jeho ID klienta. Použijete ho v následující části. Musíte také zapsat adresu URL známému koncovému 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 se přihlášení dokončí, a může načíst token ID.

Žá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 Připojení.
nonce Musí se vrátit jako deklarace identity v tokenu ID podle standardu OpenID Připojení.

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 Připojení.

Žádost o token

Požadavek na token odeslaný vašemu zprostředkovateli identity bude mít 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.

Po přijetí žádosti o token by váš zprostředkovatel identity měl odpovědět 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í deklarace identity.

Deklarace identity Hodnota
kid Identifikátor klíče použitého k podepsání tokenu ID odpovídající položce ve zprostředkovateli jwks_uriOpenID .
aud ID klienta získané během procesu registrace aplikace.
iss Musí to být hodnota v konfiguračním issuer dokumentu openID Připojení.
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ší deklarace identity Token ID by měl obsahovat všechny další 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