DevicePolicyManager.InstallKeyPair 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
InstallKeyPair(ComponentName, IPrivateKey, Certificate[], String, Boolean) |
下列程式代碼可以呼叫此 API 來安裝分葉憑證的憑證鏈結和對應的私鑰:ul>li 裝置擁有者/li><li>配置檔擁有<者</li 委派憑證安裝程式<>></<>>li li Credential management app</li<>>li An 應用程式,其中保存 |
InstallKeyPair(ComponentName, IPrivateKey, Certificate[], String, InstallKeyFlags) |
下列程式代碼可以呼叫此 API 來安裝分葉憑證的憑證鏈結和對應的私鑰:ul>li 裝置擁有者/li><li>配置檔擁有<者</li 委派憑證安裝程式<>></<>>li li Credential management app</li<>>li An 應用程式,其中保存 |
InstallKeyPair(ComponentName, IPrivateKey, Certificate, String) |
下列程式代碼可以呼叫此 API 來安裝憑證和對應的私鑰:ul>li 裝置擁有者/li><li li>配置檔擁有<者</li>><li 委派的憑證安裝程式</li>><li li 認證管理應用程式</li<>li>An 應用程式,其中保存 |
InstallKeyPair(ComponentName, IPrivateKey, Certificate[], String, Boolean)
下列程式代碼可以呼叫此 API 來安裝分葉憑證的憑證鏈結和對應的私鑰:ul>li 裝置擁有者/li><li>配置檔擁有<者</li 委派憑證安裝程式<>></<>>li li Credential management app</li<>>li An 應用程式,其中保存android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES
許可權</li></ul>><<配置檔中的所有應用程式都能夠存取憑證鏈結,並使用私鑰,並給予直接使用者核准。
[Android.Runtime.Register("installKeyPair", "(Landroid/content/ComponentName;Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/lang/String;Z)Z", "GetInstallKeyPair_Landroid_content_ComponentName_Ljava_security_PrivateKey_arrayLjava_security_cert_Certificate_Ljava_lang_String_ZHandler", ApiSince=24)]
[Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")]
public virtual bool InstallKeyPair (Android.Content.ComponentName? admin, Java.Security.IPrivateKey privKey, Java.Security.Cert.Certificate[] certs, string alias, bool requestAccess);
[<Android.Runtime.Register("installKeyPair", "(Landroid/content/ComponentName;Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/lang/String;Z)Z", "GetInstallKeyPair_Landroid_content_ComponentName_Ljava_security_PrivateKey_arrayLjava_security_cert_Certificate_Ljava_lang_String_ZHandler", ApiSince=24)>]
[<Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")>]
abstract member InstallKeyPair : Android.Content.ComponentName * Java.Security.IPrivateKey * Java.Security.Cert.Certificate[] * string * bool -> bool
override this.InstallKeyPair : Android.Content.ComponentName * Java.Security.IPrivateKey * Java.Security.Cert.Certificate[] * string * bool -> bool
參數
- admin
- ComponentName
此要求與哪個 DeviceAdminReceiver
要求相關聯,如果 null
呼叫者不是裝置系統管理員,則為 。
- privKey
- IPrivateKey
要安裝的私鑰。
- certs
- Certificate[]
要安裝的憑證鏈結。 鏈結應該從分葉憑證開始,並依序包含信任鏈結。 這會由 android.security.KeyChain#getCertificateChain
傳回。
- alias
- String
要在其中安裝憑證的私鑰別名。 如果已有該別名的憑證存在,則會加以覆寫。
- requestAccess
- Boolean
true
要求立即授與呼叫應用程式的存取權。 否則,使用者核准會閘道存取認證。
傳回
true
如果已安裝金鑰,則為 , false
否則為 。
- 屬性
備註
下列程式代碼可以呼叫此 API 來安裝分葉憑證的憑證鏈結和對應的私鑰:ul>li 裝置擁有者/li><li>配置檔擁有<者</li 委派憑證安裝程式<>></<>>li li Credential management app</li<>>li An 應用程式,其中保存android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES
許可權</li></ul>><<配置檔中的所有應用程式都能夠存取憑證鏈結,並使用私鑰,並給予直接使用者核准。
從 Android android.os.Build.VERSION_CODES#S
,認證管理應用程式可以呼叫此 API。 不過,此 API 預設會將金鑰組設定為用戶可選取的金鑰組,這是認證管理應用程式呼叫時不允許的。 相反地, #installKeyPair(ComponentName, PrivateKey, Certificate[], String, int)
應該呼叫 ,但 #INSTALLKEY_SET_USER_SELECTABLE
未設定為旗標。 請注意,在非受控裝置上只能有認證管理應用程式。
此 API 的呼叫端可以立即授與憑證和私鑰的存取權,而不需要使用者核准。 除非絕對必要,否則最好不要要求此要求,因為它會開啟額外的安全性弱點。
注意:如果提供的 alias
是現有的別名,則會撤銷所有先前授與應用程式存取與此別名相關聯的密鑰和憑證。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
適用於
InstallKeyPair(ComponentName, IPrivateKey, Certificate[], String, InstallKeyFlags)
下列程式代碼可以呼叫此 API 來安裝分葉憑證的憑證鏈結和對應的私鑰:ul>li 裝置擁有者/li><li>配置檔擁有<者</li 委派憑證安裝程式<>></<>>li li Credential management app</li<>>li An 應用程式,其中保存android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES
許可權</li></ul>><<配置檔內的所有應用程式都能夠存取憑證鏈結,並使用私鑰,並給予使用者直接核准(如果允許使用者選取私鑰)。
[Android.Runtime.Register("installKeyPair", "(Landroid/content/ComponentName;Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/lang/String;I)Z", "GetInstallKeyPair_Landroid_content_ComponentName_Ljava_security_PrivateKey_arrayLjava_security_cert_Certificate_Ljava_lang_String_IHandler", ApiSince=28)]
[Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")]
public virtual bool InstallKeyPair (Android.Content.ComponentName? admin, Java.Security.IPrivateKey privKey, Java.Security.Cert.Certificate[] certs, string alias, Android.App.Admin.InstallKeyFlags flags);
[<Android.Runtime.Register("installKeyPair", "(Landroid/content/ComponentName;Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/lang/String;I)Z", "GetInstallKeyPair_Landroid_content_ComponentName_Ljava_security_PrivateKey_arrayLjava_security_cert_Certificate_Ljava_lang_String_IHandler", ApiSince=28)>]
[<Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")>]
abstract member InstallKeyPair : Android.Content.ComponentName * Java.Security.IPrivateKey * Java.Security.Cert.Certificate[] * string * Android.App.Admin.InstallKeyFlags -> bool
override this.InstallKeyPair : Android.Content.ComponentName * Java.Security.IPrivateKey * Java.Security.Cert.Certificate[] * string * Android.App.Admin.InstallKeyFlags -> bool
參數
- admin
- ComponentName
此要求與哪個 DeviceAdminReceiver
要求相關聯,如果 null
呼叫者不是裝置系統管理員,則為 。
- privKey
- IPrivateKey
要安裝的私鑰。
- certs
- Certificate[]
要安裝的憑證鏈結。 鏈結應該從分葉憑證開始,並依序包含信任鏈結。 這會由 android.security.KeyChain#getCertificateChain
傳回。
- alias
- String
要在其中安裝憑證的私鑰別名。 如果已有該別名的憑證存在,則會加以覆寫。
- flags
- InstallKeyFlags
旗標,要求將呼叫的應用程式授與認證存取權,並將密鑰設定為用戶可選取。 請參閱 #INSTALLKEY_SET_USER_SELECTABLE
和 #INSTALLKEY_REQUEST_CREDENTIALS_ACCESS
。
傳回
true
如果已安裝金鑰,則為 , false
否則為 。
- 屬性
備註
下列程式代碼可以呼叫此 API 來安裝分葉憑證的憑證鏈結和對應的私鑰:ul>li 裝置擁有者/li><li>配置檔擁有<者</li 委派憑證安裝程式<>></<>>li li Credential management app</li<>>li An 應用程式,其中保存android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES
許可權</li></ul>><<配置檔內的所有應用程式都能夠存取憑證鏈結,並使用私鑰,並給予使用者直接核准(如果允許使用者選取私鑰)。
從 Android android.os.Build.VERSION_CODES#S
,認證管理應用程式可以呼叫此 API。 如果認證管理應用程式<呼叫:ul<>li>componentName 必須是 null
r</li><>。別名必須存在於認證管理應用程式的android.security.AppUriAuthenticationPolicy
< /li<>li>中。密鑰組不得為用戶可<選取/li></ul> 注意,在非受控裝置上只能有認證管理應用程式。
此 API 的呼叫端可以立即授與憑證和私鑰的存取權,而不需要使用者核准。 除非絕對必要,否則最好不要要求此要求,因為它會開啟額外的安全性弱點。
包含在 #INSTALLKEY_SET_USER_SELECTABLE
自變數中 flags
,以允許使用者從對話框中選取金鑰。
注意:如果提供的 alias
是現有的別名,則會撤銷所有先前授與應用程式存取與此別名相關聯的密鑰和憑證。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
適用於
InstallKeyPair(ComponentName, IPrivateKey, Certificate, String)
下列程式代碼可以呼叫此 API 來安裝憑證和對應的私鑰:ul>li 裝置擁有者/li><li li>配置檔擁有<者</li>><li 委派的憑證安裝程式</li>><li li 認證管理應用程式</li<>li>An 應用程式,其中保存android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES
配置檔內的許可權</li></ul> 所有應用程式都能夠存取憑證並使用私鑰,><< 指定直接使用者核准。
[Android.Runtime.Register("installKeyPair", "(Landroid/content/ComponentName;Ljava/security/PrivateKey;Ljava/security/cert/Certificate;Ljava/lang/String;)Z", "GetInstallKeyPair_Landroid_content_ComponentName_Ljava_security_PrivateKey_Ljava_security_cert_Certificate_Ljava_lang_String_Handler")]
[Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")]
public virtual bool InstallKeyPair (Android.Content.ComponentName? admin, Java.Security.IPrivateKey privKey, Java.Security.Cert.Certificate cert, string alias);
[<Android.Runtime.Register("installKeyPair", "(Landroid/content/ComponentName;Ljava/security/PrivateKey;Ljava/security/cert/Certificate;Ljava/lang/String;)Z", "GetInstallKeyPair_Landroid_content_ComponentName_Ljava_security_PrivateKey_Ljava_security_cert_Certificate_Ljava_lang_String_Handler")>]
[<Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")>]
abstract member InstallKeyPair : Android.Content.ComponentName * Java.Security.IPrivateKey * Java.Security.Cert.Certificate * string -> bool
override this.InstallKeyPair : Android.Content.ComponentName * Java.Security.IPrivateKey * Java.Security.Cert.Certificate * string -> bool
參數
- admin
- ComponentName
此要求與哪個 DeviceAdminReceiver
要求相關聯,如果 null
呼叫者不是裝置系統管理員,則為 。
- privKey
- IPrivateKey
要安裝的私鑰。
- cert
- Certificate
要安裝的憑證。
- alias
- String
要在其中安裝憑證的私鑰別名。 如果已有該別名的憑證存在,則會加以覆寫。
傳回
true
如果已安裝金鑰,則為 , false
否則為 。
- 屬性
備註
下列程式代碼可以呼叫此 API 來安裝憑證和對應的私鑰:ul>li 裝置擁有者/li><li li>配置檔擁有<者</li>><li 委派的憑證安裝程式</li>><li li 認證管理應用程式</li<>li>An 應用程式,其中保存android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES
配置檔內的許可權</li></ul> 所有應用程式都能夠存取憑證並使用私鑰,><< 指定直接使用者核准。
從 Android android.os.Build.VERSION_CODES#S
,認證管理應用程式可以呼叫此 API。 不過,此 API 預設會將金鑰組設定為用戶可選取的金鑰組,這是認證管理應用程式呼叫時不允許的。 相反地, #installKeyPair(ComponentName, PrivateKey, Certificate[], String, int)
應該呼叫 ,但 #INSTALLKEY_SET_USER_SELECTABLE
未設定為旗標。
在未經直接使用者核准的情況下,不會將已安裝認證的存取權授與此 API 的呼叫者。 這是為了安全性 - 如果憑證安裝程式遭到入侵,則已安裝的憑證將會受到保護。
如果安裝程式必須能夠存取認證,請改為呼叫 #installKeyPair(ComponentName, PrivateKey, Certificate[], String, boolean)
。
注意:如果提供的 alias
是現有的別名,則會撤銷所有先前授與應用程式存取與此別名相關聯的密鑰和憑證。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。