プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Access Management管理者ガイド
11g リリース2 (11.1.2.3) for All Platforms
E61950-08
目次へ移動
目次

前
次

53.4 サード・パーティJWTべアラー・アサーションのためのOAuthサービスの構成

OAuthサービスでは、サード・パーティ(Oracle以外)のJWTアサーションを受け入れます。ただし、サード・パーティの証明書をOAuthサービスのサービス・プロファイル・キーストアに追加することによって、信頼関係を構成する必要があります。OAuthサービスは、キーストアを使用してJWTアサーションのデジタル署名を検証します。

専用の署名証明書を必要とするサービス・プロファイルに対して、それぞれ別々のキーストアを作成します。この項の内容は次のとおりです。

53.4.1 デフォルトのサービス・プロファイル・キーストア

DefaultDomainに作成されたデフォルトのサービス・プロファイル(OAuthServiceProfile)では、Oracle Access Managementに組み込まれているJavaキーストア(JKS)を使用します。

サービス・プロファイルの役割は、「サービス・プロファイル - Identity FederationおよびOAuthサービス」を参照してください。OAuthServiceProfileは次のファイルから構成されています。

表53-6 デフォルトOAuth JKSキーストア・ファイルおよび設定ファイル

ファイル パス

JKSキーストア・ファイル

$DOMAIN_HOME/config/fmwconfig/default-keystore.jks

キーストア設定ファイル

$DOMAIN_HOME/config/fmwconfig/jps-config.xml

ノート:

Oracle Web Services Managerは、default-keystore.jksサービスも使用します。詳細は、「Oracle Web Services Managerのキーストア(default-keystore.jks)について」を参照してください。

次のJava keytoolコマンドを使用して、デフォルト・キーストア(default-keystore.jks)内のすべての秘密キーと証明書の情報を一覧にすることができます。

keytool -list -keystore default-keystore.jks

ノート:

キーストアの変更は自動的にリフレッシュされないため、新しいキーがOAMキーストアに追加されたら、OAMサーバーを再起動する必要があります。

53.4.2 Oracle Enterprise Manager Fusion Middleware Controlコンソールによる資格証明の検索

Oracle Enterprise Manager Fusion Middleware Controlコンソールでキーストア資格証明を検索できます。

キーストア資格証明を検索するには、次のようにします。

  1. Oracle Enterprise Manager Fusion Middleware Controlコンソールにログインします。

    http://host_name.domain_name:port_number/em

  2. 「WebLogicドメイン」→「<domain name>」に移動します。

    <domain name>は、情報が格納されているドメインの名前です。

  3. 右側の「WebLogicドメイン」をクリックします。
  4. 「システムMBeanブラウザ」→「com.oracle.jps」→「Server:oam_server1」→「JPS資格証明ストア」を選択します。
  5. JPS資格証明ストアMBean→「操作」→「getPortableCredentialMap」に移動します。
  6. p1パラメータをoracle.wsm.securityとして入力します。
  7. 「起動」をクリックします。
  8. 「Data Element2」を展開します。

    パスワード値が表示されます。

53.4.3 サービス・プロファイル用の非デフォルト・キーストアの作成

サービス・プロファイル用にデフォルト以外のキーストアを作成できます。

この項のステップは、次のとおりです。

ノート:

この手順で変更を行った場合は、OAMサーバーを再起動する必要があります。

53.4.3.1 サード・パーティの証明書を格納する別のキーストアの作成

Java JDKとともに配布されるkeytoolユーティリティを使用して、新しいJavaキーストア(JKS)を作成できます。

新しいJKSを作成するには、次のようにします。

  1. $JDK_HOME/jdk/binに移動し、プロンプトを開きます。
  2. 次のようにkeytoolを使用して、キーのペアを生成します。

    keytool -genkeypair -keyalg RSA -dname dname

    -alias aliasname -keypass key_password -keystore keystore

    -storepass keystore_password -validity days_valid

    説明:

    • dnameは、aliasに関連付けられるX.500識別名であり、自己署名証明書のissuerフィールドとsubjectフィールドとして使用されます。正しい書式であるかぎり、どのような文字列であっても構いません(cn=spaces,dc=example,dc=comなど)。

    • aliasnameは、新しいキーストアのエントリを識別する短縮名です。

    • key_passwordは、新しい公開キーのパスワードです。

    • keystoreはキーストアの名前です(oauth-xyz-keystore.jksなど)。

    • keystore_passwordは、キーストア・パスワードです。

    • days_validは、証明書の有効日数です(1064など)。

    キーストアの作成

    keytool -genkeypair -keyalg RSA -dname "cn=spaces,dc=example,dc=com" 
    -alias oauthkey -keypass password123 -keystore oauth-xyz-keystore.jks 
    -storepass passwordxyz -validity 1064
    

