如何处理调试和生产 Android 应用程序的 MSAL 配置?

问题描述 投票:0回答:1

我已在 Android 应用程序中使用 MSAL 集成登录到 Azure AD。对于 Azure AD 中的应用程序注册,我使用了调试密钥存储。这在 Android Studio 调试环境中运行良好。

我现在准备构建一个发布 apk。我知道我需要在发布密钥库上创建一个新的签名哈希。我想知道推荐的做法是什么。我应该更新 ADD 中的现有(即调试)应用程序注册,还是应该为生产应用程序创建新的应用程序注册?

android azure-active-directory single-sign-on openid azure-ad-msal
1个回答
0
投票

正确设置Azure 应用程序注册后:

调试

选项1

您可以使用Android SDK安装生成的自动签名证书,debug.keystore,可以在

找到

Windows:%HOMEPATH%\.android
Linux:~/.android

debug.keystore 密码:android

Windows环境*

我强烈建议在老式

cmd.exe
或任何 WSL 终端上执行这些任务。

*PowerShell Core 使用 UTF-8 作为显示文本的默认字符编码,而 OpenSSL 可能使用不同的字符编码,例如 ASCII。

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64 

Linux环境

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

复制此哈希并将其粘贴到 Azure 上相应的

Android Redirect URIs
中。

注意事项

这种方法意味着参与项目的每个团队成员都应该在 Azure 上注册相应的哈希值。

选项2

使用 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 将其展开。单击应用程序唱歌并选择选项卡应用程序签名并下载应用程序签名密钥证书

生成生产 Azure 签名哈希

下载.der文件后,执行:

Windows(cmd.exe)

 type your_file.der | openssl sha1 -binary | openssl base64

Linux

 cat your_file.der | openssl sha1 -binary | base64

现在,只需将生成的哈希值复制到 Azure,就像之前进行调试一样。

© www.soinside.com 2019 - 2024. All rights reserved.