【问题标题】:Which grant type should I use Identityserver4 and Xamarin mobile我应该使用 Identityserver4 和 Xamarin mobile 的哪种授权类型
【发布时间】:2019-04-13 17:07:59
【问题描述】:

我想在我的 Xamarin 应用程序中使用 identityserver4 用户验证。但我无法决定将哪种授权类型用于本机应用程序。

  • 授权码
  • 隐式

并且访问令牌有过期日期。如何获得新令牌?我应该在移动应用程序中使用用户名和密码吗?

【问题讨论】:

  • 对于原生应用,推荐的流程是带PKCE的授权码。您可以阅读 Brock Allen 的这篇精彩文章,其中他解释了本机/spa 应用程序的当前状态:brockallen.com/2019/01/03/…

标签: xamarin identityserver4


【解决方案1】:

authorzation_code + PKCE是原生应用的必备流程。

在 Identity Server 中,配置客户端时,设置:

RequirePkce = true 启用 PKCE

RequireClientSecret = false -- 不需要密钥,PKCE 替换它

AllowOfflineAccess = true 启用请求Refresh token 的可能性(用于在旧令牌过期后请求新令牌的时间码)

这里是 an article,描述 Xamarin 配置。 我在 Xamarin 的官方身份验证模块中看到了用于刷新令牌支持的扩展 package,但不幸的是,看起来 MS 不再向前推进了。 This official article 快​​ 2 岁了,this question 还没有任何答案。 This sample 使用替代库(来自 IdSrv 套件)。

【讨论】:

  • 实现新用户注册的最佳方式是什么?我们应该在应用程序内还是在 IDP 上进行?是否可以自动登录用户发布注册? stackoverflow.com/questions/60187173/…@d_f
  • 任何客户端应用程序显然不如具有服务器提供的同站点会话 cookie 的网页安全。但是新用户注册并不是一种最敏感的操作。无论如何,当您在 Web 视图中执行注册时,最终在同一上下文中登录会更容易(您的客户端可以使用参数启动该过程作为普通登录,因此重新获得控制权,它甚至感觉不到不同之处)。不过,这只是我的想法,最终的解决方案是你的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-22
  • 2019-04-13
  • 2021-03-17
  • 2018-07-05
  • 2017-06-10
  • 2021-09-06
  • 1970-01-01
相关资源
最近更新 更多