• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

IDP2-OIDC-NativeApp-Android: OIDC Native APP Android

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

IDP2-OIDC-NativeApp-Android

开源软件地址:

https://gitee.com/bjzyt/IDP2-OIDC-NativeApp-Android

开源软件介绍:

OIDC_Native_SDK-Android开发文档

1简介

1.1目的

本文档旨在为Android开发者提供详细的OIDC_Native_SDK集成指南。其中包含Jar包导入指南、资源导入指南、API说明和调用示例等。OIDC_Native_SDK+RP Server可以实现在IDP身份管家直接打开指定APP实现免密码登录。

1.2范围

本文档用于期望集成九州云腾OIDC_Native_SDK的开发人员,为其提供简明清晰的集成指南,让他们能迅速将OIDC_Native_SDK集成到自己的OIDC协议的项目中。

1.3实现原理

输入图片说明

第1步:登录IDP身份管家,在免登应用中点击需要打开的应用,请求IDP Server去获取rpToken,idToken

第2步:IDP Server校验身份,返回rpToken,idToken给IDP身份管家(rpToken,idToken是客户端请求登录的凭证)

第3步:IDP身份管家通过URL跳转打开集成了OIDC_Native_SDK的APP,IDP身份管家通过URL传递rpToken,idToken给客户端。

第4步:集成了OIDC_Native_SDK的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

2准备工作

2.1服务端添加应用

输入图片说明Android FacetId为AndroidMainfest中配置的,请按照配置的要求进行配置。服务端要与客户端保持一致

2.2添加账号关联

输入图片说明子账号:关联APP的登录账号

3集成指南

3.1导入SDK包

复制libsoidc_native_sdk1.0.jar到工程libs/目录下

3.2配置AndroidManifest.xml

申请访问网络权限

<uses-permission android:name="android.permission.INTERNET" />

在OIDC协议类型的APP中,设置启动Acitivity的启动模式

android:launchMode="singleTask"

在要启动的Activity中添加一个过滤器,用于和IDP身份管家进行交互,数据传递。android:scheme的值为Android FacetId,请和服务器端保持一致。

 <intent-filter>    <action android:name="android.intent.action.VIEW" />    <category android:name="android.intent.category.DEFAULT" />    <category android:name="android.intent.category.BROWSABLE" />    <!--请保持和服务端配置相同     scheme为长度不超过12位的英文字母组成的字符串-->    <data        android:host="OIDCNativeApp"        android:scheme="自定义" /> </intent-filter>

注:Android FacetId=(android:scheme)的值即自定义的内容 (自定义数据为长度不超过12位的英文字母组成的字符串)

3.3工程中添加代码

初始化OIDC_Native_SDK

在自己定制的Application的onCreate()方法中添加代码进行OIDC_Native_SDK的初始化。只要添加之后便可以使用OIDC_Native_SDK的全部功能了。

RpSSOApi.init(getApplicationContext());

获取rpToken,idToken

执行图中第4步的操作, App在注册的Activity 中解析URL获取rpToken,idToken,vpnVendor,(当前应用使用了VPN功能,则vpnVendor为VPN的厂商名称)获取rpToken,idToken,vpnVendor后进行登录请求。

在onCreate方法中获取。(集成APP无任何后台进程时,获取rpToken,idToken)

Intent intent = getIntent();if (intent !=null) {    Uri uri = intent.getData();    if (uri != null) {       String rpToken = uri.getQueryParameter("rpToken");       String idToken = uri.getQueryParameter("idToken");       String vpnVendor= uri.getQueryParameter("vpnVendor");      }   }

在onNewIntent方法中获取。(集成APP在后台打开时,获取rpToken,idToken,vpnVendor)

@Overrideprotected void onNewIntent(Intent intent) {  super.onNewIntent(intent);  setIntent(intent);  Uri uri = intent.getData();  if (uri != null) {    String rpToken = uri.getQueryParameter("rpToken");    String idToken = uri.getQueryParameter("idToken");    String vpnVendor= uri.getQueryParameter("vpnVendor");  }}

注:rpToken,idToken为验证的重要依据,,请配合服务端的RP Server进行第5步登录请求,登录时rpToken,idToken,必须放到到请求的header中

public static Map<String, String> getHostAuthHeader(String token, String idToken) {        Map<String, String> params = new ArrayMap<>();        params.put("Authorization", "bearer " + token);        params.put("idToken", idToken);        return params;    }

4API

初始化OIDC_Native_SDK

public static void init(Context context)

参数说明:Context context : 应用的context方法说明:init只需要在应用程序启动时调用一次即可,这样就可以使用OIDC_Native_SDK的所有功能了。

5代码混淆

如果您启用了代码混淆,请在您的 proguard-rules.pro 中添加以下代码

-keep class com.idsmanager.ssosublibrary.** { *;}-dontwarn com.idsmanager.ssosublibrary.**

6系统版本支持

目前SDK 支持 Android 4.0及以上版本的手机。如需更多技术支持,请联系[email protected],或致电 010-58732285。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap