SAML 2.0 認証タイプでは、証明書の作成およびサーブレットサーバー (Java ジェネレーターを使用) のセットアップに関する設定をいくつか行う必要があります。この記事では、考慮する必要のある手順を詳細に説明します。
これは、SAML 2.0 認証タイプの設定の [ 資格情報 ] タブの情報を完成させるのに役立ちます。
始めに、テスト目的の場合、有効な CA 証明書は不要であることに注意してください。自己署名証明書は必要です。
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
Agesic の場合、(
サービスプロバイダーから
ID プロバイダーへの) 要求の署名に使用される証明書には、次の特性を持つ必要があります:
-
RSA
-
鍵長: 2048
-
アルゴリズム: SHA256
-
フラグ: なし
SAML 2.0 認証タイプの設定の [ 資格情報の要求 ] セクションにある [
キーストアのパス ] プロパティで参照されるようにするために、秘密鍵を含むファイルの形式を .pfx に変更する必要があります。前述の手順で証明書の定義に使用するパスワードと同じものを使用します。
openssl pkcs12 -export -in certificate.pem -inkey key.pem -out certificate.pkcs12
SAML 2.0 認証タイプの設定の [ 資格情報の応答 ] セクションの設定には、Agesic によって提供される Agesic-Coesys-Testing.cer ファイルを使用してキーストアを作成する必要があることに注意してください。
cd c:\Program Files\Java\jdk1.8.0_20\jre\bin
keytool -importcert -trustcacerts -noprompt -storepass changeit -alias 1 -file c:\temp\Agesic-Coesys-Testing.cer
openssl pkcs12 -export -in certificate.pem -inkey key.pem > server.p12
keytool -importkeystore -srckeystore C:\temp\server.p12 -destkeystore server.jks -srcstoretype pkcs12
結果として、 [ 資格情報の応答 ] 設定の [
Trust Store Path ] プロパティ下で参照される .pks ファイルを取得します。
上記で説明されているように、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 を使用して、前述のように
keyresponse.jks を生成します。Java JDK を
こちらからダウンロードします。
まず、Okta によって提供される証明書をダウンロードし、keyresponse.jks
に変換します。
コマンドラインで、keytool アプリケーションがあるフォルダに移動します。
cd C:\Program Files\Java\jdk-18.0.2.1\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-18.0.2.1\bin
注: これは標準の場所です。インストールに応じて場所が異なる場合があります。
そのフォルダで以下のコマンドを実行します:
keytool -genkeypair -alias mycert -keyalg RSA -keysize 2048 -validity 3650 -keystore keystore.jks //TrustStore を生成するコマンド
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 で [ 資格情報の応答 ] にパスを入力します。
証明書およびエンコーディング