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