(Verouderd) 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 softwareattributen van het apparaat van waar de gebruiker probeert om de inhoud van de Programmer te verbruiken.
- de informatie van de Verbinding over de verbindingsattributen van het apparaat van waar de gebruiker met de diensten van de Authentificatie van Adobe Pass en/of de diensten van de Programmer (b.v. server-aan-server implementaties) verbindt.
- de informatie van de Toepassing over de geregistreerde toepassing van waar de gebruiker probeert om de inhoud van de Programmer 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 a kopbal: "x-Apparaat-Info"
- Als a vraagparameter: "device_info"
- Als a postparameter: "device_info"
SDK
JavaScript SDK js-sdk
De AccessEnabler JavaScript SDK bouwt standaard een JSON-object met clientinformatie dat wordt doorgegeven aan de Adobe Pass Authentication-services, tenzij dit wordt overschreven.
JavaScript AccessEnabler SDK steunt het met voeten treden slechts de "applicationId"sleutel van de cliëntinformatie JSON voorwerp door setRequestorapplicationId optiesparameter.
applicationId
-parameterwaarde moet een tekenreeks zonder opmaak zijn.Als de toepassing van de Programmer besluit om applicationId over te gaan, 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.
AccessEnabler iOS/tvOS SDK steunt het met voeten treden van de volledige cliëntinformatie JSON voorwerp door de setOptionsapparaat_info parameter.
Android/FireOS SDK and-fire-os-sdk
De AccessEnabler
Android/FireOS SDK bouwt standaard een JSON-object met clientinformatie dat wordt doorgegeven aan de Adobe Pass-verificatieservices, tenzij dit wordt overschreven.
De AccessEnabler
Android/FireOS SDK steunt met voeten tredend de volledige cliëntinformatie JSON voorwerp door de setOptionssetOptionsparameter device_info
.
device_info
parameterwaarde moet a Base64 gecodeerde waarde van het Koord zijn.device_info
door te geven, worden alle sleutels voor clientinformatie die door de AccessEnabler
Android/FireOS SDK zijn berekend, overschreven. Daarom is het zeer belangrijk om de waarden voor zoveel mogelijk sleutels te berekenen en over te gaan. Voor meer details betreffende de implementatie, zie de 🔗 lijst van het 0} Overzicht {en Androiden FireOSkookboek.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:
code van de Steekproef
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 bouwtin de documentatie van de ontwikkelaars van Android.
- identificerend apparaten FireTV
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:
code van de Steekproef
+ (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:
Middelen