问题描述
我正在玩Microsoft Azure,并使用OAuth2从Flutter应用程序登录。我正在使用flutter_appauth插件登录,并且已经按照该插件说明中的说明设置了自定义URI方案。就我而言,我正在使用com.onmicrosoft.example.mytestapp://oauth/redirect
。
一切正常,我可以登录并获得ID令牌,但还有一点令人困惑:在Microsofts documentation中,它表示:
对于本机和移动应用程序,应使用默认值
https://login.microsoftonline.com/common/oauth2/nativeclient
该URI也是Azure门户中为我的应用程序自动创建的URI之一。在我的移动应用中使用它不起作用-但使用自定义方案则可以。使用该URI代替我的自定义方案URI更好吗?如果可以,如何将其与Flutter应用程序配合使用?
解决方法
如您所说,
自定义方案URI是最常见的选项,通常与AppAuth一起使用。如果使用的是旧的(不建议使用的)Webview登录名,但被某些提供商(例如Google)阻止,则只能使用Microsoft回调URL。
安全的纯视角
最近的Financial Grade APIs Recommendations建议声明HTTPS方案作为更高安全性应用程序的首选移动选项。
在这种情况下,您需要拥有HTTPS域,并通过在线资产文件将其链接到移动应用程序的数字签名。当然,您不能对Microsoft URL执行此操作。
矿山资源
我的博客上有有关使用AppAuth声明HTTPS方案的更多信息,包括您可以在本地PC上运行的代码示例,以防您需要进一步检查。但是,实现起来很困难: