Clientgegevens doorgeven (apparaat, verbinding en toepassing) pass-client-info
Toepassingsgebied pass-client-info-scope
Dit document bevat gegevens en cookies waarmee clientgegevens (apparaat, verbinding en toepassing) kunnen worden doorgegeven van een programmeertoepassing naar Adobe Pass Authentication REST API's of SDK's.
De voordelen van het verstrekken van cliƫntinformatie zijn:
- De mogelijkheid om de Home Base Authentication (HBA) correct in te schakelen voor bepaalde apparaattypen en MVPD's die HBA kunnen ondersteunen.
- De capaciteit om TTLs in het geval van sommige apparatentypes behoorlijk toe te passen (bijvoorbeeld, vorm langere TTLs voor authentificatiesessies op TV aangesloten apparaten).
- De capaciteit om bedrijfsmetriek in uitgesplitste naar apparatentypen behoorlijk samen te voegen gebruikend de Controle van de Dienst van de Entitlement (ESM).
- Maakt de mogelijkheid ongedaan om verschillende bedrijfsregels correct toe te passen (bijvoorbeeld afbraak) op specifieke apparaattypen.
Overzicht pass-client-info-overview
De clientinformatie bestaat uit:
- Apparaat informatie over de hardware- en softwarekenmerken van het apparaat waar de gebruiker de inhoud van de programmeur probeert te consumeren.
- Verbinding informatie over de verbindingskenmerken van het apparaat van waaruit de gebruiker verbinding maakt met de Adobe Pass-verificatieservices en/of Programmeringsservices (bv. server-naar-server-implementaties).
- Toepassing informatie over de geregistreerde toepassing van waar de gebruiker de inhoud van de Programmer probeert te verbruiken.
De clientinformatie is een JSON-object dat is gebouwd met sleutels die in de volgende tabel worden weergegeven.
primaryHardwareType
, osName
, osFamily
, browserName
, browserVendor
, connectionSecure
.API-verwijzingen api-ref
In deze sectie wordt de API weergegeven die verantwoordelijk is voor de verwerking van clientgegevens bij het gebruik van Adobe Pass Authentication REST API's of SDK's.
REST API rest-api
Adobe Pass-verificatieservices bieden op de volgende manieren ondersteuning voor het ontvangen van de clientgegevens:
- Als header: "X-Device-Info"
- Als queryparameter: "device_info"
- Als post parameter: "device_info"
SDK
JavaScript SDK js-sdk
De JavaScript-SDK van AccessEnabler maakt standaard een JSON-object met clientinformatie dat wordt doorgegeven aan de Adobe Pass-verificatieservices, tenzij dit wordt overschreven.
De JavaScript-SDK van AccessEnabler ondersteunt alleen overschrijven de toets "applicationId" van het JSON-object met clientinformatie via de setRequestors applicationId parameter options.
applicationId
parameterwaarde moet een waarde van het type String zonder opmaak zijn.Als de toepassing Programmer besluit om de applicationId door te geven, dan zullen de rest sleutels van cliƫntinformatie nog door AccessEnabler JavaScript SDK worden verwerkt.
iOS/tvOS SDK ios-tvos-sdk
De AccessEnabler iOS/tvOS SDK bouwt standaard een JSON-object met clientinformatie dat wordt doorgegeven aan de Adobe Pass Authentication-services, tenzij dit wordt overschreven.
De AccessEnabler iOS/tvOS SDK ondersteunt de gehele client information JSON object through setOptions's device_info parameter.
Android/FireOS SDK and-fire-os-sdk
De AccessEnabler
De SDK van Android/FireOS bouwt standaard een JSON-object met clientinformatie dat wordt doorgegeven aan de Adobe Pass-verificatieservices, tenzij dit wordt overschreven.
De AccessEnabler
Ondersteuning voor Android/FireOS SDK de gehele client information JSON object through setOptionss/setOptionss device_info
parameter.
device_info
parameterwaarde moet een Base64-codering Waarde van tekenreeks.device_info
en vervolgens alle sleutels met clientgegevens die door de AccessEnabler
Android/FireOS SDK wordt genegeerd. Daarom is het zeer belangrijk om de waarden voor zoveel mogelijk sleutels te berekenen en over te gaan. Voor meer informatie over de implementatie raadpleegt u de Overzicht en de Android en FireOS cookbook.Cookbooks cookbooks
Deze sectie presenteert een cookbook voor het samenstellen van de client-informatie JSON-object in het geval van verschillende apparaattypen.
Android android
De informatie over de voorziening kan als volgt worden samengesteld:
De verbindingsgegevens kunnen als volgt worden samengesteld:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo().getType()
"WIFI","BLUETOOTH","MOBILE","ETHERNET","VPN","DUMMY","MOBILE_DUN","WIMAX","notAccessible"
De toepassingsinformatie kan als volgt worden samengesteld:
Voorbeeldcode
private JSONObject computeClientInformation() {
String LOGGING_TAG = "DefineClass.class";
JSONObject clientInformation = new JSONObject();
String connectionType;
try {
ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnectedOrConnecting()) {
switch (activeNetwork.getType()) {
case ConnectivityManager.TYPE_WIFI: {
connectionType = "WIFI";
break;
}
case ConnectivityManager.TYPE_BLUETOOTH: {
connectionType = "BLUETOOTH";
break;
}
case ConnectivityManager.TYPE_MOBILE: {
connectionType = "MOBILE";
break;
}
case ConnectivityManager.TYPE_ETHERNET: {
connectionType = "ETHERNET";
break;
}
case ConnectivityManager.TYPE_VPN: {
connectionType = "VPN";
break;
}
case ConnectivityManager.TYPE_DUMMY: {
connectionType = "DUMMY";
break;
}
case ConnectivityManager.TYPE_MOBILE_DUN: {
connectionType = "MOBILE_DUN";
break;
}
case ConnectivityManager.TYPE_WIMAX: {
connectionType = "WIMAX";
break;
}
default:
connectionType = ConnectivityManager.EXTRA_OTHER_NETWORK_INFO;
}
} else {
connectionType = ConnectivityManager.EXTRA_NO_CONNECTIVITY;
}
} catch (Exception e) {
connectionType = "notAccessible";
}
try {
clientInformation.put("model",Build.MODEL);
clientInformation.put("vendor", Build.BRAND);
clientInformation.put("manufacturer",Build.MANUFACTURER);
clientInformation.put("version",Build.DEVICE);
clientInformation.put("osName","Android");
clientInformation.put("osVersion",Build.VERSION.RELEASE);
clientInformation.put("connectionType",connectionType);
clientInformation.put("applicationId","CNN");
} catch (JSONException e) {
Log.e(LOGGING_TAG, e.getMessage());
}
return Base64.encodeToString(clientInformation.toString().getBytes(), Base64.NO_WRAP);
}
FireTV fire-tv
De informatie over de voorziening kan als volgt worden samengesteld:
De verbindingsgegevens kunnen als volgt worden samengesteld:
De toepassingsinformatie kan als volgt worden samengesteld:
- openbare klasse Opbouwen in de documentatie van Android-ontwikkelaars.
- FireTV-apparaten identificeren
iOS/tvOS ios-tvos
De informatie over de voorziening kan als volgt worden samengesteld:
De verbindingsgegevens kunnen als volgt worden samengesteld:
De toepassingsinformatie kan als volgt worden samengesteld:
Voorbeeldcode
+ (NSString *)computeClientInformation {
struct utsname u;
uname(&u);
NSString *hardware = [NSString stringWithCString:u.machine encoding:NSUTF8StringEncoding];
UIDevice *device = [UIDevice currentDevice];
NSString *deviceType;
switch (UI_USER_INTERFACE_IDIOM()) {
case UIUserInterfaceIdiomPhone:
deviceType = @"MobilePhone";
break;
case UIUserInterfaceIdiomPad:
deviceType = @"Tablet";
break;
case UIUserInterfaceIdiomTV:
deviceType = @"TV";
break;
default:
deviceType = @"Unknown";
}
CGRect screenRect = [[UIScreen mainScreen] bounds];
NSNumber *screenWidth = @((float) screenRect.size.width);
NSNumber *screenHeight = @((float) screenRect.size.height);
Reachability *reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];
NetworkStatus status = [reachability currentReachabilityStatus];
NSString *connectionType;
if (status == NotReachable) {
connectionType = @"notConnected";
} else if (status == ReachableViaWiFi) {
connectionType = @"WiFi";
} else if (status == ReachableViaWWAN) {
connectionType = @"cellular";
}
NSMutableDictionary *clientInformation = [@{
@"type": deviceType,
@"model": device.model,
@"vendor": @"Apple",
@"manufacturer": @"Apple",
@"version": [hardware stringByReplacingOccurrencesOfString:device.model withString:@""],
@"osName": device.systemName,
@"osVersion": device.systemVersion,
@"displayWidth": screenWidth,
@"displayHeight": screenHeight,
@"connectionType": connectionType,
@"applicationId": @"CNN"
} mutableCopy];
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:clientInformation options:NSJSONWritingPrettyPrinted error:&error];
NSString *base64Encoded = [jsonData base64EncodedStringWithOptions:0];
return base64Encoded;
}
Roku roku
De informatie over de voorziening kan als volgt worden samengesteld:
De verbindingsgegevens kunnen als volgt worden samengesteld:
De toepassingsinformatie kan als volgt worden samengesteld:
XBOX 1/360 xbox
De informatie over de voorziening kan als volgt worden samengesteld:
De verbindingsgegevens kunnen als volgt worden samengesteld:
De toepassingsinformatie kan als volgt worden samengesteld:
Bronnen