Nastavení otisku prstu zařízení na webu
Nastavení otisku prstu zařízení se provádí ve dvou fázích.
- Nakonfigurujte certifikát SSL (Domain Name Server) Secure Sockets Layer (Domain Name Server) a nahrajte ho na portál ochrany před podvody.
- Implementace otisku prstu zařízení
Tato část obsahuje podrobné pokyny pro obě tyto fáze. První fáze musí být dokončena pouze jednou. Druhá fáze se ale musí opakovat jednou pro každý web nebo mobilní aplikaci, kde se implementuje otisk prstu zařízení.
Nastavení DNS a vygenerování certifikátu SSL
Pomocí následujících postupů nastavte DNS a vygenerujte certifikát SSL. Nastavení DNS a SSL, i když volitelné, důrazně doporučujeme zajistit optimální pokrytí a výkon otisku prstu. Nastavení DNS a SSL umožňuje, aby se skript otisku prstu považoval za integraci první strany, nikoli soubor cookie třetí strany.
Nastavení DNS
Pokud chcete nastavit DNS, postupujte podle těchto kroků.
- Vyberte subdoménu v kořenové doméně, například
fpt.contoso.com
. Můžete použít libovolnou předponu. - Pro vybranou subdoménu vytvořte kanonický název (CNAME), který odkazuje na
fpt.dfp.microsoft.com
.
Generování a nahrání certifikátu SSL
Pokud chcete vygenerovat a nahrát certifikát SSL, postupujte takto.
- Pro back-endové onboarding vygenerujte certifikát SSL pro vybranou subdoménu. Můžete vytvořit jeden certifikát SSL a přidat všechny subdomény do pole Alternativní název subjektu certifikátu.
- Přejděte na portál ochrany před podvody a v levém navigačním podokně vyberte Integrace.
- Na stránce Integrace vyberte Upravit a potom na další stránce vyberte Další. Otevře se stránka Nahrát certifikát SSL.
- Vyberte Vybrat certifikát a pak nahrajte certifikát SSL, který jste vygenerovali. Pokud má certifikát heslo, zadejte ho do textového pole. Potom vyberte Nahrát.
Ověření certifikátu SSL
Existují dva způsoby, jak ověřit úspěšné nasazení certifikátu SSL.
- Přejděte na https:///health/ping a zkontrolujte platnost certifikátu.
NEBO
- Přejděte na "https://www.sslshopper.com/ssl-checker.html". Zadejte název hostitele serveru, vyberte Zkontrolovat SSL a zkontrolujte informace o certifikátu SSL zobrazené na stránce.
Poznámka:
Podporují se jenom soubory .pfx. Šíření certifikátu na servery otisků prstů zařízení může trvat několik minut.
Implementace otisku prstu zařízení
Váš web nebo aplikace musí inicializovat žádosti o otisk prstu zařízení několik sekund před odesláním transakce do ochrany před podvody za účelem vyhodnocení rizika (například transakce pro přidání platebního nástroje, přihlášení nebo pokladny). Tento požadavek zajišťuje, že ochrana před podvody obdrží všechna data, která vyžaduje k přesnému posouzení. Tato část obsahuje podrobné pokyny k implementaci otisků prstů zařízení na webech a mobilních aplikacích.
Pokud chcete implementovat otisk prstu zařízení, postupujte podle těchto kroků.
Upravte následující kód skriptu JavaScriptu a vložte ho na webovou stránku nebo do aplikace, do které chcete shromažďovat informace o otisku prstů zařízení.
<script src="https://<Your_Sub_Domain>/mdt.js?session_id=<session_id>&instanceId=<instance_id>" type="text/javascript"></script>
- Your_Sub_Domain – subdoména v kořenové doméně.
- session_id – jedinečný identifikátor relace zařízení, které vytvořil klient. Může mít délku až 128 znaků a může obsahovat pouze následující znaky: velká a malá písmena, číslice, podtržítka a pomlčky (a–z, A–Z, 0–9, _, -). ID relace by mělo obsahovat alespoň 16 bajtů náhodně generovaných dat. Při použití šestnáctkového kódování se to přeloží na 32 šestnáctkových znaků. I když Microsoft doporučuje pro ID relace použít globálně jedinečný identifikátor (GUID), není to nutné.
- instance_id – požadovaná hodnota pro integraci webu s otiskem prstu zařízení. Použijte hodnotu ID otisku prstu zařízení, která je uvedená na dlaždici Aktuální prostředí na stránce Integrace odpovídajícího prostředí na portálu Ochrany před podvody.
Příklad
<script src="https://fpt.contoso.com/mdt.js?session_id=211d403b-2e65-480c-a231-fd1626c2560e&instanceId=b472dbc3-0928-4577-a589-b80090117691" type="text/javascript"></script>
Tady je příklad odpovědi pro mdt.js.
window.dfp={url:"https://fpt.contoso.com/?session_id=211d403b-2e65-480c-a231-fd1626c2560e&CustomerId=b472dbc3-0928-4577-a589-b80090117691",sessionId:"211d403b-2e65-480c-a231-fd1626c2560e",customerId:"b472dbc3-0928-4577-a589-b80090117691",dc:"uswest"};window.dfp.doFpt=function(doc){var frm,src;true&&(frm=doc.createElement("IFRAME"),frm.id="fpt_frame",frm.style.width="1px",frm.style.height="1px",frm.style.position="absolute",frm.style.visibility="hidden",frm.style.left="10px",frm.style.bottom="0px",frm.setAttribute("style","color:#000000;float:left;visibility:hidden;position:absolute;top:-100;left:-200;border:0px"),src="https://Your_Sub_Domain/?session_id=211d403b-2e65-480c-a231-fd1626c2560e&CustomerId=b472dbc3-0928-4577-a589-b80090117691",frm.setAttribute("src",src),doc.body.appendChild(frm))};
Po načtení prvků stránky načtěte otisk prstu zařízení.
window.dfp.doFpt(this.document);
Při odesílání transakcí v rozhraní API pro ochranu před podvody nastavte ID relace v poli deviceContextId . Pro posouzení nastavte ID relace v poli deviceFingerprinting.id .
Nastavte pole device.ipAddress na IP adresu zákazníka, kterou váš web obdrží, když zákazník používá váš web. V případě posouzení nastavte IP adresu zákazníka v poli deviceFingerprinting.ipAddress . Toto pole je volitelné a není nutné ho nastavit, pokud ho nemáte.
Povolení integrace na straně klienta pro otisk prstu zařízení
Pro určité scénáře otisku prstu na webu podporuje ochrana před podvody specializovanou třídu integrace označovanou jako integrace na straně klienta. Integrace na straně klienta se liší od standardních postupů integrace, protože odpověď otisku prstu se vrací přímo klientovi jako šifrovaná datová část a přeskočí volání hodnocení mezi servery.
Integrace na straně klienta je užitečná ve scénářích s nízkou latencí, kdy je výhodné přeskočit volání mezi servery. Pokud chcete zjistit, jestli je integrace na straně klienta pro váš scénář nejvhodnější, projděte si následující příručku pro otázky.
Je můj scénář jenom otisk prstu na zařízení?
Pokud váš scénář není jenom otiskem prstu zařízení, integrace na straně klienta není vhodná pro váš scénář.
Chci, aby data otisku prstu byla v prohlížeči, a ne načítá se serverem?
V tradiční integraci mezi servery po dokončení shromažďování atributů na webu se data odsílají na servery ochrany před podvody, kde můžete na serveru získat odpověď na posouzení tím, že provedete standardní volání rozhraní API pro posouzení. V integraci na straně klienta se ale při vložení dat shromažďování atributů na servery ochrany před podvody vrátí odpověď na posouzení a vrátí se přímo v prohlížeči. Server tak může extrahovat odpověď posouzení ze samotného prohlížeče místo toho, aby volání mezi servery šetřilo nějakou dobu. Mějte na paměti, že samotný otisk prstu trvá několik sekund, takže odpověď na posouzení se nachází pouze v prohlížeči, pokud je uživatel na stránce několik sekund. Pokud váš scénář přináší výhody dat, která už existují v prohlížeči, může být integrace na straně klienta pro vás správná.
Obecně platí, že většinu scénářů otisku prstu řeší standardní integrace mezi servery a integrace na straně klienta je výhodná pro několik konkrétních scénářů, kdy je snížení latence kritické. Vzhledem k tomu, že integrace na straně klienta je specializovaná třída integrace, která je zjednodušená a zabezpečená, musí být splněny následující požadavky, aby bylo možné integraci povolit.
- Musíte být v kořenovém prostředí tenanta ochrany před podvody.
- Musíte nastavit externí volání, které vrátí odpověď šifrovacího klíče ve formátu JSON Web Key Sets (JWKS). Toto externí volání vrátí klíč, který ochrana před podvody používá k šifrování datové části. Tento klíč pak můžete použít k dešifrování serveru odpovědi na podvody, který jste původně obdrželi na straně klienta. Zodpovídáte za poskytnutí klíče pro šifrování a dešifrování. Informace o nastavení externích volání najdete v tématu Externí volání.
Následující kód ukazuje příklad formátu JWKS.
{
"keys":
[
{
"kty":null,
"use":null,
"kid":null,
"k":null
}
]
}
- Musíte použít jenom metadata a oddíly otisku prstu v šabloně pro hodnocení otisků prstů zařízení. Pokud existují další části schématu nebo pokud nepoužíváte šablonu hodnocení otisků prstů zařízení, není pro vás dostupná možnost integrace na straně klienta.
Když se dostanete na stránku Nastavení v průvodci posouzením šablony otisků prstů zařízení, je pro vás k dispozici možnost integrace na straně klienta. Po zvolení povolení integrace na straně klienta vyberete externí volání s formátem odpovědi JWKS, který jste nastavili.
Chcete-li dokončit instalaci integrace na straně klienta, chcete-li vrátit šifrovanou odpověď v prohlížeči, musíte použít upravenou verzi následujícího příkladu JavaScriptu.
<script src="https://<Your_Sub_Domain>/mdt.js?session_id=<session_id>&customerId=<customer_id>&assessment=<assessment>&requestId=<request_id>" type="text/javascript"></script>
- Your_Sub_Domain – subdoména v kořenové doméně.
- session_id – jedinečný identifikátor relace zařízení, které vytvořil klient. Může mít délku až 128 znaků a může obsahovat pouze následující znaky: velká a malá písmena, číslice, podtržítka a pomlčky (a–z, A–Z, 0–9, _, -). ID relace musí obsahovat alespoň 16 bajtů náhodně generovaných dat. Při použití šestnáctkového kódování se to přeloží na 32 šestnáctkových znaků. I když Microsoft doporučuje pro ID relace použít globálně jedinečný identifikátor (GUID), není to nutné.
- customer_id – požadovaná hodnota pro integraci webu s otiskem prstu zařízení. Použijte hodnotu ID prostředí uvedenou na dlaždici Aktuální prostředí na stránce Integrace odpovídajícího prostředí na portálu Ochrany před podvody. Aby integrace na straně klienta fungovala, musíte být v kořenovém prostředí.
- assessment – Název rozhraní API pro posouzení otisků prstů zařízení nastavený s povolenou integrací na straně klienta. V názvu rozhraní API se rozlišují malá a velká písmena a načíst ho ze stránky konfigurace posouzení.
- request_id – jedinečný identifikátor samotného požadavku, oddělený od ID relace. Tento identifikátor by měl být identifikátor GUID s délkou nejméně 32 znaků.
Následující ukázka ukazuje kód JavaScriptu s ukázkovými hodnotami.
<script src="https://fpt.contoso.com/mdt.js?session_id=2b2a1f5e-afa7-4c6d-a905-ebf66eaedc83&customerId=b3f6d54b-961c-4193-95ee-b6b204c7fd23&assessment=CSI&requestId=b12e86a0-37b1-43a2-958b-3f04fe7cef6c" type="text/javascript"></script>
Po nastavení tohoto skriptu a povolení integrace na straně klienta se odpověď otisku prstu vrátí jako zašifrovaná datová část v prohlížeči klienta. K získání datové části šifrované odpovědi můžete použít funkci zpětného volání. Následující příklad ukazuje funkci zpětného volání, která se používá:
window.dfp.doFpt(document, function (response) {
if(response == null || response.startsWith('ServerError'))
console.log("Error Scenario");
else
console.log("Success Scenario"); // pass to server so it can decrypt and use response
});
Stále musíte datovou část předat serveru, abyste ji dešifrovali a použili odpověď. Neočekáváme, že zavoláte externí volání, abyste získali šifrovací klíč, který hostujete pro dešifrování datové části. Klíč byste měli ukládat a přistupovat ke klíči stejným bezpečným způsobem, jakým získáte a spravujete další tajné kódy používané na vašem serveru.
Další materiály
- Přehled otisku prstu zařízení
- Atributy v otisku prstu zařízení
- Nastavení a implementace otisku prstu zařízení
- Školení: Implementace otisku prstu zařízení v Dynamics 365 Ochrana před podvody