我已在 Android 应用程序中使用 MSAL 集成登录到 Azure AD。对于 Azure AD 中的应用程序注册,我使用了调试密钥存储。这在 Android Studio 调试环境中运行良好。
我现在准备构建一个发布 apk。我知道我需要在发布密钥库上创建一个新的签名哈希。我想知道推荐的做法是什么。我应该更新 ADD 中的现有(即调试)应用程序注册,还是应该为生产应用程序创建新的应用程序注册?
正确设置Azure 应用程序注册后:
您可以使用Android SDK安装生成的自动签名证书,debug.keystore,可以在
找到Windows:%HOMEPATH%\.android
Linux:~/.android
debug.keystore 密码:android
我强烈建议在老式
cmd.exe
或任何 WSL 终端上执行这些任务。
*PowerShell Core 使用 UTF-8 作为显示文本的默认字符编码,而 OpenSSL 可能使用不同的字符编码,例如 ASCII。
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
复制此哈希并将其粘贴到 Azure 上相应的
Android Redirect URIs
中。
这种方法意味着参与项目的每个团队成员都应该在 Azure 上注册相应的哈希值。
使用 JDK 工具创建签名密钥证书并与团队共享
keytool
。
请记住用于生成它的 JDK 版本,应使用相同版本
keytool
来读取此签名密钥。
keytool -genkey -v -keystore your_keystore.jks -keyalg RSA -keysize 2048 -validity 3650 -alias your_alias
现在,生成所需的 Azure 哈希签名:
keytool -exportcert -alias your_alias -keystore your_keystore.jks | openssl sha1 -binary | openssl base64
您必须配置应用程序 gradle 文件来处理这个新的签名密钥。
出于安全考虑,我猜,Play Console 上发布的每个应用都会自动收到签名密钥证书。
因此,要为您的生产 Android 应用程序生成 Azure 签名哈希:
在 Play Console 上,导航到应用程序仪表板页面,然后在左侧菜单上单击 Setup 将其展开。单击应用程序唱歌并选择选项卡应用程序签名并下载应用程序签名密钥证书
下载.der文件后,执行:
type your_file.der | openssl sha1 -binary | openssl base64
cat your_file.der | openssl sha1 -binary | base64
现在,只需将生成的哈希值复制到 Azure,就像之前进行调试一样。