2.7.2.1 SAMLの証明書更新
SAMLは証明書を用いることで、通信相手の正当性を検証することができます。
連携する外部IdPが正しい通信相手かを検証するためには、SAMLの接続設定の[署名の検証]項目を有効にし、外部IdPの証明書をOps Iに登録してください。
証明書は期限があるため、定期的に更新する必要があります。以下で、証明書の更新手順について説明します。
SAMLの接続設定の詳細については「SAMLの接続設定手順」と「SAMLの追加」を参照してください。
以下に、登録済みの証明書の更新手順について示します。
はじめて証明書を登録する場合は、上図の手順①②③を実施してください。
登録する値は、IdP metadata(XMLファイル)の"X509Certificate"を登録します。この形式は証明書のPEM形式の実体部分(ヘッダー、フッター、改行なし)と同じです。カンマ区切りにすることで、複数の証明書を登録することが可能なので、この手順では新しい証明書と古い証明書の両方が登録されている状態にしてください。
IdP metadataと証明書の例は「IdP metadataの例」を参照してください。
注意事項
証明書更新手順では必ず、新しい証明書に更新が完了してから古い証明書の削除を行ってください。先に古い証明書を削除してしまうと、証明書が不一致になりOps Iへ接続できなくなります。
<IdP metadataの例>赤字部分が証明書になります。
<md:EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://example.com/realms/idp">
<md:IDPSSODescriptor WantAuthnRequestsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<ds:KeyInfo>
<ds:KeyName>P5deVpzD88c0h1u7qg63_fXXBdfiX_th1i-kfTLeEIU</ds:KeyName>
<ds:X509Data>
<ds:X509Certificate>MIIBcjCCARygAwIBAgIUV33C54RMqKxEuWAJ9rdLhNuYNmEwDQYJKoZIhvcNAQELBQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjQwNzIyMDczNTEyWhcNMjUwNzIyMDczNTEyWjAWMRQwEgYDVQQDDAtleGFtcGxlLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCtqVE02E/C6uYsORGampLbJBLTFcYN88mG7TjRNbC8+kOtP56/9LpkHQESoKjt9FTMHCbp3UYkLg2yuq0ctPgXAgMBAAGjQjBAMB0GA1UdDgQWBBRGJbvX/33QesFamto70nGRj0IgETAfBgNVHSMEGDAWgBRGJbvX/33QesFamto70nGRj0IgETANBgkqhkiG9w0BAQsFAANBAEynz092ohuQi/ZLbfzbNDYw5EGuqPFpV/7JXiegd928TpeyOf69mvpnGSg0VTNog4jppyt7uWZAtqsG4KLLYmQ=</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://example.com/realms/idp/protocol/saml/resolve" index="0"></md:ArtifactResolutionService>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://example.com/realms/idp/protocol/saml"></md:SingleLogoutService>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://example.com/realms/idp/protocol/saml"></md:SingleLogoutService>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://example.com/realms/idp/protocol/saml"></md:SingleLogoutService>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://example.com/realms/idp/protocol/saml"></md:SingleLogoutService>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://example.com/realms/idp/protocol/saml"></md:SingleSignOnService>
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://example.com/realms/idp/protocol/saml"></md:SingleSignOnService>
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://example.com/realms/idp/protocol/saml"></md:SingleSignOnService>
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://example.com/realms/idp/protocol/saml"></md:SingleSignOnService>
</md:IDPSSODescriptor>
</md:EntityDescriptor>