53.4.3.2 キーストアへの証明書のロードまたはインポート

keytoolユーティリティを使用して、証明書をキーストアにインポートできます。

証明書をインポートするには、次のようにします。

  1. keytoolコマンドを使用して、次のコマンドをタイプします。

    keytool -importcert -alias aliasname -file certfile

    -keystore keystore -storepass keystore_password

    説明:

    • aliasnameは、キーストアを識別する短縮名です。

    • certfileは、ロードする証明書を格納しているファイルです。

    • keystoreはキーストアの名前です(oauth-xyz-keystore.jksなど)。

    • keystore_passwordは、キーストア・パスワードです。

    証明書のロード

    keytool -importcert -alias oauthkey_123 -file samplekey.cer -keystore oauth-xyz-keystore.jks -storepass passwordxyz
    

53.4.3.3 jps-config.xmlへのキーストア・インスタンスの追加

OAMがキーストアとキーを正しく読み取れるように、キーストア・サービスを構成して資格証明ストアを更新できます。

jps-config.xmlキーストア設定ファイルにて、<serviceInstances>エレメントに次の新規キーストア・サービス・インスタンスを追加します。

  1. テキスト・エディタでキーストア設定ファイルを開きます。

    $DOMAIN_HOME/config/fmwconfig/jps-config.xml

  2. keystore.provider Providerに対する<serviceInstances>ノードを探して、次の内容を追加します。
    <serviceInstance name="<service-instance-name>" provider="keystore.provider" location="<keystore-location>">
      <property name="keystore.provider.type" value="db"/>
      <property name="keystore.sig.csf.key" value="sign-csf-key"/>
      <property name="keystore.enc.csf.key" value="enc-csf-key"/>
      <property name="keystore.csf.map" value="oracle.oauth.security"/>
      <property name="keystore.pass.csf.key" value="keystore-csf-key"/>
      <property name="keystore.type" value="JKS"/>
      <propertySetRef ref="props.db.1"/>
    </serviceInstance>
    

    説明:

    • service-instance-name = 任意のservice-instance-name

    • keystore-location = キーストア・ファイルに対するパス

    jps-config.xmlの更新

    <serviceInstance name="oauth-xyz-keystore.db" provider="keystore.provider" location="./oauth-xyz-keystore.jks">
      <property name="keystore.provider.type" value="db"/>
      <property name="keystore.sig.csf.key" value="sign-csf-key"/>
      <property name="keystore.enc.csf.key" value="enc-csf-key"/>
      <property name="keystore.csf.map" value="oracle.oauth.security"/>
      <property name="keystore.pass.csf.key" value="keystore-csf-key"/>
      <property name="keystore.type" value="JKS"/>
      <propertySetRef ref="props.db.1"/>
    </serviceInstance>
  3. <jpsContexts>ノードを探して、新しいサービス・インスタンスをデフォルトのコンテキスト・セクションに追加します。(既存のサービス・インスタンスが削除しないでください。)次の例に、oauth-xyz-keystore.dbサービス・インスタンス(前のステップで定義済)に対する<serviceInstanceRef>エレメントのref付きの追加を示します。

    新しいサービス・インスタンスの追加

    <jpsContexts default="default">
      <jpsContext name="default">
         <serviceInstanceRef ref="oauth-xyz-keystore.db"/>
         ... other serviceInstanceRef elements ...
      </jpsContext>

53.4.3.4 キーストア・サービス・インスタンス用のCSFエントリの作成

WLSTコマンドを使用して、必要な資格証明ストア・フレームワーク(CSF)エントリを作成できます。

WLSTコマンドは次のとおりです。完了したらサーバーを再起動します。

createCred(map="oracle.wsm.security", key="sign_csf_key", user="alias_name", password=keystore_password, desc="Description of the signing key credential")

