从Android应用程序到Azure AD的Firebase身份验证

从Android应用程序到Azure AD的Firebase身份验证,android,firebase,azure,oauth,firebase-authentication,Android,Firebase,Azure,Oauth,Firebase Authentication,我正在尝试将“Microsoft”登录方法添加到我的Firebase项目中,希望允许用户使用他们的Azure广告凭据登录到我的Android应用程序。我已经为使用“电子邮件/密码”提供商做好了一切准备,该提供商运行良好 我不打算访问任何Azure API,我只需要对给定用户进行身份验证,以便当组织终止该用户帐户时,他不再能够登录到我的应用程序 我遵循这个指南。我已经在我的Azure广告上注册了一个应用程序,将其设置为允许来自任何组织的帐户以及个人帐户,并将客户端ID和密码添加到我的Firebas

我正在尝试将“Microsoft”登录方法添加到我的Firebase项目中,希望允许用户使用他们的Azure广告凭据登录到我的Android应用程序。我已经为使用“电子邮件/密码”提供商做好了一切准备,该提供商运行良好

我不打算访问任何Azure API,我只需要对给定用户进行身份验证,以便当组织终止该用户帐户时,他不再能够登录到我的应用程序

我遵循这个指南。我已经在我的Azure广告上注册了一个应用程序,将其设置为允许来自任何组织的帐户以及个人帐户,并将客户端ID和密码添加到我的Firebase项目中。我还将Firebase项目的重定向url添加到Azure上的应用程序注册中

我使用
startActivityForSignInWithProvider
启动登录过程,如示例中所示。chrome选项卡加载并引导我完成整个身份验证过程问题是这总是返回一个失败,异常为
错误:(无效的客户端)AADSTS700025:客户端是公共的,因此不应显示“客户端断言”或“客户端机密”

这令人困惑,因为为了在Firebase上启用此登录提供程序,您需要输入客户端ID和客户端密码

我尝试过将应用程序注册设置“将应用程序视为公共客户端”设置为“是”和“否”。我还尝试过使用空白的scopes集合,并将“openId”添加到scopes中,作为暗中操作


我对Microsoft身份验证的内容有点不了解,因此,如果能朝着正确的方向推动,我将不胜感激。

在Azure中将该应用注册为web应用,而不是本机应用。因为Firebase提供的URL是用于Web应用的。希望这有帮助

这个项目被封存了,所以我怀疑我是否会测试它,但听起来确实很有希望。谢谢我也在测试同样的问题,遇到了你的问题。最初我使用本机应用程序注册,但它不起作用。然后我有一个预感,为什么本地客户端会有一个https作为方案,而本地客户端通常使用包名作为方案,这对他们来说是唯一的,所以尝试将客户端注册为web应用程序,瞧,它工作了:)我认为登录成功后,它返回firebase重定向uri,然后返回应用程序。