You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:45:02