createCred(map="oracle.wsm.security", key="enc_csf_key", user="alias_name", password=keystore_password, desc="Description of the encryption key credential")

createCred(map="oracle.wsm.security", key="keystore_csf_key", user="oauth", password=keystore_password, desc="Description of the keystore credential")

説明:

  • sign_csf_key = 署名するキーのパスワード

  • alias_name = キーのエイリアス名

  • keystore_password = キーストア・パスワード

  • enc_csf_key = 暗号化キーのパスワード

  • keystore_csf_key = キーストアのパスワード

資格証明ストアのエントリの作成

createCred(map="oracle.wsm.security", key="oauth-sign-csf-key", user="ms-oauth-key", password=passwordxyz, desc="Signing key credential")

createCred(map="oracle.wsm.security", key="oauth-enc-csf-key", user="ms-oauth-key", password=passwordxyz, desc="Encryption key credential")

createCred(map="oracle.wsm.security", key="keystore_csf_key", user="oauth", password=passwordxyz, desc="Keystore credential")

53.4.3.5 サービス・プロファイルへのプロバイダ・サービス名の追加

更新された構成をサービス・プロファイルに適用できます。

サード・パーティ・サービス用のOAuthサービス・プロファイルをまだ作成していない場合には、「サービス・プロファイルの作成」を参照してください。

  1. 「アイデンティティ・ドメインのOAuthサービス・コンポーネントの構成」の説明に従って、「アイデンティティ・ドメイン」ページにアクセスし、編集するアイデンティティ・ドメインをクリックして開きます。
  2. 「サービス・プロファイル」タブをクリックします。
  3. 表内でサービス・プロファイル名をクリックします。
  4. 「属性」セクションを開きます。
  5. keystore.service名を使用して、「属性」表に例 52–4「新しいサービス・インスタンスの追加」で構成したキーストア・サービス情報を追加します。次のスクリーンショットを参照してください。

53.4.4 サード・パーティJWTの信頼できる発行者の構成

特定のJSON Webトークン(JWT)発行者をサポートするためにOAuthサービスを構成できます。

この構成に基づいて、OAMサーバーでトークン、拇印(x5t)およびキー識別子を検証できるように、信頼できるすべての発行者を定義する必要があります。同じ要求、ヘッダー値および別名で信頼できるエントリがですでに使用可能な場合は、そのエントリが使用されます。

  1. 「アイデンティティ・ドメインのOAuthサービス・コンポーネントの構成」の説明に従って、「アイデンティティ・ドメイン」ページにアクセスし、編集するアイデンティティ・ドメインをクリックして開きます。
  2. 「サービス・プロファイル」タブをクリックします。
  3. 表内でサービス・プロファイル名をクリックします。

    この例では、OAuthServiceProfileです。

  4. 「構成設定」セクションを展開し、「信頼できる発行者」タブをクリックします。
  5. 次を構成して「適用」をクリックします。
    • 証明書の別名

    • 信頼できる発行者のURL

    • 証明書の別名のキー識別子(KID)。

    • X.509証明書の拇印

図53-4は、「信頼できる発行者」が「構成設定」見出しに定義されている、OAuthサービスのサービス・プロファイル構成ページのスクリーンショットです。これには信頼できる発行者が3つ構成されており、次のものがこれらの構成に該当します。

  • 信頼できる発行者が"www.example1.com"、キッド・ヘッダーが"mykey"、およびx5tヘッダーがないアサーションがリクエストにある場合、"trustpartner1"の別名の証明書がランタイムで使用されます。

  • 信頼できる発行者が"www.example2.com"、x5tヘッダーの値が"s7RzuzdlJrDyvMS9ntyvMS9ntZt"、およびキッド・ヘッダーがないアサーションがリクエストにある場合、"trustpartner2"の別名の証明書がランタイムで使用されます。

  • 信頼できる発行者が"www.example.corp.com"、キッド・ヘッダーの値が"corpkey"、およびx5tヘッダーの値が"cYJ4pHYJrDYvMS9ntZts7Rzuzdl"のアサーションがリクエストにある場合、"trustpartner3"の別名の証明書がランタイムで使用されます。

図53-4 OAuthサービスのサービス・プロファイル構成ページ

図53-4の説明が続きます
「図53-4 OAuthサービスのサービス・プロファイル構成ページ」の説明