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í.
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 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í. |
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_uri OpenID . |
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. |