Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Jako rozšíření Access Token Proof-of-Possession poskytuje MSAL Browser možnost vložit vlastní deklarace klienta do Signed HTTP Request, označovaného také jako PoP Token. Tyto vlastní deklarace SHR lze přidat do libovolné žádosti o token, která používá schéma autentizace POP.
Vzhledem k tomu, že datová část Signed HTTP Request má specifický formát, MSAL Browser místo umožnění vlastních názvů claimů, které by mohly kolidovat s primárními claimy SHR, umožňuje předávat vlastní klientské claimy jako řetězec, který bude přidán do Signed HTTP Request JWT jako hodnota claimu s názvem client_claims. Tento řetězec obvykle bude serializovaný objekt obsahující vlastní deklarace identity, ale MSAL nebude analyzovat ani ověřovat řetězec žádným způsobem.
Vzhledem k tomu, že MSAL neukládá do mezipaměti Signed HTTP Requests (tajná hodnota přístupového tokenu se ukládá do mezipaměti a datová část SHR se vytvoří a podepíše právě v okamžiku volání acquireTokenSilent), vlastní deklarace klienta se také nebudou ukládat do mezipaměti. To znamená, že claimy musí být také předávány při každém volání acquireTokenSilent, aby byly přidány do výsledného objektu SignedHTTPRequest.
Jakmile je Signed HTTP Request odeslán na server zdrojů jako PoP Token, je server zdrojů zodpovědný za ověření podepsaného datového obsahu a za extrakci a parsování client_claims.
Využití
Vlastní claimy klienta pro SHR lze předat do libovolného objektu žádosti o token jako shrClaims. Je důležité si uvědomit, že vlastní deklarace identity SHR představují rozšíření schématu důkazu o vlastnictví přístupového tokenu, takže se použijí pouze v případě, že je žádost o authenticationScheme token nastavena na POP.
Příklad žádosti o přesměrování pro získání tokenu
const popTokenRequest = {
scopes: ["User.Read"],
authenticationScheme: msal.AuthenticationScheme.POP,
resourceRequestMethod: "POST",
resourceRequestUri: "YOUR_RESOURCE_ENDPOINT",
shrClaims: "{\"nonce\": \"AQAA123456\",\"local_nonce\": \"AQAA7890\"}"
}
Jakmile je požadavek nakonfigurován a POP je nastaveno jako authenticationScheme, lze jej odeslat do rozhraní API acquireTokenRedirect MSAL Browser.
const response = await myMSALObj.acquireTokenRedirect(popTokenRequest);
Odpověď bude obsahovat vlastnost s názvem accessToken, která bude obsahovat Signed HTTP Request. Při ověření pomocí veřejného klíče bude datová část JWT SHR vypadat přibližně takto:
{
at: ...,
ts: ...,
m: "POST",
u: "YOUR_RESOURCE_ENDPOINT",
nonce: ...,
p: ...,
q: ...,
client_claims: "{\"nonce\": \"AQAA123456\",\"local_nonce\": \"AQAA7890\"}"
}