SAML 2.0 認証タイプでは、証明書の作成およびサーブレットサーバー (Java ジェネレーターを使用) のセットアップに関する設定をいくつか行う必要があります。この記事では、考慮する必要のある手順を詳細に説明します。
これは、SAML 2.0 認証タイプの設定の [ 資格情報 ] タブの情報を完成させるのに役立ちます。
始めに、テスト目的の場合、有効な CA 証明書は不要であることに注意してください。自己署名証明書は必要です。
最も頻繁に使用される ID プロバイダー用の証明書を生成する方法を以下にいくつか例示します。一部の例では、生成方法は環境 (Java または .NET Framework) によって分かれますが、生成される証明書の拡張子 (Java の場合は .jks、.NET Framework の場合は .pkcs12、.p12 および .pfx) は、ID プロバイダーに依存せず、直接環境に関係します。
注: これらは最も頻繁に使用される ID プロバイダーのうちほんの一部の例に過ぎず、ここで説明されていないケースで IDP 証明書を取得する方法については、開発者が自ら調べる必要があります。
openssl req -newkey rsa:2048 -keyout key.pem -x509 -days 365 -out certificate.pem
結果として、秘密鍵を含む key.pem および公開鍵を含む certificate.pem が得られます。
Agesic の場合、公開鍵を含むファイルの形式を .crt (Agesic に送信する証明書) に変更する必要があります:
openssl x509 -outform der -in certificate.pem -out certificate.crt
(
サービスプロバイダーから
ID プロバイダーへの) 要求の署名に使用される証明書には、次の特性を持つ必要があります:
-
RSA
-
鍵長: 2048
-
アルゴリズム: SHA256
-
フラグ: なし
SAML 2.0 認証タイプの設定の [ 資格情報の要求 ] セクションにある [
キーストアのパス ] プロパティで参照されるようにするために、秘密鍵を含むファイルの形式を .pfx に変更する必要があります。前述の手順で証明書の定義に使用するパスワードと同じものを使用します。
openssl pkcs12 -export -in certificate.pem -inkey key.pem -out certificate.pkcs12
その後、certificate.pkcs12 の名前を certificate.pfx に変更します。
Java では .pfx 証明書をキーストア内で参照する必要があるため、.pfx 証明書を作成するには、以下のステップに従ってください:
$>cd C:\Program Files\Java\jdk-11\bin
$>keytool -genkeypair -alias gamrequest -keyalg RSA -keystore keystorerequest.jks -keysize 2048 -validity 365 -storepass changeit
$>keytool -genkeypair -alias gamrequest -keyalg RSA -keysize 2048 -validity 3650 -keystore keystorerequest.jks
これらのコマンドの後、/bin に keystorerequest.jks ファイルが作成され、このファイルに .pfx 証明書を追加します。
この certificate.pfx を作成したキーストアに追加するためには、次のコマンドを使用します:
$> keytool -importkeystore -srckeystore certificate.pfx -srcstoretype PKCS12 -destkeystore keystorerequest.jks -deststoretype JKS
このコマンドが実行されると、keystorerequest.jks 内でエイリアス 1 の certificate.pfx が参照されます。
注: .pfx 証明書のエイリアスは 1 で、このエイリアスは GAM Backoffice の要求設定で使用されるものです。
SAML 2.0 認証タイプの設定の [ 資格情報の応答 ] セクションの設定には、Agesic によって提供される Agesic-Coesys-Testing.cer ファイルを使用してキーストアを作成する必要があることに注意してください。
cd c:\Program Files\Java\jdk1.8.0_20\jre\bin
keytool -importcert -trustcacerts -file Agesic-Coesys-Testing.cer -alias gamagesic -keystore agesicResponse.jks
結果として、 [ 資格情報の応答 ] 設定の [
Trust Store Path ] プロパティ下で参照される .cer ファイルを取得します。
これらの手順をすべて終えたら、Agesic の SAML 20 認証タイプの TAB 証明書は以下のようになります:
上記で説明されているように、OpenSSL を使用して、キーペアを生成できます。
資格の要求については、この記事の「資格情報の要求」セクションを参照してください。SAP と Agesic の両方で考慮する必要があります。
応答を読み取るために、SAP によって提供される証明書を X509 形式に変換する必要があります。これには、
SAML Tools を使用できます。
結果を .pem ファイルに保存します。
それから、次を実行します:
cd C:\Program Files\Java\jdk1.8.0_162\bin
keytool -import -file C:\cert\sapkey.pem -keystore C:\cert\sapkeystore.jks
次を実行することによって、新しいエイリアスを生成できます:
-alias newAlias
資格情報の要求
まずキーストアを生成する必要があります。
コマンドラインで、keytool アプリケーションがあるフォルダに移動します。
cd C:\Program Files\Java\jdk-11\bin
注: これは標準の場所です。インストールに応じて場所が異なる場合があります。
そのフォルダで以下のコマンドを実行します:
keytool -genkeypair -alias youralias -keyalg RSA -keystore keystorerequestokta.jks -keysize 2048 -validity 365 -storepass changeit
keytool -genkeypair -alias youralias -keyalg RSA -keysize 2048 -validity 3650 -keystore keystorerequest.jks
生成されたキーは keystore.jks ファイルに格納されます。myalias、keystore.jks、mypassword、その他の値を、要件に従って必ず置き換えてください。
keytool を使用して、前述のように
keyresponse.jks を生成します。Java JDK を
こちらからダウンロードします。
まず、Okta によって提供される証明書をダウンロードし、keyresponse.jks
に変換します。

コマンドラインで、keytool アプリケーションがあるフォルダに移動します。
cd C:\Program Files\Java\jdk-11\bin
注: これは標準の場所です。インストールに応じて場所が異なる場合があります。
そのフォルダで以下のコマンドを実行します:
keytool -importcert -trustcacerts -file C:\...\okta.cert -alias alias -keystore keystoreresponse.jks
注: -file で入力する okta.cert のパスは、証明書が格納されている場所に応じて変わります。-alias と -keystore は開発者次第です。
その後、file.jks が現在のディレクトリーに作成されます。
.NET では、Java KeyStore を使用できません。
keytool を使用して、前述のように
keyresponse.jks を生成します。Java JDK を
こちらからダウンロードします。
まずキーストアを生成する必要があります。
コマンドラインで、keytool アプリケーションがあるフォルダに移動します。
cd C:\Program Files\Java\jdk-11\bin
注: これは標準の場所です。インストールに応じて場所が異なる場合があります。
そのフォルダで以下のコマンドを実行します:
keytool -genkeypair -alias mycert -keyalg RSA -keysize 2048 -validity 3650 -keystore keystore.jks //KeyStore を生成するコマンド
keytool -genkeypair -alias myalias -keyalg RSA -keystore keystore.jks -keysize 2048 -validity 365 -storepass mypassword -keypass mypassword //キーを生成するコマンド
生成されたキーは keystore.jks ファイルに格納されます。myalias、keystore.jks、mypassword、その他の値を、要件に従って必ず置き換えてください。
まず、Azure によって提供される証明書をダウンロードし、keyresponse.jks
に変換します。
keytool -importcert -trustcacerts -file C:\...\Azure.cert -alias alias -keystore keystoreresponse.jks
注: -file で入力する Azure.cert のパスは、証明書が格納されている場所に応じて変わります。-alias と -keystore は開発者次第です。
その後、file.jks が現在のディレクトリーに作成されます。
.NET および .NET Framework を使用する場合、Java のトラストストアを使用できません。
コマンドラインで、keytool アプリケーションがあるフォルダに移動します。
cd C:\Program Files\Java\jdk-18.0.2.1\bin
注: これは標準の場所です。インストールに応じて場所が異なる場合があります。
そのフォルダで以下のコマンドを実行します:
keytool -genkey -alias alias -keystore keystore.p12 -storetype PKCS12 -keyalg RSA -storepass yourpass -validity 730 -keysize 4096
このコマンドは、keystore.p12 ファイルを生成します。

その後、GAM Backoffice で [ 資格情報の応答 ] にパスを入力します。
証明書およびエンコーディング