Giter Site home page Giter Site logo

monkeyk / myoidc Goto Github PK

View Code? Open in Web Editor NEW
150.0 16.0 59.0 3.71 MB

基于OIDC协议的参考实现,根据各类库提供实现参考

Home Page: http://andaily.com/blog/?s=OIDC

License: Apache License 2.0

Java 30.24% HTML 69.76%
oidc openid openid-connect oauth2

myoidc's Introduction

#MyOIDC

openid

基于OIDC协议的参考实现,根据各类库提供实现参考.

提示:从v1.1.2版本开始最新的代码更新在Gitee上,访问地址 https://gitee.com/mkk/MyOIDC

OIDC(OpenID Connect), 下一代的身份认证授权协议; 当前发布版本1.0;
OIDC是基于OAuth2+OpenID整合的新的认证授权协议; OAuth2是一个授权(authorization)的开放协议, 在全世界得到广泛使用, 但在实际使用中,OAuth2只解决了授权问题, 没有实现认证部分,往往需要添加额外的API来实现认证; 而OpenID呢,是一个认证(authentication )的协议, 二者在实际使用过程中都有其局限性;
综合二者,即是OIDC; 通过OIDC,既能有OAUTH2的功能,也有OpenID的功能; 恰到好处… 查看完整介绍


OIDC 协议

Version: 1.0

英文原版: http://openid.net/specs/openid-connect-core-1_0.html

JSON Web Signature(JWS): https://tools.ietf.org/html/rfc7515

JSON Web Encryption(JWE): http://tools.ietf.org/html/draft-ietf-jose-json-web-encryption

JSON Web Key(JWK): https://tools.ietf.org/html/draft-ietf-jose-json-web-key-41

OIDC相关文章与介绍 http://andaily.com/blog/?s=OIDC


项目介绍

Maven项目, 字符编码: UTF-8; 基于TDD模式与DDD模式设计; 使用SpringBoot实现

使用的框架与版本号
  • JDK (1.8.0_40)

  • SprintBoot (2.1.4.RELEASE)

  • Sprint-Security-OAuth (2.3.5.RELEASE)

  • Jose4j (0.7.1)

  • MySQL (5.7)

模块说明

  • myoidc-server - OpenID Provider[OP] 认证授权服务端

  • myoidc-client - Relying Party[RP] 客户端


功能列表

介绍项目开发的计划与安排, 以及各个功能点

  • 编写各个OIDC实现库的使用DEMO

  • 参考OIDC协议实现具体的流程

  • 项目整体基于spring-oauth-server扩展实现


项目日志

  1. 2016-12-25 项目公开, 完善文档. 添加OIDC 库测试代码 Jose4JTest.java, NimbusJoseJwtTest.java

  2. 2016-07-12 开始尝试翻译OIDC协议为中文

  3. 2017-01-21 加入GitHub https://github.com/monkeyk/MyOIDC, Git@OSC地址 http://gitee.com/mkk/MyOIDC

    (与GitHub同步)
  4. 2018-02-04 开始1.1.0分支, 使用SprintBoot重构, 开始受折磨的技术

  5. 2020-03-10 1.1.0分支继续开发, 包括Endpoint API, 界面流程完善,EU,RP功能开发等; 详细查看文件others/development-log.txt

  6. 2020-04-16 1.1.0分支开发完成, v1.1.1开始分支

  7. 2020-06-03 1.1.1分支开发完成并发布, 开始v1.1.2分支


相关资源


国内OIDC 实践


拥抱OIDC…

myoidc's People

Contributors

dependabot[bot] avatar monkeyk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

myoidc's Issues

实际运行时报三个错

  1. client报Exception processing template "index": Error resolving template "index"
    server报数据库嵌入失败
    解决:经过排查发现,application.properties被编译在war包之外所致,注释掉client和server中pom.xml中的
<warSourceExcludes>*/classes/application.properties</warSourceExcludes>
<packagingExcludes>*/classes/application.properties</packagingExcludes>
  1. Could not resolve placeholder 'application.host' in value "${application.host}"
    解决(临时):将application.host从application.properties的值,直接替换到MyOIDCConfiguration中去

  2. mysql驱动报红
    解决:将pom内的mysql相关的runtime在IDEA内修改为compile

本来想提交pull request,但是又担心自己水平有限,让人贻笑大方,so提交issue望大牛给予点评。
我还是个菜鸟,正在找认证方面的资料,看到大牛的java源码实现,很受启发,待大牛可以多多共享,O(∩_∩)O谢谢!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.