当前位置:网站首页>SAML2.0 笔记(一)
SAML2.0 笔记(一)
2022-07-02 03:02:00 【CoffeeAndIce】
一、前言
总体上是网上的资料太过功利主义,窥一斑而不知全身。让人理解的比较困难,其实是一个很正常的对接方式,由于资料的杂乱导致了学习成本的飙升,是不应该的。也为了不让自己再次踩坑,markdown!!
大概使用两个章节来描述
章节一: 了解基本概念和对应对接模式及其方案简要
章节二: 基于java 代码以示例形式讲演三种基本工作模式及中途可能遇到的错误总结
二、初识概念
整体上是运用证书公私钥加密解密对数据和传输过程内容加密的一个方式,我运用到的当下仅有SSO。
1、SP & IDP 的概念
Service Provider(SP): 向用户提供正式商业服务的实体,通常需要认证一个用户的身份;
真正提供服务的 实体,比如提供交互,提供业务接口
Identity Provider(IDP): 提供用户的身份鉴别,确保用户是其所声明的身份;
类似于鉴权授权服务去理解就好了
2、认识元数据
生成IDP元数据: https://www.samltool.com/idp_metadata.php生成SP元数据: https://www.samltool.com/sp_metadata.php
示例基于本地环境,所以以本地ip+私有证书为组合以作为说明
2.1 IDP MetaData
下列是依据
目录2.4证书形成的基础元数据
<?xml version="1.0"?>
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" validUntil="2022-06-23T02:54:04Z" cacheDuration="PT1656384844S" entityID="https://coffeeandice/demo/idp">
<md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIICYjCCAcugAwIBAgIBADANBgkqhkiG9w0BAQ0FADBOMQswCQYDVQQGEwJ1czESMBAGA1UECAwJR3Vhbmdkb25nMRQwEgYDVQQKDAtkZWxheW5vbW9yZTEVMBMGA1UEAwwMY29mZmVlYW5kaWNlMB4XDTIyMDYyMTAyMzgxNloXDTIzMDYyMTAyMzgxNlowTjELMAkGA1UEBhMCdXMxEjAQBgNVBAgMCUd1YW5nZG9uZzEUMBIGA1UECgwLZGVsYXlub21vcmUxFTATBgNVBAMMDGNvZmZlZWFuZGljZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7f1NEx2PSPlwU0GCAUFIeUq3WRKRaRQwlprKJ1STRuC54v9SlG404H1vI5JNRYOZ1wmMPh2YuCuWQW0VrJqOJTMXGvXpKzktYUzCB+LhcSGpe2SLheaivb/npkb73Kh9XbdtHVTK7a1rZySo0QovCresVnpxiPbZiazHEsMET3cCAwEAAaNQME4wHQYDVR0OBBYEFBjIdQPNJGwwpG5txEz8U9PGVHX7MB8GA1UdIwQYMBaAFBjIdQPNJGwwpG5txEz8U9PGVHX7MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQENBQADgYEAQEpTrrbdyZ8RBDWBQ3HKDzmF23VhXk/6SR3kUNy4qGkP0i/M9iujVvoOG7yEuZb1d178HrZjG/x7mQsXSAS3DzBwOrZKuUq5s8fdxtG93VgkeSKkN9nyaC7WkePNR25CN5PY8v1SblY0aIfdCEbdMBW6G/QLQjVI726UVhqBvMI=</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:KeyDescriptor use="encryption">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIICYjCCAcugAwIBAgIBADANBgkqhkiG9w0BAQ0FADBOMQswCQYDVQQGEwJ1czESMBAGA1UECAwJR3Vhbmdkb25nMRQwEgYDVQQKDAtkZWxheW5vbW9yZTEVMBMGA1UEAwwMY29mZmVlYW5kaWNlMB4XDTIyMDYyMTAyMzgxNloXDTIzMDYyMTAyMzgxNlowTjELMAkGA1UEBhMCdXMxEjAQBgNVBAgMCUd1YW5nZG9uZzEUMBIGA1UECgwLZGVsYXlub21vcmUxFTATBgNVBAMMDGNvZmZlZWFuZGljZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7f1NEx2PSPlwU0GCAUFIeUq3WRKRaRQwlprKJ1STRuC54v9SlG404H1vI5JNRYOZ1wmMPh2YuCuWQW0VrJqOJTMXGvXpKzktYUzCB+LhcSGpe2SLheaivb/npkb73Kh9XbdtHVTK7a1rZySo0QovCresVnpxiPbZiazHEsMET3cCAwEAAaNQME4wHQYDVR0OBBYEFBjIdQPNJGwwpG5txEz8U9PGVHX7MB8GA1UdIwQYMBaAFBjIdQPNJGwwpG5txEz8U9PGVHX7MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQENBQADgYEAQEpTrrbdyZ8RBDWBQ3HKDzmF23VhXk/6SR3kUNy4qGkP0i/M9iujVvoOG7yEuZb1d178HrZjG/x7mQsXSAS3DzBwOrZKuUq5s8fdxtG93VgkeSKkN9nyaC7WkePNR25CN5PY8v1SblY0aIfdCEbdMBW6G/QLQjVI726UVhqBvMI=</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://coffeeandice/idp/sso/"/>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://coffeeandice/idp/sso/"/>
</md:IDPSSODescriptor>
</md:EntityDescriptor>
2.1.1 SingleLogoutService
顾名思义登出端点,通常可以考虑点
Location对应url为'/'结尾:
对应请求地址:https://coffeeandice/idp/sso/SingleLogoutService
Location对应url非'/'结尾:
对应请求地址:https://coffeeandice/idp/sso/logout
<!-- 以'/'结尾 -->
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://coffeeandice/idp/sso/"/>
<!-- 非'/'结尾 -->
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://coffeeandice/idp/sso/logout"/>
2.1.2 SingleSignOnService
顾名思义登入端点,通常可以考虑点
Location对应url为'/'结尾:
对应请求地址:https://coffeeandice/idp/sso/SingleSignOnService
Location对应url非'/'结尾:
对应请求地址:https://coffeeandice/idp/sso/signon
<!-- 以'/'结尾 -->
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://coffeeandice/idp/sso/"/>
<!-- 非'/'结尾 -->
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://coffeeandice/idp/sso/signon"/>
2.2 SP MetaData
下列是依据
目录2.4证书形成的基础元数据
<?xml version="1.0"?>
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" validUntil="2022-06-23T05:49:54Z" cacheDuration="PT604800S" entityID="https://coffeeandice/demo/sp">
<md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIICYjCCAcugAwIBAgIBADANBgkqhkiG9w0BAQ0FADBOMQswCQYDVQQGEwJ1czESMBAGA1UECAwJR3Vhbmdkb25nMRQwEgYDVQQKDAtkZWxheW5vbW9yZTEVMBMGA1UEAwwMY29mZmVlYW5kaWNlMB4XDTIyMDYyMTAyMzgxNloXDTIzMDYyMTAyMzgxNlowTjELMAkGA1UEBhMCdXMxEjAQBgNVBAgMCUd1YW5nZG9uZzEUMBIGA1UECgwLZGVsYXlub21vcmUxFTATBgNVBAMMDGNvZmZlZWFuZGljZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7f1NEx2PSPlwU0GCAUFIeUq3WRKRaRQwlprKJ1STRuC54v9SlG404H1vI5JNRYOZ1wmMPh2YuCuWQW0VrJqOJTMXGvXpKzktYUzCB+LhcSGpe2SLheaivb/npkb73Kh9XbdtHVTK7a1rZySo0QovCresVnpxiPbZiazHEsMET3cCAwEAAaNQME4wHQYDVR0OBBYEFBjIdQPNJGwwpG5txEz8U9PGVHX7MB8GA1UdIwQYMBaAFBjIdQPNJGwwpG5txEz8U9PGVHX7MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQENBQADgYEAQEpTrrbdyZ8RBDWBQ3HKDzmF23VhXk/6SR3kUNy4qGkP0i/M9iujVvoOG7yEuZb1d178HrZjG/x7mQsXSAS3DzBwOrZKuUq5s8fdxtG93VgkeSKkN9nyaC7WkePNR25CN5PY8v1SblY0aIfdCEbdMBW6G/QLQjVI726UVhqBvMI=</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:KeyDescriptor use="encryption">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIICYjCCAcugAwIBAgIBADANBgkqhkiG9w0BAQ0FADBOMQswCQYDVQQGEwJ1czESMBAGA1UECAwJR3Vhbmdkb25nMRQwEgYDVQQKDAtkZWxheW5vbW9yZTEVMBMGA1UEAwwMY29mZmVlYW5kaWNlMB4XDTIyMDYyMTAyMzgxNloXDTIzMDYyMTAyMzgxNlowTjELMAkGA1UEBhMCdXMxEjAQBgNVBAgMCUd1YW5nZG9uZzEUMBIGA1UECgwLZGVsYXlub21vcmUxFTATBgNVBAMMDGNvZmZlZWFuZGljZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7f1NEx2PSPlwU0GCAUFIeUq3WRKRaRQwlprKJ1STRuC54v9SlG404H1vI5JNRYOZ1wmMPh2YuCuWQW0VrJqOJTMXGvXpKzktYUzCB+LhcSGpe2SLheaivb/npkb73Kh9XbdtHVTK7a1rZySo0QovCresVnpxiPbZiazHEsMET3cCAwEAAaNQME4wHQYDVR0OBBYEFBjIdQPNJGwwpG5txEz8U9PGVHX7MB8GA1UdIwQYMBaAFBjIdQPNJGwwpG5txEz8U9PGVHX7MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQENBQADgYEAQEpTrrbdyZ8RBDWBQ3HKDzmF23VhXk/6SR3kUNy4qGkP0i/M9iujVvoOG7yEuZb1d178HrZjG/x7mQsXSAS3DzBwOrZKuUq5s8fdxtG93VgkeSKkN9nyaC7WkePNR25CN5PY8v1SblY0aIfdCEbdMBW6G/QLQjVI726UVhqBvMI=</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://coffeeandice/sp/logout"/>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://coffeeandice/sp/consumer" index="1"/>
</md:SPSSODescriptor>
</md:EntityDescriptor>
2.2.1 SingleLogoutService
顾名思义登出端点,通常可以考虑点
Location对应url为'/'结尾:
对应请求地址:https://coffeeandice/sp/SingleLogoutService
Location对应url非'/'结尾:
对应请求地址:https://coffeeandice/sp/logout此处与IDP不一样的是
实际上是我们调用了IDP的退出登录地址,然后IDP才通知我们的退出登录端点
<!-- 以'/'结尾 -->
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://coffeeandice/sp/"/>
<!-- 非'/'结尾 -->
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://coffeeandice/sp/logout"/>
2.2.2 AssertionConsumerService
响应端点,通常为传递登录SSO后的响应地址,用于SP判断登录的状态响应。
Tips: 在artifact 模式下,还需要等候发送ArtifactResolve以获取响应讯息
Location对应
url为'/'结尾:
对应请求地址:https://coffeeandice/sp/SingleLogoutService
Location对应url非'/'结尾:
对应请求地址:https://coffeeandice/sp/consumer
<!-- 以'/'结尾 -->
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://coffeeandice/sp/"/>
<!-- 非'/'结尾 -->
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://coffeeandice/sp/consumer"/>
2.3 通用节点
2.3.1 EntityId
示例:
https://coffeeandice/demo/trust
整体上要求是需要http 或https开头,并不需要可访问性,只作为唯一识别标识存在
推荐格式:
1、能以https 相对规范,虽然没有强制必要
2、仅用域名加目录形式,建议为了区分sp和idp,示例中trust可以变更为sp或idp
3、后缀无需再以’/'结尾
其他推荐: https://spaces.at.internet2.edu/display/federation/saml-metadata-entityid
2.3.2 KeyDescriptor
这里指的是用于校验时加密解密的证书,对应use分别会以
signing及encryption说明。
其值通常对应2.4.2 cert,用于加密对比值,当IDP开启WantAuthnRequestsSigned配置后。
若IDP/SP开启WantAuthnRequestsSigned 配置设置为true
则元数据通常会多出dom元素 ds:DigestValue 及ds:SignatureValue
2.3.3 NameIDFormat
针对
NameIDPolicy,用于交互时可以支持返回的校验主题。一般是SP元数据与IDP元数据共同支持的任一则NameID` 策略。通常常用存在8种模式:(大多数情况我们只需要1、2、3即可)
1、未定义模式:Unspecifiedurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
2、邮箱地址模式:Email Addressurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
3、证书中subject 名称模式:X.509 Subject Nameurn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName
4、windows域名模式:Windows Domain Qualified Nameurn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName
5、Kerberos 主体名称模式:Kerberos Principal Nameurn:oasis:names:tc:SAML:2.0:nameid-format:kerberos
6、实体标识符模式(通常指代entityid):Entity Identifierurn:oasis:names:tc:SAML:2.0:nameid-format:entity
7、持久化标识符模式:Persistent Identifierurn:oasis:names:tc:SAML:2.0:nameid-format:persistent
8、临时标识符模式:Transient Identifierurn:oasis:names:tc:SAML:2.0:nameid-format:transient
2.4 示例采用证书
2.4.1 private key
# private key
-----BEGIN PRIVATE KEY-----
MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAO39TRMdj0j5cFNB
ggFBSHlKt1kSkWkUMJaayidUk0bgueL/UpRuNOB9byOSTUWDmdcJjD4dmLgrlkFt
FayajiUzFxr16Ss5LWFMwgfi4XEhqXtki4Xmor2/56ZG+9yofV23bR1Uyu2ta2ck
qNEKLwq3rFZ6cYj22YmsxxLDBE93AgMBAAECgYAHUTVwdAU2yiyQ8r+riDVRPWHb
xD1iTLOdvc6fXPNWR4yPlSgV1jmb+V9UaagkjgJJ4UpFkqVibDyncFItR2c9YGFw
wj2iEBnSc3fK8tcysRhb2zzjqP0DYRWusrxlqkx+yVQcIVSgNA3J7SqWsKuu6Vbh
54QEQGqwgz1JgUSMSQJBAPtyXNEP3K+O2g8ja3xtkeNhcrDDKRLBIhDmrmxWZJJ9
i9F3bh/OeN5dJhx5qibEGFrvYZWAqn8l14cEK3CiWiMCQQDyTI3oEg7rttnpWzkY
jdlco6Qh1npRcgOYgjPk7NGQ1WAWH63A5WSWZMaQcLn525BHa52P9NZIERWia4cT
nVidAkA7NE9Ebm6w63rOi7F4R7hNCJnfouQd5VmnDxnMqn7duy/brzo/xPbSrK4X
kFIO9Kcjai/Y6sW6UGeyA7pSt/dvAkAtUNYFfkMeIJ+WvkHqbrUlV1GeJn/P9bPo
dQmBmi0DmnSTDq+vcPekDQr5/qs5qK/OO7lHMDJXXiKest+bcoUdAkB8pV+HuKHi
YXkE1tgb4jSN0fxEVikidp05RF3FVOFqvS3DvIIEtQtvfIduQ4nAY28+iy1st/lZ
Dp7VsGJjTQnz
-----END PRIVATE KEY-----
2.4.2 x509.cert (通常意义上的证书)
# x509.cert
-----BEGIN CERTIFICATE-----
MIICYjCCAcugAwIBAgIBADANBgkqhkiG9w0BAQ0FADBOMQswCQYDVQQGEwJ1czES
MBAGA1UECAwJR3Vhbmdkb25nMRQwEgYDVQQKDAtkZWxheW5vbW9yZTEVMBMGA1UE
AwwMY29mZmVlYW5kaWNlMB4XDTIyMDYyMTAyMzgxNloXDTIzMDYyMTAyMzgxNlow
TjELMAkGA1UEBhMCdXMxEjAQBgNVBAgMCUd1YW5nZG9uZzEUMBIGA1UECgwLZGVs
YXlub21vcmUxFTATBgNVBAMMDGNvZmZlZWFuZGljZTCBnzANBgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEA7f1NEx2PSPlwU0GCAUFIeUq3WRKRaRQwlprKJ1STRuC54v9S
lG404H1vI5JNRYOZ1wmMPh2YuCuWQW0VrJqOJTMXGvXpKzktYUzCB+LhcSGpe2SL
heaivb/npkb73Kh9XbdtHVTK7a1rZySo0QovCresVnpxiPbZiazHEsMET3cCAwEA
AaNQME4wHQYDVR0OBBYEFBjIdQPNJGwwpG5txEz8U9PGVHX7MB8GA1UdIwQYMBaA
FBjIdQPNJGwwpG5txEz8U9PGVHX7MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEN
BQADgYEAQEpTrrbdyZ8RBDWBQ3HKDzmF23VhXk/6SR3kUNy4qGkP0i/M9iujVvoO
G7yEuZb1d178HrZjG/x7mQsXSAS3DzBwOrZKuUq5s8fdxtG93VgkeSKkN9nyaC7W
kePNR25CN5PY8v1SblY0aIfdCEbdMBW6G/QLQjVI726UVhqBvMI=
-----END CERTIFICATE-----
2.4.3 CSR
-----BEGIN CERTIFICATE REQUEST-----
MIIBjTCB9wIBADBOMQswCQYDVQQGEwJ1czESMBAGA1UECAwJR3Vhbmdkb25nMRQw
EgYDVQQKDAtkZWxheW5vbW9yZTEVMBMGA1UEAwwMY29mZmVlYW5kaWNlMIGfMA0G
CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDt/U0THY9I+XBTQYIBQUh5SrdZEpFpFDCW
msonVJNG4Lni/1KUbjTgfW8jkk1Fg5nXCYw+HZi4K5ZBbRWsmo4lMxca9ekrOS1h
TMIH4uFxIal7ZIuF5qK9v+emRvvcqH1dt20dVMrtrWtnJKjRCi8Kt6xWenGI9tmJ
rMcSwwRPdwIDAQABoAAwDQYJKoZIhvcNAQENBQADgYEAZSuIubccAOLVf99u7Djo
K5glaXRo9TMl6EOaVlJLWf07s+FrtDwJr9g/SuYssXptpnzhETg6yQIMpubHxkuz
JFFA/GUeN+WOC9BXPKR1HE5CyxKTLYFhzmTcZ4yXh0b32COrQgeP8xEYz4Cmvt1z
ontjVJM5FdrvpdqP2AAn2DI=
-----END CERTIFICATE REQUEST-----
3、常用工作模式
3.1 SP redirect 模式 + IDP post响应模式
整体上:账户讯息都由IDP掌控,减少了SP可能掌握信息的可能性
SP首先判断用户是否存在登录标识符
①存在: 直接读取标识符登入
②不存在:
Step 1:基于SP元数据生成SP方的SAMLRequest 内容,用于重定向到IDP的SSO登录地址,等待IDP重定向到其登录介面
Step 2: 登录授权确定后,基于SP元数据利用post方式返回 SAMLResponse内容响应结果

3.2 SP post 模式 + IDP post 模式
整体上:相对信任SP方,存在泄露信息的可能性
SP也是判断用户是否存在登录标识符
①存在:直接读取标识符登入
②不存在:
Step 1:SP 可以定义登录介面,用于客户登录,然后将表单连同内容发送给 IDP
Setp 2: 登录授权确定后,基于SP元数据利用post方式返回 SAMLResponse内容响应结果

3.3 SP redirect artifact + IDP redirect artifact
整体上:与第一种方式相似,但传输讯息的方式通常采用soap,更为安全(也可以不用),需要开启 artifact service 服务
SP还是判断用户是否存在登录标识符
①存在:直接读取标识符登入
②不存在:
Step 1:基于SP元数据生成SP方的SAMLRequest 内容,用于重定向到IDP的SSO登录地址,等待IDP重定向到其登录介面
Step 2:登录授权后,IDP 利用 redirect 方式传递artifact 给SP
Step 3:SP 接受到artifact 后组合拼接一个ArtifactResolve向IDP元数据中定义的artifact service端点发送请求,等待返回ArtifactResponse

三、其他内容讯息
1、OpenSAML选取版本问题
由于OpenSAML 4.0只支持JDK11,使用3.x版本即为JDK 8 最终解。
2、为什么要选取OpenSAML
我们不必重新造一次轮子,使用
OpenSaml可以方便我们对SAML协议的大部分内容,基础的 第三种对接模式最起码是支持的。
3、MetaData 中密钥对生成建议
3.1 建议使用域名DV
也可以使用OV客户端,具体情况可以参考客户情况(因为自签名证书的issuer和signature基本是一致的)
3.2 密钥长度选择(2048)
建议使用2048,实际上1024是不安全的,同时若需要使用到代理(例如nginx等),则1024是不会被openssl允许通过
4、对接前置内容
对应证书生成的jks 理应由IDP提供
或SP方自行生成后提供 cert证书给IDP方
边栏推荐
- Design details of SAP e-commerce cloud footernavigationcomponent
- Leetcode question brushing (10) - sequential question brushing 46 to 50
- Soul app released the annual report on generation Z behavior: nearly 20% of young people love shopping in the vegetable market
- What is the function of the headphone driver
- SAP ui5 beginner tutorial 19 - SAP ui5 data types and complex data binding
- 寻找重复数[抽象二分/快慢指针/二进制枚举]
- [question 008: what is UV in unity?]
- Actual battle of financial risk control - under Feature Engineering
- [reading notes] programmer training manual - practical learning is the most effective (project driven)
- QT implementation interface jump
猜你喜欢

Start a business

Vsocde has cli every time it is opened js

Après le mariage

Jvm-01 (phased learning)
![[staff] restore mark (Introduction to the use of restore mark | example analysis of Metaphone mark and restore mark)](/img/21/7bbf276b01f5a1056a22f5afc0af26.jpg)
[staff] restore mark (Introduction to the use of restore mark | example analysis of Metaphone mark and restore mark)

2022-2028 global soft capsule manufacturing machine industry research and trend analysis report

About DNS

Redis cluster

Xiaomi, a young engineer, was just going to make soy sauce

Connected block template and variants (4 questions in total)
随机推荐
The number one malware in January 2022: lokibot returned to the list, and emotet returned to the top
离婚3年以发现尚未分割的共同财产,还可以要么
Qualcomm platform wifi-- WPA_ supplicant issue
寻找重复数[抽象二分/快慢指针/二进制枚举]
GB/T-2423. XX environmental test documents, including the latest documents
2022-2028 global human internal visualization system industry research and trend analysis report
[JS reverse series] analysis of a customs publicity platform
[learn C and fly] 3day Chapter 2 program in C language (exercise 2.3 calculate piecewise functions)
多线程查询,效率翻倍
【无标题】
A list of job levels and salaries in common Internet companies. Those who have conditions must enter big factories. The salary is really high
es面试题
Xiaomi, a young engineer, was just going to make soy sauce
Discussion on related configuration of thread pool
PHP notes - use Smarty to set public pages (include, if, else, variable settings)
Batch detect whether there is CDN in URL - high accuracy
Leetcode question brushing (10) - sequential question brushing 46 to 50
Questions d'entrevue
3124. Word list
JVM interview