2.7.2.1 SAMLの証明書更新

SAMLは証明書を用いることで、通信相手の正当性を検証することができます。
連携する外部IdPが正しい通信相手かを検証するためには、SAMLの接続設定の[署名の検証]項目を有効にし、外部IdPの証明書をOps Iに登録してください。
証明書は期限があるため、定期的に更新する必要があります。以下で、証明書の更新手順について説明します。 SAMLの接続設定の詳細については「SAMLの接続設定手順」と「SAMLの追加」を参照してください。

(図)SAMLの証明書更新の手順

(図)SAMLの証明書更新の手順 (図)SAMLの証明書更新の手順

以下に、登録済みの証明書の更新手順について示します。
はじめて証明書を登録する場合は、上図の手順①②③を実施してください。


① 外部IdP管理者は更新用の証明書を新たに作成します。作成方法については使用する外部IdPのマニュアルを参照してください。

② 外部IdP管理者は、手順①で作成した証明書をOps Iセキュリティ管理者に提供します。

③ Ops Iセキュリティ管理者は手順②で提供された証明書を、接続設定の[検証用のX509証明書]に登録します。
登録する値は、IdP metadata(XMLファイル)の"X509Certificate"を登録します。この形式は証明書のPEM形式の実体部分(ヘッダー、フッター、改行なし)と同じです。カンマ区切りにすることで、複数の証明書を登録することが可能なので、この手順では新しい証明書と古い証明書の両方が登録されている状態にしてください。
IdP metadataと証明書の例は「IdP metadataの例」を参照してください。

④ 外部IdPの管理者は、外部IdPの証明書を新しい証明書に更新します。

⑤ Ops Iセキュリティ管理者は、手順③で接続設定の[検証用のX509証明書]に登録したままの古い証明書を削除します。

注意事項注意事項

証明書更新手順では必ず、新しい証明書に更新が完了してから古い証明書の削除を行ってください。先に古い証明書を削除してしまうと、証明書が不一致になり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>