【发布时间】:2017-10-24 14:28:58
【问题描述】:
我正在构建一个原生 iOS 应用,它使用 OAuth 2.0/OIDC 进行身份验证和授权。身份验证服务器是身份服务器版本 4。
通过查看https://www.rfc-editor.org/rfc/rfc8252 等文档,我已经确定要使用的正确流程是“授权码”流程,即使我们拥有应用程序、身份验证服务器和资源。 我还了解到我们需要使用 SFSafariViewController 等安全浏览器,并且我们需要使用 PKCE 并记住在请求中使用“状态”键并在返回时进行验证。
我的问题是在 iOS 设备上验证 jwt。我按照 jwt.io 上的建议使用 https://github.com/kylef/JSONWebToken.swift
要验证 jwt 的有效性,我们需要检查它是否由我们的身份验证服务器签署。服务器使用异步 rs256 密钥进行签名,并在端点上公开公钥。 JSONWebToken.swift 不支持 rs256,我也找不到任何支持的 iOS 库,那么其他人如何在 iOS 设备上验证 jwt?我想我们可以切换到 JSONWebToken.swift 支持的 HS256,但这是一种同步算法,需要我们将密钥存储在不安全的设备上。
如何解决这个问题,肯定不是我一个人有这个问题...
【问题讨论】:
标签: ios swift encryption oauth-2.0 signing