我一直在对这个主题进行大量研究,但我对如何去做有点困惑。我的理解是这样的:
要将 Identity Server 4 与 android 应用程序一起使用,最好的方法是让 android 应用程序打开一个嵌入式浏览器实例,该实例将为用户呈现身份服务器登录页面,用户可以在其中登录。完成后,浏览器将关闭并且将在应用程序上调用一个方法来传递访问 api 和声明所需的令牌以及其他令牌。现在让我感到困惑的部分是我们要使用哪种类型的客户端来完成此任务以及该客户端的配置是什么样的?
这是我上面描述的图表,如果这是错误的,请随时纠正我。
我从中得到它的文章是:https ://datatracker.ietf.org/doc/html/draft-ietf-oauth-native-apps-09#section-4.1
我正在使用 nativescript 来构建我的应用程序并将其放在那里,因为我不确定这有多重要,所以如果您认为它确实如此,请说明原因。
隐式客户端用于 SPA 应用程序,这是我已经设置并使用我的 Angular 应用程序的客户端之一。现在我正试图让它与本机脚本应用程序一起工作,但我正在阅读的选项是GrantTypes.Hybrid
或者GrantTypes.Code
我发现的一些答案说我们应该使用混合,而其他人说我们应该使用代码,我是不确定哪个是正确的,为什么?
困扰我的另一件事是这在 android 应用程序上是如何安全的。使用 SPA 和隐式流程,我们定义了登录和注销 url,因此这些域被列入白名单,并且不能与任何其他域一起使用,从而使其安全。但是,对于 android 应用程序,这究竟是如何变得安全的?我不能在手机上存储秘密,因为任何人都可以将其挖掘出来,那么流程(混合或代码,取决于我想使用的)究竟如何保证它的安全?