Android应用使用MSAL实现身份认证的签名密钥生成问题求助
Android集成MSAL身份认证完整操作指南
第一步:获取核心配置项
你需要先在Azure门户完成应用注册,注册完成后可直接获取以下必填配置:
- 客户端ID(Client ID):应用注册概览页直接复制
- 租户ID(Tenant ID):若面向所有用户可直接填
common,单租户则填对应租户ID - 重定向URI:格式固定为
msauth://<你的应用包名>/<签名哈希>,其中签名哈希需要你自行生成后填写到Azure应用注册的重定向URI配置中
第二步:生成应用签名哈希
调试环境签名哈希生成
直接用Android Studio自带的debug.keystore生成,执行以下命令:keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
默认密钥库密码是android,执行后输出的字符串就是调试环境的签名哈希。
注意:Windows系统下debug.keystore默认路径为
C:\Users\你的用户名\.android\debug.keystore,请替换命令中的路径后执行。
生产环境签名哈希生成
用你自己打包用的正式签名密钥库执行命令:keytool -exportcert -alias <你的正式签名别名> -keystore <你的正式签名密钥库文件路径> | openssl sha1 -binary | openssl base64
输入你设置的密钥库密码后,输出的就是生产环境的签名哈希。
第三步:配置MSAL到项目中
- 在res/raw目录下新建
auth_config.json文件,填入刚才获取的配置:
{ "client_id": "你获取的客户端ID", "authorization_user_agent": "DEFAULT", "redirect_uri": "msauth://<你的应用包名>/<生成的签名哈希>", "account_mode": "SINGLE", "broker_redirect_uri_registered": true, "authorities": [ { "type": "AAD", "audience": { "type": "AzureADandPersonalMicrosoftAccount", "tenant_id": "common" }, "default": true } ] }
- 然后在AndroidManifest.xml中添加Intent Filter配置,捕获重定向回调:
<activity android:name="com.microsoft.identity.client.BrowserTabActivity"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="<你的应用包名>" android:path="/<生成的签名哈希>" android:scheme="msauth" /> </intent-filter> </activity>
内容的提问来源于stack exchange,提问作者Artem
相关产品推荐
相关产品推荐

