Nastavení ochrany zákaznických účtů
Microsoft Dynamics 365 Fraud Protection zahrnuje možnosti ochrany účtů, které vám pomůžou vyhodnotit, jestli se ve vašem obchodním ekosystému vyskytuje nějaká podezřelá aktivita. Mezi tyto možnosti patří možnosti posouzení rizik, které můžete použít k blokování nebo napadení podvodných pokusů o vytvoření účtů nebo ohrožení stávajících účtů. Několik příkladů:
- Rozhraní API pro posouzení rizik v reálném čase
- Prostředí pravidel a seznamů, které můžete použít k optimalizaci strategie rizika podle potřeb vaší firmy
- Monitorovánířídicích
Ochrana účtů zahrnuje tři typy událostí životního cyklu účtu: vytvoření účtu, přihlášení k účtu a vlastní posouzení. Pro každý typ události existuje několik řádků obrany:
- Efektivní detekce robota: Když ochrana před podvody detekuje automatizovaný pokus o použití seznamu ohrožených přihlašovacích údajů nebo hrubou silou k vytvoření nebo úpravě účtů, je její první linie ochrany dynamická a robustní detekce robotů. Tato pokročilá adaptivní umělá inteligence (AI) rychle vygeneruje skóre mapované na pravděpodobnost, že robot událost iniciuje.
- Posílené hodnocení v reálném čase: Jako další linie obrany používá ochrana před podvody modely AI k vygenerování skóre hodnocení rizik. Toto skóre můžete použít s pravidly ke schválení, výzvě, odmítnutí nebo kontrole pokusů o přihlášení a registraci na základě obchodních potřeb.
Cíle pro tento dokument
Tento dokument vás provede následujícími aktivitami:
Krok 3: Vysvětlení událostí ochrany účtu
Po dokončenítěchtoch služeb budete moct pomocí ochrany účtu blokovat podezřelé pokusy o ohrožení stávajících účtů nebo jejich napadení.
Požadavky
Než začnete s aktivitami v tomto dokumentu, musíte provést následující úkoly:
- Nastavte ochranu před podvody v tenantovi Microsoft Entra, jak je popsáno v části Nastavení zkušební verze Ochrany před podvody.
- Nastavení otisku prstu zařízení
Krok 1: Implementace rozhraní API ochrany účtů
Pokud chcete využít celou sadu funkcí ochrany před podvody, odešlete data transakcí do rozhraní API v reálném čase.
- V prostředí pro vyhodnocení můžete analyzovat výsledky použití ochrany před podvody.
- V prostředí ochrany můžete respektovat rozhodnutí na základě nakonfigurovaných pravidel.
V závislosti na tom, jak chcete použít ochranu před podvody, můžete použít různá rozhraní API ochrany účtů. Mezi příklady těchto rozhraní API patří: AccountCreation, AccountLogin, AccountCreationStatus, AccountLoginStatus, AccountUpdate, Label a vlastní události.
Další informace o podporovaných událostech najdete v tématu Dynamics 365 rozhraní API pro ochranu před podvody.
Krok 2: Vytvoření aplikací Microsoft Entra
Důležité
Abyste mohli tento krok dokončit, musíte být správcem aplikace, správcem cloudové aplikace nebo globálním správcem ve vašem tenantovi Microsoft Entra.
K získání tokenů potřebných k volání rozhraní API použijte ochranu před podvody ke konfiguraci aplikací Microsoft Entra.
Konfigurace aplikace Microsoft Entra
Na portálu Pro ochranu před podvody v levém navigačním panelu vyberte Nastavení a pak vyberte Řízení přístupu.
Vyberte Přístup k aplikaci. V rozevíracím seznamu + Přiřadit role aplikací vyberte Vytvořit novou aplikaci a potom vyplňte pole pro vytvoření aplikace. Jsou vyžadována následující pole:
Zobrazovaný název aplikace – Zadejte popisný název aplikace. Maximální délka je 93 znaků.
Metoda ověřování – Vyberte, jestli se k ověřování používá certifikát nebo tajný klíč (chráněný heslem).
- Vyberte Certifikát a pak vyberte Zvolit soubor pro nahrání veřejného klíče. Při získávání tokenů potřebujete odpovídající privátní klíč.
- Po vytvoření aplikace vyberte Tajný kód , aby se automaticky vygenerovalo heslo. Tajné kódy nejsou tak zabezpečené jako certifikáty.
V rozevíracím seznamu Role vyberte role rozhraní API, které chcete přiřadit k této aplikaci. Ve výchozím nastavení je vybraná role Risk_API. Role rozhraní API můžete kdykoli upravit.
- Risk_API – aplikace Entra přiřazené Risk_API role můžou volat koncové body rozhraní API pro posouzení podvodů a pozorování událostí.
- Provisioning_API – aplikace Entra přiřazené Provisioning_API role můžou volat koncový bod rozhraní API pro zřizování ochrany před podvody, který umožňuje vytváření, aktualizaci a odstraňování ne rootových prostředí.
Důležité
Role rozhraní API pro existující aplikaci Entra můžete kdykoli upravit. Další informace najdete v článku o konfiguraci aplikace Microsoft Entra.
- Po vyplnění polí vyberte Vytvořit aplikaci.
Stránka Potvrzení shrnuje název a ID aplikace a buď kryptografický otisk certifikátu, nebo tajný klíč v závislosti na vybrané metodě ověřování.
Důležité
Uložte informace o kryptografickém otisku certifikátu nebo tajném kódu pro budoucí referenci. Tyto informace se zobrazují jenom jednou.
Vytvoření doplňkových aplikací
Můžete vytvořit tolik aplikací, kolik potřebujete ke spouštění volání rozhraní API v produkčních prostředích.
- Na kartě Přístup k aplikaci vyberte v rozevíracím seznamu Přiřadit role aplikace v horním navigačním panelu možnost Vytvořit novou aplikaci.
- Vyplňte pole pro vytvoření aplikace a pak vyberte Vytvořit aplikaci.
Volání rozhraní API ochrany před podvody v reálném čase
Informace v této části slouží k integraci systémů s ochranou před podvody.
Požadovaná ID a informace
- Koncový bod rozhraní API – identifikátor URI pro vaše prostředí se zobrazí na dlaždici Informace o účtu na řídicím panelu Ochrana před podvody.
- ID adresáře (tenanta) – ID adresáře je globálně jedinečný identifikátor (GUID) domény tenanta v Azure. Zobrazí se na webu Azure Portal a na dlaždici Informace o účtu na řídicím panelu Ochrana před podvody.
- ID aplikace (klienta) – ID aplikace identifikuje aplikaci Microsoft Entra, kterou jste vytvořili pro volání rozhraní API. Toto ID najdete na potvrzovací stránce, která se zobrazí po výběru možnosti Vytvořit aplikaci na stránce API Management . Najdete ho také později v části Registrace aplikací na webu Azure Portal. Pro každou aplikaci, kterou vytvoříte, bude existovat jedno ID.
- Kryptografický otisk nebo tajný klíč certifikátu – kryptografický otisk certifikátu nebo tajný klíč najdete na stránce potvrzení, která se zobrazí po výběru možnosti Vytvořit aplikaci na stránce API Management .
- ID instance – ID instance je globálně jedinečný identifikátor (GUID) pro vaše prostředí v ochraně před podvody. Zobrazí se na dlaždici Integrace na řídicím panelu Ochrana před podvody.
Vygenerování přístupového tokenu
Tento token musíte vygenerovat a poskytnout ho každému volání rozhraní API. Upozorňujeme, že přístupové tokeny mají omezenou životnost. Doporučujeme ukládat do mezipaměti a opakovaně používat každý přístupový token, dokud nebude čas získat nový token. Následující ukázky kódu jazyka C# ukazují, jak můžete token získat pomocí certifikátu nebo tajného kódu. Zástupné symboly nahraďte vlastními informacemi.
Kryptografický otisk CERTIFIKÁTU
public async Task<string> AcquireTokenWithCertificateAsync()
{
var x509Cert = CertificateUtility.GetByThumbprint("<Certificate thumbprint>");
var clientAssertion = new ClientAssertionCertificate("<Client ID>", x509Cert);
var context = new AuthenticationContext("<Authority URL. Typically https://login.microsoftonline.com/[Directory_ID]>");
var authenticationResult = await context.AcquireTokenAsync("<API endpoint>", clientAssertion);
return authenticationResult.AccessToken;
}
Tajný kód
public async Task<string> AcquireTokenWithSecretAsync()
{
var clientAssertion = new ClientCredential("<Client ID>", "<Client secret>");
var context = new AuthenticationContext("<Authority URL. Typically https://login.microsoftonline.com/[Directory_ID]>");
var authenticationResult = await context.AcquireTokenAsync("<API endpoint>", clientAssertion);
return authenticationResult.AccessToken;
}
Response
Předchozí kód na pozadí vygeneruje požadavek HTTP a obdrží odpověď, která se podobá následujícímu příkladu.
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Date: <date>
Content-Length: <content length>
{
"token_type":"Bearer",
"expires_in":"3599",
"ext_expires_in":"3599",
"expires_on":"<date timestamp>",
"not_before":"<date timestamp>",
"resource":"https://api.dfp.dynamics.com",
"access_token":"<your access token; e.g.: eyJ0eXA...NFLCQ>"
}
Další informace o přístupových tokenech najdete v následující dokumentaci k Azure:
- Získání přístupových tokenů z ID Microsoft Entra pomocí klientského kontrolního výrazu
- Tokeny pro přístup k mezipaměti
Volání rozhraní API
- Pro každý požadavek předejte následující povinná hlavička HTTP.
Název hlavičky | Hodnota hlavičky |
---|---|
Autorizace | Pro tuto hlavičku použijte následující formát: Bearer accesstoken V tomto formátu je přístupovým tokenem vrácený ID Microsoft Entra. |
x-ms-correlation-id | Odešle novou hodnotu GUID pro každou sadu volání rozhraní API, která jsou vytvořená společně. |
Content-Type | application/json |
x-ms-dfpenvid | Odešle hodnotu GUID ID instance. |
Vygenerujte datovou část založenou na událostech. Vyplňte data události relevantními informacemi z vašeho systému.
Další informace o podporovaných událostech najdete v tématu Dynamics 365 rozhraní API pro ochranu před podvody.
Zkombinujte hlavičku (která zahrnuje přístupový token) a datovou část a odešlete je do koncového bodu Ochrany před podvody. (Koncový bod rozhraní API je identifikátor URI vašeho prostředí a zobrazí se na dlaždici Informace o účtu na řídicím panelu Ochrana před podvody.)
Další informace o rozhraních API najdete v tématu Dynamics 365 rozhraní API ochrany před podvody.
Krok 3: Vysvětlení událostí ochrany účtu
Vytvoření účtu
Pomocí události Vytvoření účtu odešlete informace a kontext o příchozím pokusu o vytvoření nového účtu. Odpověď obsahuje rozhodnutí pro rozhraní API pro vytvoření účtu.
Identifikátor URI: <Koncový bod> rozhraní API/v1.0/action/account/create/<signUpId>
Hodnota signUpId by měla být jedinečná pro každý požadavek. Měla by odpovídat hodnotě v části metadat v následující ukázce.
Důležité
Hodnota deviceContextId by měla odpovídat hodnotě session_id v nastavení otisku prstu zařízení.
Ukázková datová část
{
"device": {
"deviceContextId": "2cf391cc-62d2-47d4-a9c1-78ec025293da",
"ipAddress": "192.168.8.214",
"provider": "DFPFingerprinting",
"externalDeviceId": "1234567890",
"externalDeviceType": "Tablet"
},
"user": {
"userId": " 00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"userType": "Consumer",
"username": "kayla@contoso.com",
"firstName": "Kayla",
"lastName": "Goderich",
"countryRegion": "US",
"zipCode": "44329",
"timeZone": "-08:00",
"language": "en-us",
"membershipId": " CC004567",
"isMembershipIdUsername": false
},
"email": [
{
"emailType": "Primary",
"emailValue": "kayla@contoso.com",
"isEmailValidated": true,
"emailValidatedDate": "2018-11-27T15:12:26.9733817-08:00",
"isEmailUsername": true
}
],
"phone": [
{
"phoneType": "Alternative",
"phoneNumber": "1-4985550190",
"isPhoneNumberValidated": true,
"phoneNumberValidatedDate": "2018-11-27T15:12:26.9739451-08:00",
"isPhoneUsername": false
}
],
"address": [
{
"addressType": "Primary",
"firstName": "Kayla",
"lastName": "Goderich",
"phoneNumber": "1-4985550190",
"street1": "0123 Bechtelar Loop",
"street2": "",
"street3": "",
"city": "Kubtown",
"state": "SC",
"district": "",
"zipCode": "44329",
"countryRegion": "US"
}
],
"paymentInstruments": [
{
"merchantPaymentInstrumentId": "6ac8406f-128a-41ce-a02d-1bbaa23fbe15",
"type": "Credit Card",
"creationDate": "2020-03-24T13:23:32.3247803-07:00",
"updateDate": "2020-03-24T13:23:32.3248203-07:00"
}
],
"ssoAuthenticationProvider": {
"authenticationProvider": "MerchantAuth",
"displayName": "Kayla Goderich"
},
"metadata": {
"signUpId": "f5085b48-0f9d-47f5-85d1-2c95e7842d39",
"customerLocalDate": "2020-02-25T15:12:26.9653975-08:00",
"assessmentType": "Protect",
"trackingId": "d65544f0-f8b4-4249-a5e0-94b32a25548f",
"merchantTimeStamp": "2020-11-27T15:12:26.9721842-08:00"
},
"name": "AP.AccountCreation",
"version": "0.5"
}
Přihlášení k účtu
Pomocí události Přihlášení k účtu odešlete informace a kontext o příchozím pokusu o vytvoření nového účtu. Odpověď obsahuje rozhodnutí pro rozhraní API pro přihlášení k účtu.
Identifikátor URI: <Koncový bod> rozhraní API/v1.0/action/account/login/<userId>
Hodnota userId se musí shodovat s hodnotou v datové části. Každý uživatel musí mít jedinečnou hodnotu. Tady můžete použít hodnotu GUID.
Důležité
Hodnota deviceContextId by měla odpovídat hodnotě session_id v nastavení otisku prstu zařízení.
Ukázková datová část
{
"device": {
"deviceContextId": "2ef10376-2ba8-4f36-a911-da438e5e5e27",
"ipAddress": "192.168.8.214",
"provider": "DFPFingerprinting",
"externalDeviceId": "1234567890",
"externalDeviceType": "Computer"
},
"user": {
"userId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"userType": "Consumer",
"username": "kayla@contoso.com",
"firstName": "Kayla",
"lastName": "Goderich",
"countryRegion": "US",
"zipCode": "44329",
"timeZone": "-08:00",
"language": "en-us",
"membershipId": "CC004567",
"isMembershipIdUsername": false
},
"recentUpdate": {
"lastPhoneNumberUpdateDate": "2018-11-127T15:22:42.3412611-08:00",
"lastEmailUpdateDate": "2018-11-127T15:22:42.3412611-08:00 ",
"lastAddressUpdateDate": "2018-11-127T15:22:42.3412611-08:00",
"lastPaymentInstrumentUpdateDate": "2018-11-127T15:22:42.3412611-08:00"
},
"ssoAuthenticationProvider": {
"authenticationProvider": "MerchantAuth",
"displayName": "Kayla Goderich"
},
"metadata": {
"LogInId": "a15d4a5d-fadc-49ab-8022-712fec597e22",
"customerLocalDate": "2020-02-25T15:22:42.3397533-08:00",
"assessmentType": "Protect",
"trackingId": "a14ebdca-9447-49b4-951e-26f6ccc4445c",
"merchantTimeStamp": "2020-11-27T15:22:42.3405921-08:00"
},
"name": "AP.AccountLogin",
"version": "0.5"
}
Stav vytvoření účtu
Událost Stav vytvoření účtu slouží k odesílání informací a kontextu o příchozím pokusu o vytvoření nového stavu účtu. Odpověď obsahuje rozhodnutí pro rozhraní API pro vytvoření účtu.
Identifikátor URI: <Koncový bod> rozhraní API/v1.0/watch/account/create/status/<signUpId>
Hodnota userId se musí shodovat s hodnotou v datové části. Každý uživatel musí mít jedinečnou hodnotu. Tady můžete použít hodnotu GUID.
Ukázková datová část
{
"metadata":{
"signUpId":"a6221a3f-c38c-429e-8fde-3026d8c29ed3",
"userId":"11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
"trackingId":"697a6bee-2d30-4132-92a6-c137aaf49c0a",
"merchantTimeStamp":"2020-04-03T13:23:32.3226335-07:00"
},
"statusDetails":{
"statusType":"Rejected",
"reasonType":"ChallengeAbandoned",
"challengeType":"Email",
"statusDate":"2020-04-03T13:23:32.3817714-07:00"
},
"name":"AP.AccountCreation.Status",
"version":"0.5"
}
Stav přihlášení účtu
Pomocí události Stav přihlášení k účtu odešlete informace a kontext o příchozím pokusu o vytvoření nového stavu přihlášení k účtu. Odpověď obsahuje rozhodnutí pro rozhraní API stavu přihlášení k účtu.
Identifikátor URI: <Koncový bod> rozhraní API/v1.0/watch/account/login/status/<userId>
Hodnota signUpId se musí shodovat s hodnotou v datové části. Každá musí mít jedinečnou hodnotu. Tady můžete použít hodnotu GUID.
Ukázková datová část
{
"metadata":{
"loginId":"dc4ea331-a6e5-4aa0-8eba-16b4d516a07d",
"userId":"11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
"trackingId":"dcd65c87-d3db-4a42-8ed3-3e59f443b994",
"merchantTimeStamp":"2020-04-03T13:23:32.3759321-07:00"
},
"statusDetails":{
"statusType":"Rejected",
"reasonType":"ChallengeAbandoned",
"challengeType":"Email",
"statusDate":"2020-04-03T13:23:32.3884589-07:00"
},
"name":"AP.AccountLogin.Status",
"version":"0.5"
}
Popisek
Událost Label slouží k odeslání dalších informací do ochrany před podvody, kromě dat, která informují analytika virtuálních podvodů a funkce monitorování. Rozhraní Label API poskytuje další informace pro trénování modelu, které jsou založené na další sadě signálů podvodu. Odesílá také informace o transakcích, podrobnostech o účtu nebo platebním nástroji a o vrácení zpět.
Identifikátor URI: <Koncový bod> rozhraní API/v1.0/label/account/create/<userId>
Hodnota userId se musí shodovat s hodnotou v odpovídajícím rozhraní API pro přihlášení k účtu.
Ukázková datová část
{
"metadata": {
"name": "AP.Label.Metadata",
"userId": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
"merchantTimeStamp": "2020-06-14T21:53:27.8822492-08:00",
"trackingId": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff"
},
"label": {
"eventTimeStamp": "2020-02-21T21:53:27.8822492-08:00",
"labelObjectType": "Account",
"labelObjectId": "userid",
"labelSource": "ManualReview",
"labelState": "AccountCompromised",
"labelReasonCode": "AccountFraud"
},
"name": "AP.Label",
"version": "0.5"
}
public enum LabelObjectTypeName
{
Purchase,
AccountCreation,
AccountLogin,
AccountUpdate,
CustomFraudEvaluation,
Account,
PaymentInstrument,
Email
}
public enum LabelSourceName
{
CustomerEscalation,
Chargeback,
TC40_SAFE,
ManualReview,
Refund,
OfflineAnalysis,
AccountProtectionReview
}
public enum LabelStateName
{
InquiryAccepted,
Fraud,
Disputed,
Reversed,
Abuse,
ResubmittedRequest,
AccountCompromised,
AccountNotCompromised
}
public enum LabelReasonCodeName
{
ProcessorResponseCode,
BankResponseCode,
FraudRefund,
AccountTakeOver,
PaymentInstrumentFraud,
AccountFraud,
Abuse,
FriendlyFraud,
AccountCredentialsLeaked,
PassedAccountProtectionChecks
}
Gratulujeme! Úspěšně jste dokončili školení a jste připraveni použít možnosti ochrany účtů služby Fraud Protection.
Další kroky
Informace o přístupu k dalším funkcím ochrany před podvody a jejich používání najdete v následujících dokumentech: