• 关于SAML2的一些记录


    这次项目的SAML2被要求加入了x509证书认证,真的是巨坑,网上都没有系统说明的资料。

    首先,用openssl生成x509的证书,然后把证书文本放在要导入服务器的xml中,这里就有两个坑:

    1. 生成证书的时候密码一定要是6位的,因为openssl生成证书的时候密码可以低于6位,但是keytool不让!,你用Java程序使用SAML的时候,大部分框架是需要提供jks格式的证书文件的,你在把openssl生成的证书转成jks的时候,密码就要改成6位了,这时你已经导入到服务器上了,就凉了!
    2. 我因为密码只使用了4位,所以被迫使用框架 java-saml,因为这个框架可以把证书内容用文本的格式写在配置文件上!其他的都扑街,4位密码导致我无法生成jks,那pac4j和opensaml这两个都用不了了,所以只能用java-saml。

    然后,这里有个重要的概念,就是你发给idp(统一认证服务器)端的xml配置文件里会有一段x509的证书文本,同时idp端反馈给你的xml配置文件中也有一段x509的配置文本。这个本来很好理解,双方握手嘛。但是!咋用啊,谁用谁啊?这里就要注意了,sp(你的应用程序)端向idp端发送请求的时候,是要用你提供给idp的xml文件里的证书文本的,而不是idp反馈给你的xml文件里的证书文本。同理,idp返回给你的信息里的是它提供给你的证书文本,这个感觉反了,但是人家就是这么用的,咱也不敢问。

    在使用java-saml这个框架的时候,初始化Auth()这个方法有时会报配置项缺失的错误,莫慌,根据异常点进源码里看看就可以了。因为网上的一些实例很不负责任,配置文件写的都不对,所以最好还是自己点进去看看,正确的配置项key应该是什么,就OK了。比如 onlogin.saml2.idp.entityid,网上就写成了 onlogin.saml2.IDP.entityid。这样运行的时候就会报这个配置项缺失,你说恶心不。

  • 相关阅读:
    MyEclipse配置输出控制台信息至文本文件里
    IOS开发证书显示“此证书的签发者无效”解决方法
    leetcode之Find All Numbers Disappeared in an Array
    自己定义控件三部曲视图篇(二)——FlowLayout自适应容器实现
    浅谈BloomFilter【上】基本概念和实现原理
    mybatis 常用的jabcType与javaType对应
    springboot WebMvcConfigurerAdapter替代
    动态insert mybatis与ibatis
    动态set mybatis与ibatis的写法
    springboot 配置mybatis打印sql
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/14899226.html
Copyright © 2020-2023  润新知