更新时间 2017年1月 文档版本号 1.0.0 IDP-OIDCNativeApp公开使用,用于开发者集成参考。
北京九州云腾科技有限公司的IDP产品的口号是统一身份、安全便捷,而IDP单点登录iOS 能够实现IDP身份管家到第三方开发者应用的身份管理和单点登录。
如果对于IDP不熟悉的话,可以联系我们info@idsmanager.com,或者去我们公司的网站http://www.idsmanager.com 详细了解。IDP产品针对的是企业级用户,单点登录。我们为你提供了一个开源地demo应用IDP-OIDCNativeApp,在 MIT License 下可以随意参照修改。该demo应用使用xcode8.0和Swift 3.0开发,如果您的开发方式不一致,可能会导致未知错误。
集成OIDCNaitveApp之后,通过IDP身份管家实现如下效果(也可以集成我们的SDK将IDP身份管家替换成自己的APP):
1.通过IDP身份管家点击集成的OIDCNativeApp
2.选择您要单点登录的用户(如果只关联一个用户则直接跳转到OIDCNativeApp应用单点登录)
3.打开OIDCNativeApp并且根据你选择的用户实现单点登录
流程图:
第1步:登录IDP身份管家,点击需要打开的应用,请求IDP Server去获取Token
第2步:IDP Server返回rpToken和idToken给IDP身份管家(Token是客户端请求登录的凭证)
第3步:IDP身份管家通过URL跳转打开集成了OIDC Native App的APP,Web通过URL传递Token给客户端。
第4步:集成了OIDC Native App的APP通过解析URL获取传过来的rpToken、idToken
第5步:App通过获取到的rpToken、idToken,请求RP Server,进行登录请求
第6步:RP Server接收到请求后,去IDP Server验证rpToken、idToken
第7步:IDP Server 返回验证结果给RP Server
第8步:RP Server 处理IDP Server返回的结果,根据结果返回相对的结果给App
已实现的功能: 用OIDC的token验证方式从IDP身份管家跳转到第三方应用,并且获取到由应用:IDP身份管家 传来的参数信息,以在本地应用中无缝连接单点登录,直接进入登录状态。
系统版本支持: iOS9.0+
如有问题,请联系info@idsmanager.com,或致电 010-58732285。
使用IDPNativeApp一共有三步。
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
/******************************** 接收处理跳转传过来的参数 ******************************/
if url.scheme == "iOSOIDCNative" {
let notice = NSNotification.init(name: NSNotification.Name(rawValue: "LoginNotification"), object: nil)
NotificationCenter.default.post(notice as Notification)
UserDefaults.standard.set(self .getIdToken(infoURL: url as NSURL), forKey: "OIDCToken")
self.perform(#selector(postNotifation),with: nil,afterDelay: 0.1)
}
return true
}
func postNotifation() {
let notice = NSNotification.init(name: NSNotification.Name(rawValue: "OIDCAutomaticLogin"), object: nil)
NotificationCenter.default.post(notice as Notification)
}
3.如果从SP发起,去IDP授权后登录需要调用,IDPNativeAppSDK.open(),参数scheme是调起应用的URL Scheme,appType调起应用的类型,paramString参数: paramString格式: username=xxx&age=xxx&phonexxxx
IDPNativeAppSDK.open(scheme: "jiuzhou", appType: IDPNativeAppType.IDP_BasicNativeApp, paramString: "username=lisi&xxx=xxx){ (success) in
print(success)
}
4.获取单点登录的token,IDPNativeAppSDK.getIdToken(infoURL:"url")
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
IDPNativeAppSDK.getIdToken(infoURL: url as NSURL)
}
本方法会出当从IDP身份管家应用中跳转过来时候通过URL解析出需要的rpToken、idToken。
尝试build或运行。如果没有出错误的话,到这里SDK的安装就完成了,下面要介绍在Xcode中如何设置和使用SDK。如果在这一步出现错误的话,请删掉重复上面的步骤。您也可以打开我们的demo应用来看我们的集成结果,互相比较。
5 . 最后,在希望获取到用户的账户信息的地方,调用获得的参数发起接口请求(请参照服务器集成文档),如果需要多次使用用户信息,请自行保存。 到这里,Xcode中的设置和使用也已经全部完成,我们现在需要在IDP页面上为本应用配置信息。
IDP(Identity Provider)产品市场名称为:IDP身份管家,支持iOS和Android,在App Store和应用宝上可以下载到。该产品是IDP产品线的重要组成部分,配合网页端可以做到安全、便捷地统一管理和使用自己的账号身份信息。IDP身份管家对于本地应用的身份管理支持,是移动端实现统一所有网络身份的重要模块。IDP提供的本SDK,目的是为企业开发者提供一个可以接入IDP的方法,能够实现从IDP应用到第三方开发应用的账号管理和单点登录。 想要实现IDP的统一账号管理和单点登录,您所在的公司必须要正在使用IDP产品,并且您必须拥有管理员权限。开发者权限是不能够添加IDP-OIDCNativeApp应用的,请注意
1 . 在管理员的IDP界面中,点击添加应用,搜索OIDCNativeApp,这里看到的使我们提供的统一模板,我们使用这个模板,点击添加应用。(如果没有找到该模板,请与九州云腾联系)
2 . 继续填写需要添加的应用内容。 所属领域:请根据情况选择最合适的,这里的选项不会影响到应用的实现 iOS/Android Scheme URL iOS 的Scheme Url填写您在第二节第一步在Xcode中创建的URL Scheme 账号关联方式:这里选择您希望通过什么方式从IDP身份管家把用户的身份信息传递给你的应用,我们目前支持账号密码的方式和OIDC的token方式。本文档适用于OIDC的token方式
- 如果您在尝试使用IDPNativeApp这个Demo应用,请在运行OIDCNativeAp后点击注册按钮,并将注册好的信息填写在本步骤中。
我们从前到后,配置好了URL Scheme,在IDP网页端创建好了应用对应了URL Scheme,在授权给目标群组之后,在用户界面给该用户自己添加了目标应用的账号信息。
到此,您的应用应该能够使用IDP身份管家来管理和登录您的应用了!
如果您有宝贵的意见请随时与我们联系info@idsmanager.com 。我们会在未来为IDP使用者和开发者提供更完备的SDK功能,敬请期待!
北京九州云腾团队 2017年1月
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。