ios - Azure AD B2C 刷新 token /ID token iOS Swift 4

标签 ios swift azure azure-ad-b2c

我正在开发一个 iOS 应用程序,利用 ROPC 流程和 AADB2C 作为支持此功能的后端端点。 https://login.microsoftonline.com/{TENANTNAME}.onmicrosoft.com/oauth2/v2.0/token?p={ROPC 策略名称}

在客户首次成功登录时,我已成功请求和检索访问 token 刷新 token ID token 使用电子邮件/密码。

成功登录后,每次后续登录,我们都希望利用生物识别技术(触摸/面部 ID)。我的第一个想法是将刷新 token 存储在钥匙串(keychain)中,在强制用户输入他/她的电子邮件/密码之前检查是否存在刷新 token 。

如果 refreshToken 存在,那么我想我会使用 ?p=refresh_token 而不是 ?p 对 token 端点进行调用={INSERT ROPC Policy Name}如果我返回成功,那么我将使用触摸/面容 ID 登录。

我的另一个想法是只使用 token ID 进行身份验证。

因此我的问题有两个:

  1. 更好的做法是什么 - iOS native 应用程序使用刷新 token 或 ID token 。

  2. 我尝试过使用刷新 token ,将 {ROPC Policy Name} 参数替换为 ?p=refresh_token,但每次我尝试配置时请求时,我收到一条错误消息 “请求正文必须包含以下参数:'grant_type'” 我已添加“refresh_token”作为键 grant_type 的值,但该错误仍然出现。 -- 这是为什么?如果刷新 token grant_type 更好,我该如何解决这个问题。

最佳答案

你是对的。

您可以将刷新 token 保存到钥匙串(keychain),并通过面容 ID 或触摸 ID 保护此刷新 token 的使用。

The "Redeem a refresh token" sectionthe "Configure the resource owner password credentials flow in Azure AD B2C" document描述如何兑换为资源所有者策略颁发的刷新 token :

POST /{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token
&response_type=id_token
&client_id={client_id}
&resource={client_id}
&refresh_token={refresh_token}

关于ios - Azure AD B2C 刷新 token /ID token iOS Swift 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51682869/

相关文章:

ios - 更新到 Xcode 10.2 后 : Invalid Toolchain error when trying to submit app to App Store

ios - 如何使用 Swift 在 TableView 中显示 alamofire post 请求 json 值

ios - Xcode C 预处理器错误

.net - Azure Web应用程序超出最大请求长度

ios - Facebook UIActivityViewController 缺少取消和发布按钮

android - OneSignal 表示消息已发送但没有推送通知发送到设备

ios - 如何在使用 Swift 单击 UITableview 单元格之前检查 SearchController 是否处于事件状态

ios - 使用cornerRadius实现的圆形UIView看起来是 block 状的

vb.net - Azure Webforms 应用程序见解

powershell - 从 WebJob/WebApp 访问注册表