Udostępnij za pośrednictwem


Przykłady komunikacji usług wystawcy

Usługa Microsoft Entra Verified ID może wystawiać weryfikowalne poświadczenia, pobierając roszczenia z tokenu identyfikacyjnego wygenerowanego przez dostawcę tożsamości zgodnego z OpenID. W tym artykule opisano sposób konfigurowania dostawcy tożsamości, aby aplikacja Authenticator mogła się z nim komunikować i pobierać prawidłowy token identyfikatora, aby przekazać go do usługi wystawiającej certyfikaty.

Aby wydać weryfikowalne poświadczenie, aplikacji Authenticator zleca się pobranie kontraktu, aby zebrać dane wejściowe od użytkownika i wysłać te informacje do usługi wystawiającej poświadczenia. Jeśli musisz użyć tokenu identyfikatora, musisz skonfigurować dostawcę tożsamości, aby zezwolić aplikacji Authenticator na logowanie użytkownika przy użyciu protokołu OpenID Connect. Twierdzenia w otrzymanym tokenie ID są używane do wypełniania treści twojego poświadczenia weryfikowalnego. Aplikacja Authenticator uwierzytelnia użytkownika przy użyciu przepływu kodu autoryzacji OpenID Connect. Dostawca OpenID musi obsługiwać następujące funkcje openID Connect:

Cecha Opis
Typ udzielenia Musi obsługiwać typ udzielania kodu autoryzacji.
Format tokenu Musi tworzyć niezaszyfrowane kompaktowe zestawy JWTs.
Algorytm podpisu Należy utworzyć tokeny JWT podpisane z użyciem RS 256.
Dokument konfiguracji Musi obsługiwać dokument konfiguracyjny OpenID Connect i jwks_uri.
Rejestracja klienta Musi obsługiwać rejestrację klienta publicznego przy użyciu wartości redirect_urivcclient://openid/.
PKCE Zalecane ze względów bezpieczeństwa, ale nie są wymagane.

Poniżej przedstawiono przykłady żądania HTTP wysłanego do dostawcy tożsamości. Dostawca tożsamości musi zaakceptować te żądania i odpowiadać na nie zgodnie ze standardem uwierzytelniania OpenID Connect.

Rejestracja klienta

Aby uzyskać poświadczenia weryfikowalne, użytkownicy muszą zalogować się do swojego dostawcy tożsamości z aplikacji Microsoft Authenticator.

Aby włączyć tę wymianę, zarejestruj aplikację u dostawcy tożsamości. Jeśli używasz identyfikatora Entra firmy Microsoft, możesz znaleźć instrukcje tutaj. Podczas rejestrowania użyj następujących wartości.

Ustawienie Wartość
Nazwa aplikacji <Issuer Name> Verifiable Credential Service
Adres URI przekierowania vcclient://openid/

Po zarejestrowaniu aplikacji u dostawcy tożsamości zapisz jego identyfikator klienta. Użyjesz go w poniższej sekcji. Należy również zapisać adres URL dobrze znanego punktu końcowego dla dostawcy tożsamości zgodnego z OIDC. Usługa wystawiania używa tego punktu końcowego do pobrania kluczy publicznych potrzebnych do zweryfikowania tokenu ID po jego wysłaniu przez Authenticator.

Skonfigurowany identyfikator URI przekierowania jest używany przez Authenticator, aby wiedzieć, kiedy logowanie zostało ukończone i móc pobrać token identyfikacyjny.

Żądanie autoryzacji

Żądanie autoryzacji wysłane do dostawcy tożsamości używa następującego formatu.

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 Wartość
client_id Identyfikator klienta uzyskany podczas procesu rejestracji aplikacji.
redirect_uri Należy użyć vcclient://openid/.
response_mode Musi obsługiwać query.
response_type Musi obsługiwać code.
scope Musi obsługiwać openid.
state Musi zostać zwrócony klientowi zgodnie ze standardem OpenID Connect.
nonce Należy zwrócić jako roszczenie w tokenie ID zgodnie ze standardem OpenID Connect.

Po otrzymaniu żądania autoryzacji dostawca tożsamości powinien uwierzytelnić użytkownika i wykonać wszelkie kroki niezbędne do ukończenia logowania, takiego jak uwierzytelnianie wieloskładnikowe.

Możesz dostosować proces logowania w celu spełnienia Twoich potrzeb. Możesz poprosić użytkowników o podanie dodatkowych informacji, zaakceptowanie warunków świadczenia usługi, zapłacenie za ich poświadczenia i nie tylko. Po wykonaniu wszystkich kroków odpowiedz na żądanie autoryzacji, przekierowując do URI przekierowania, jak to pokazano poniżej.

vcclient://openid/?code=nbafhjbh1ub1yhbj1h4jr1&state=12345
Parametr Wartość
code Kod autoryzacji zwrócony przez dostawcę tożsamości.
state Musi zostać zwrócony klientowi zgodnie ze standardem OpenID Connect.

Żądanie tokenu

Żądanie tokenu wysłane do dostawcy tożsamości ma następującą postać.

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 Wartość
client_id Identyfikator klienta uzyskany podczas procesu rejestracji aplikacji.
redirect_uri Należy użyć vcclient://openid/.
scope Musi obsługiwać openid.
grant_type Musi obsługiwać authorization_code.
code Kod autoryzacji zwrócony przez dostawcę tożsamości.

Kiedy dostawca tożsamości otrzymuje żądanie tokenu, odpowiada 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 identyfikatora musi używać formatu serializacji kompaktowej JWT i nie może być szyfrowany. Token identyfikatora powinien zawierać następujące oświadczenia.

Roszczenie Wartość
kid Identyfikator klucza używany do podpisywania tokenu identyfikatora odpowiadający wpisowi w jwks_uridostawcy OpenID.
aud Identyfikator klienta uzyskany podczas procesu rejestracji aplikacji.
iss Musi być wartością issuer w dokumencie konfiguracji OpenID Connect.
exp Musi zawierać czas wygaśnięcia tokenu identyfikatora.
iat Musi zawierać czas wystawienia tokenu identyfikatora.
nonce Wartość uwzględniona w żądaniu autoryzacji.
Dodatkowe oświadczenia Token identyfikatora powinien zawierać wszelkie inne oświadczenia, których wartości zostaną uwzględnione w poświadczeniach weryfikowalnych, które zostaną wystawione. W tej sekcji należy uwzględnić wszelkie atrybuty użytkownika, takie jak ich nazwa.

Następne kroki