Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Microsoft Identitásplatform lehetővé teszi az alkalmazás számára, hogy saját hitelesítő adatait használja a hitelesítéshez, bárhol, ahol egy ügyfélkulcs használható, például az OAuth 2.0 ügyfél hitelesítő adatainak átadási folyamatában és az OBO-folyamatban.
Az alkalmazások hitelesítéshez használható hitelesítő adatainak egyik formája egy JSON-webjogkivonat (JWT), amely egy olyan tanúsítvánnyal van aláírva, amelyet az alkalmazás birtokol. Ezt az ügyfél-hitelesítési beállítás OpenID Connect-specifikációjaprivate_key_jwt ismerteti.
Ha egy másik identitásszolgáltató által kiadott JWT-t szeretne használni az alkalmazás hitelesítő adataiként, tekintse meg a számítási feladatok identitás-összevonását az összevonási szabályzatok beállításához.
Helyességi formátum
Az állítás kiszámításához használhatja a számos JWT-kódtár egyikét a választott nyelven – az MSAL ezt támogatja a használatával .WithCertificate(). Az adatokat a jogkivonat a fejlécében, jogcímeiben és aláírásában hordozta.
Fejléc
| Paraméter | Megjegyzés |
|---|---|
alg |
PS256-nak kell lennie |
typ |
JWT-nek kell lennie |
x5t#S256 |
Base64url-kódolású SHA-256 ujjlenyomat az X.509-tanúsítvány DER-kódolásáról. |
Jogcímek (hasznos adatok)
| Jogcím típusa | Érték | Leírás |
|---|---|---|
aud |
https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token |
Az "aud" (célközönség) jogcím azonosítja azokat a címzetteket, akiknek a JWT-t szánják (itt Microsoft Entra-azonosító). Lásd: RFC 7519, 4.1.3. szakasz. Ebben az esetben ez a címzett a bejelentkezési kiszolgáló (login.microsoftonline.com). |
exp |
1601519414 | Az "exp" (lejárati idő) jogcím azonosítja azt a lejárati időt, amelyen a JWT nem fogadható el feldolgozásra. Lásd: RFC 7519, 4.1.4. Ez lehetővé teszi az állítás addigi használatát, ezért legfeljebb 5-10 perccel nbf rövid legyen. A Microsoft Entra ID jelenleg nem korlátozza a exp korlátozásokat. |
iss |
{Ügyfél-azonosító} | Az "iss" (kiállító) jogcím azonosítja a JWT-t kibocsátó tagot, ebben az esetben az ügyfélalkalmazást. Használja a GUID-alkalmazásazonosítót. |
jti |
(egy Guid) | A "jti" (JWT ID) jogcím egyedi azonosítót biztosít a JWT-hez. Az azonosító értékét olyan módon kell hozzárendelni, amely biztosítja, hogy elhanyagolható a valószínűsége annak, hogy ugyanazt az értéket véletlenül egy másik adatobjektumhoz rendelik. Ha az alkalmazás több kiállítót használ, a különböző kiállítók által előállított értékek között is meg kell akadályozni az ütközéseket. A "jti" érték egy kis- és nagybetűkre érzékeny sztring. RFC 7519, 4.1.7. szakasz |
nbf |
1601519114 | Az "nbf" (nem korábbi) jogcím azt az időpontot azonosítja, amely előtt a JWT NEM fogadható el feldolgozásra. RFC 7519, 4.1.5. Az aktuális idő használata megfelelő. |
sub |
{Ügyfél-azonosító} | Az "al" (tárgy) jogcím azonosítja a JWT tárgyát, ebben az esetben az alkalmazást is. Használja ugyanazt az értéket, mint a iss. |
iat |
1601519114 | Az "iat" (at) jogcím azonosítja a JWT kiállításának időpontját. Ez a jogcím a JWT korának meghatározására használható. RFC 7519, 4.1.5. |
Aláírás
Az aláírás kiszámítása a JSON-webjogkivonat RFC7519 specifikációjában leírt tanúsítvány alkalmazásával történik. HASZNÁLJON PSS-kitöltést.
Példa dekódolt JWT-állításra
{
"alg": "PS256",
"typ": "JWT",
"x5t#S256": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u"
}
.
{
"aud": "https: //login.microsoftonline.com/contoso.onmicrosoft.com/oauth2/v2.0/token",
"exp": 1484593341,
"iss": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"jti": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"nbf": 1484592741,
"sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
}
.
"A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u..."
Példa kódolt JWT-állításra
Az alábbi sztring egy példa a kódolt helyességre. Ha gondosan néz ki, három ponttal (ponttal elválasztott) szakaszt. észlel:
- Az első szakasz kódolja a fejlécet
- A második szakasz kódolja a jogcímeket (hasznos adatok)
- Az utolsó szakasz az első két szakasz tartalmából származó tanúsítványokkal kiszámított aláírás
"eyJhbGciOiJQUzI1NiIsIng1dCNTMjU2IjoiZ3g4dEd5c3lqY1JxS2pGUG5kN1JGd3Z3WkkwIn0.eyJhdWQiOiJodHRwczpcL1wvbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbVwvam1wcmlldXJob3RtYWlsLm9ubWljcm9zb2Z0LmNvbVwvb2F1dGgyXC90b2tlbiIsImV4cCI6MTQ4NDU5MzM0MSwiaXNzIjoiOTdlMGE1YjctZDc0NS00MGI2LTk0ZmUtNWY3N2QzNWM2ZTA1IiwianRpIjoiMjJiM2JiMjYtZTA0Ni00MmRmLTljOTYtNjVkYmQ3MmMxYzgxIiwibmJmIjoxNDg0NTkyNzQxLCJzdWIiOiI5N2UwYTViNy1kNzQ1LTQwYjYtOTRmZS01Zjc3ZDM1YzZlMDUifQ.
Gh95kHCOEGq5E_ArMBbDXhwKR577scxYaoJ1P{a lot of characters here}KKJDEg"
Tanúsítvány regisztrálása Microsoft Identitásplatform
A tanúsítvány hitelesítő adatait az Microsoft Identitásplatform ügyfélalkalmazáshoz társíthatja a Microsoft Entra felügyeleti központon keresztül az alábbi módszerek bármelyikével:
A tanúsítványfájl feltöltése
Az ügyfélalkalmazás Alkalmazásregisztrációk lapján:
- Válassza a Tanúsítványok > titkos>tanúsítványok lehetőséget.
- Válassza a Tanúsítvány feltöltése lehetőséget, és válassza ki a feltölteni kívánt tanúsítványfájlt.
- Válassza a Hozzáadás lehetőséget. A tanúsítvány feltöltése után megjelenik az ujjlenyomat, a kezdő dátum és a lejárati érték.
Az alkalmazásjegyzék frissítése
A tanúsítvány beszerzése után számítsa ki az alábbi értékeket:
-
$base64Thumbprint- A tanúsítványkivonat base64 kódolású értéke -
$base64Value- A tanúsítvány nyers adatainak base64-kódolású értéke
Adjon meg egy GUID azonosítót az alkalmazásjegyzék$keyId () kulcsának azonosításához.
Az ügyfélalkalmazás Azure-alkalmazásregisztrációjában:
Az alkalmazásjegyzék megnyitásához válassza a Jegyzék elemet.
Válassza a Microsoft Graph alkalmazásjegyzékét.
Cserélje le a KeyCredentials tulajdonságot az új tanúsítványadatokra az alábbi sémával.
"keyCredentials": [ { "customKeyIdentifier": "$base64Thumbprint", "keyId": "$keyid", "type": "AsymmetricX509Cert", "usage": "Verify", "key": "$base64Value" } ]Mentse a módosításokat az alkalmazásjegyzékbe, majd töltse fel a jegyzékfájlt a Microsoft Identitásplatform.
A
keyCredentialstulajdonság többértékű, így több tanúsítványt is feltölthet a gazdagabb kulcskezeléshez.
Ügyfélmegfelelőség használata
Az ügyfélmegfelelőségeket bárhol használhatja, ahol az ügyfél titkos kulcsait használná. Az engedélyezési kód folyamatában például átadhat egy olyan client_secret kódot, amely igazolja, hogy a kérés az alkalmazásból érkezik. Ezt lecserélheti a paraméterekre és client_assertion a client_assertion_type paraméterekre.
| Paraméter | Érték | Leírás |
|---|---|---|
client_assertion_type |
urn:ietf:params:oauth:client-assertion-type:jwt-bearer |
Ez egy rögzített érték, amely azt jelzi, hogy tanúsítvány-hitelesítő adatot használ. |
client_assertion |
JWT |
Ez a fent létrehozott JWT. |
Következő lépések
A MSAL.NET kódtár egyetlen kódsoron kezeli ezt a forgatókönyvet .
A GitHubon Microsoft Identitásplatform kódmintát használó .NET démonkonzol-alkalmazás bemutatja, hogyan használja az alkalmazás a saját hitelesítő adatait a hitelesítéshez. Azt is bemutatja, hogyan hozhat létre önaláírt tanúsítványt a New-SelfSignedCertificate PowerShell-parancsmaggal. A mintaadattárban található alkalmazás-létrehozási szkriptekkel tanúsítványokat hozhat létre, kiszámíthatja az ujjlenyomatot stb.