(Äldre) Skicka klientinformation (enhet, anslutning och program) pass-client-info
Omfång pass-client-info-scope
Det här dokumentet samlar information och cookbooks för att skicka klientinformation (enhet, anslutning och program) från ett programmeringsprogram till Adobe Pass Authentication REST API:er eller SDK:er.
Fördelarna med att tillhandahålla kundinformation är:
- Möjligheten att korrekt aktivera HBA (Home Base Authentication) för vissa enhetstyper och MVPD-program som stöder HBA.
- Möjligheten att korrekt tillämpa TTL:er för vissa enhetstyper (till exempel konfigurera längre TTL:er för autentiseringssessioner på tv-anslutna enheter).
- Möjlighet att på rätt sätt sammanställa affärsdata i uppdelade rapporter över olika enhetstyper med hjälp av ESM (Entitlement Service Monitoring).
- Hindrar möjligheten att tillämpa olika affärsregler korrekt (t.ex. nedbrytning) på specifika enhetstyper.
Ökning pass-client-info-overview
Klientinformationen består av:
- Enhet information om maskinvaru- och programvaruattributen för enheten som användaren försöker använda programmerarinnehållet från.
- Anslutning information om anslutningsattributen för den enhet från vilken användaren ansluter till Adobe Pass autentiseringstjänster och/eller programmeringstjänster (t.ex. server-till-server-implementeringar).
- Program information om det registrerade programmet som användaren försöker använda programmerarinnehållet från.
Klientinformationen är ett JSON-objekt som skapats med nycklar som presenteras i följande tabell.
primaryHardwareType, osName, osFamily, browserName, browserVendor, connectionSecure.API-referenser api-ref
I det här avsnittet presenteras det API som hanterar klientinformation när du använder Adobe Pass Authentication REST API:er eller SDK:er.
REST API rest-api
Adobe Pass autentiseringstjänster har stöd för att ta emot klientinformationen på följande sätt:
- Som ett huvud: "X-Device-Info"
- Som en frågeparameter: "device_info"
- Som en post-parameter: "device_info"
SDK
JavaScript SDK js-sdk
AccessEnabler JavaScript SDK skapar som standard ett JSON-objekt för klientinformation, som skickas till Adobe Pass autentiseringstjänster, om det inte åsidosätts.
AccessEnabler JavaScript SDK har stöd för att endast åsidosätta nyckeln "applicationId" från JSON-objektet för klientinformation via alternativparametern setRequestor för applicationId för .
applicationId måste vara ett vanligt textsträngsvärde.Om Programmer-programmet godkänner applicationId beräknas resten av klientinformationsnycklarna fortfarande av AccessEnabler JavaScript SDK.
iOS/tvOS SDK ios-tvos-sdk
AccessEnabler iOS/tvOS SDK skapar som standard ett JSON-objekt för klientinformation, som skickas till Adobe Pass autentiseringstjänster, om det inte åsidosätts.
AccessEnabler iOS/tvOS SDK har stöd för åsidosättning av JSON-objektet för hela-klientinformationen via parametern device_info för setOptions.
Android/FireOS SDK and-fire-os-sdk
AccessEnabler Android/FireOS SDK skapar som standard ett JSON-objekt för klientinformation, som skickas till Adobe Pass autentiseringstjänster, om det inte åsidosätts.
AccessEnabler Android/FireOS SDK har stöd för åsidosättning av JSON-objektet för hela-klientinformationen via setOptionss/setOptionss device_info -parameter.
device_info måste vara ett Base64-kodat-strängvärde.device_info åsidosätts alla klientinformationsnycklar som beräknas av AccessEnabler Android/FireOS SDK. Därför är det mycket viktigt att beräkna och skicka värdena för så många tangenter som möjligt. Mer information om implementeringen finns i tabellen Översikt och i cookbook-programmen Android och FireOS .Cookbooks cookbooks
I det här avsnittet presenteras en cookbook för att skapa JSON-objekt för klientinformation för olika enhetstyper.
Android android
Enhetsinformationen kan utformas på följande sätt:
Anslutningsinformationen kan utformas på följande sätt:
<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"Programinformationen kan utformas på följande sätt:
Exempelkod
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
Enhetsinformationen kan utformas på följande sätt:
Anslutningsinformationen kan utformas på följande sätt:
Programinformationen kan utformas på följande sätt:
- den offentliga klassen Build i dokumentationen för Android-utvecklare.
- Identifiera FireTV-enheter
iOS/tvOS ios-tvos
Enhetsinformationen kan utformas på följande sätt:
Anslutningsinformationen kan utformas på följande sätt:
Programinformationen kan utformas på följande sätt:
Exempelkod
+ (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
Enhetsinformationen kan utformas på följande sätt:
Anslutningsinformationen kan utformas på följande sätt:
Programinformationen kan utformas på följande sätt:
XBOX 1/360 xbox
Enhetsinformationen kan utformas på följande sätt:
Anslutningsinformationen kan utformas på följande sätt:
Programinformationen kan utformas på följande sätt:
Resurser