OAM 및 STS에서 키/인증서 관리 및 롤오버

소개

페더레이션 및 WS-Trust 프로토콜 상호 작용의 일부로 OAM/OSTS는 디지털 암호화를 통한 디지털 서명 및 기밀성을 사용하여 부인 및 무결성을 위해 PKI 키 및 인증서를 사용해야 합니다.

이 문서에서는 다음을 비롯한 키 및 인증서 관리에 대해 설명합니다.

Federation/WS-Trust 교환에서는 다음이 발생합니다.

XML 디지털 서명을 사용한 SAML 메시지 예:

 <samlp:Response ...>
   <saml:Issuer>https://idp.com</saml:Issuer>
   <samlp:Status>...</samlp:Status>
   <saml:Assertion ...>
     <saml:Issuer>https://idp.com</saml:Issuer>
     <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
       <ds:SignedInfo>
         <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-excc14n#"/>
         <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsasha1"/>
         <ds:Reference URI="#idhmf9KzAhxleuJ-L3vaVr979Ffa0">
           <ds:Transforms>
             <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#envelopedsignature"/>
             <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>           </ds:Transforms>
         <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
           <ds:DigestValue>JGvBqil/NXa6dlMOn5ZhmBbOie8=</DigestValue>
         </ds:Reference>
       </ds:SignedInfo>

 <ds:SignatureValue>VgOrU79ZJO4rzHiFTCDCGNmkb0...Y776QM4vEBBybIpbCCUih7I0aA==
 </ds:SignatureValue>
     </ds:Signature>
     <saml:Subject>
       <saml:NameID>alice@acme.com</saml:NameID>
       ...
     </saml:Subject>
     ...
     </saml:Assertion>
 </samlp:Response>

질의 문자열 서명이 있는 SAML 메시지의 예(일반적으로 SP에서 AuthnRequest를 사용하여 사용자를 IdP로 전송하는 데 사용됨):

https://idp.com/saml20sso?SAMLRequest=hZJRT8IwFIX%2FStP3sW5BTW7YEhRREtQFplHeytZBQ9fW3i7Kv3cUTdAHfL09t985J3eEvFUV47wR68tkqjRAeMto5DYajRNC8FQi%2BguX4YQ7pgIF1xpvKKEom%2FZ7U3EujM7r13iLEsaztoDItJVPjKhEQGW24QkHJbLtTFyuuS7bbsLVcpK92OmdN8XYb9SLETsw0eq59RlOWDCOWRikrkytIhsAuV5QU3x6upa6l3pw3vD6KEO7LsoiKp2VJyYtDrEhgN1JEee%2F5YjCHbKHqC335%2BWHSZ%2B9CVIQ2ku%2Fp%2FlPaxhKG8UnRo6uLDz2i7NJYZSs9mSslPm4cYJ7kVkf%2BCdRisq2UhR0zg%2FQn9fQ%2F4F&RelayState=id-mAK1whfUGrvoLqqhU2ysXLWSIw-&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=S5TZ0uwK9SMZUgBfDaipbNhlLqbbSG9t4rgA9n3%2FwxFsK7H66IoK6G%2BDfaIUvc5bLtTrwmxsa2iB2gjFx8pQ6%2FgH8OtFbT7mKZ7z8FihgxxTKjHJ2FQocOEn%2FrkcRKAAq%2Blig5xVSlR%2BzLq1vkQzIMNOrfLw%2FM6uk3i%2Fk

SAMLRequest: SAML AuthnRequest 메시지

RelayState: SAML 2.0 릴레이 상태 매개변수

SigAlg: 서명 알고리즘

Signature: SAMLRequest, RelayState 및 SigAlg 매개변수를 포함하는 서명 바이트

OAM/OSTS PKI 키 및 인증서는 $DOMAIN_HOME/config/fmwconfig/.oamkeystore Java 키 저장소 파일에 저장됩니다(: 이 키 저장소는 JKS가 아닌 JCEKS 유형이며 OAM/OSTS 설정은 .oamkeystore의 키 항목을 참조하므로 SAML 작업의 구성요소에서 사용할 수 있습니다.

설치

OAM의 설치 단계 중 키 쌍 및 자체 서명된 인증서가 생성되고 OAM/OSTS가 서명 및 해독 작업에 사용하도록 구성됩니다.

새 키 항목 설정

새 PKI 키 및 인증서를 OAM/OSTS에서 사용하기 전에 생성하는 프로세스는 두 가지입니다.

: 키 및 인증서는 .oamkeystore에 저장해야 합니다. HSM은 지원되지 않습니다.

.oamkeystore에서 새 키 항목 만들기

앞에서 언급했듯이 .oamkeystore 키 저장소의 암호는 관리자가 알 수 없으며 수정하려면 재설정해야 합니다. 이 작업은 WLST 명령을 통해 수행됩니다.

  1. $IAM_ORACLE_HOME/common/bin/wlst.sh를 실행하여 WLST 환경을 입력합니다.

  2. WLS 관리 서버(connect())에 연결합니다.

  3. 도메인 런타임 분기(domainRuntime())로 이동합니다.

  4. .oamkeystore 암호 resetKeystorePassword()를 재설정합니다.

  5. WLST 환경 exit()를 종료합니다.

.oamkeystore에서 새 키 항목을 생성하는 한 가지 방법은 JDK의 KeyTool 응용 프로그램을 사용하는 것입니다. 이 예에서는 자체 서명된 인증서가 있는 두 개의 키 항목(별칭 samlsigning이 있는 항목과 별칭 samlencryption이 있는 항목)이 생성됩니다(올바른 경로로 $JDK_HOME$DOMAIN_HOME 대체). 키 저장소 비밀번호의 경우 재설정 작업 중 선택한 항목을 입력합니다.

$JDK_HOME/bin/keytool -genkeypair -alias samlsigning -keyalg RSA -keysize 2048-sigalg sha1withrsa -dname cn="ACME SAML Signing" -validity 1000 -keystore $DOMAIN_HOME/config/fmwconfig/.oamkeystore -storetype JCEKS
$JDK_HOME/bin/keytool -genkeypair -alias samlencryption -keyalg RSA -keysize 2048 -sigalg sha1withrsa -dname cn="ACME SAML Encryption" -validity 1000-keystore $DOMAIN_HOME/config/fmwconfig/.oamkeystore -storetype JCEKS

OAM/OSTS 설정 업데이트 중

키 항목이 .oamkeystore에서 생성된 후에는 OAM/OSTS에서 새 SAML 키 항목을 생성해야 해당 키를 SAML 프로토콜 교환 중 사용할 수 있습니다.

OAM/OSTS에서 새 SAML 키 항목을 생성하려면 다음과 같이 하십시오.

  1. OAM 관리 콘솔(http(s)://oam-admin-host:oam-adminport/oamconsole)로 이동합니다.

  2. Configuration, Federation Settings or Security Token Service Settings로 이동합니다.

  3. 새 항목 생성:

    1. Keystore 섹션에서 "+" 버튼을 누릅니다.

    2. 새 항목의 KeyID를 입력합니다(예: saml-signing).

    3. .oamkeystore의 키 항목을 나열하는 드롭다운에서 새 키 항목의 별칭을 선택합니다(예: samlsigning).

    4. 이전 섹션에서 키를 생성할 때 설정한 키 항목에 대한 비밀번호를 입력합니다.

    5. 필요한 경우 다른 항목에 대해 이 프로세스를 반복합니다.

  4. 적용을 누릅니다.

그림 Federation_Settings.jpg 설명

주: 다른 키 ID는 OAM 키 저장소의 동일한 키 항목을 참조할 수 있습니다.

새 키 항목 사용

전역 설정

새 키와 인증서를 사용하여 SAML 메시지에 서명하고 해독하도록 전역 OAM 설정을 업데이트하려면 다음 작업을 수행하십시오.

  1. OAM 관리 콘솔(http(s)://oam-admin-host:oam-admin-port/oamconsole)로 이동합니다.

  2. 구성, 통합 설정으로 이동합니다.

  3. 키 항목의 드롭다운 목록에서 서명 키를 선택합니다(이러한 항목은 키 저장소 섹션에 정의되어 있음). 예를 들어, saml-signing를 선택합니다.

  4. 키 항목의 드롭다운 목록에서 암호화 키를 선택합니다(이러한 항목은 키 저장소 섹션에 정의되어 있음). 예를 들어, saml-encryption을 선택합니다.

  5. 적용을 누릅니다.

참고: 적용한 후 인증서 및/또는 SAML 2.0 메타데이터를 파트너에게 재분배해야 할 수 있습니다.

그림 Global_Settings.jpg 설명

새 키와 인증서를 사용하여 SAML 메시지를 해독하도록 전역 OSTS 설정을 업데이트하려면 다음 작업을 수행하십시오.

  1. OAM 관리 콘솔(http(s)://oam-admin-host:oam-adminport/oamconsole)로 이동합니다.

  2. Configuration, Security Token Service 설정으로 이동합니다.

  3. 키 항목의 드롭다운 목록에서 기본 암호화 템플리트를 선택합니다(이러한 항목은 Keystore 섹션에 정의됨). 예를 들어, samlencryption를 선택합니다.

  4. 적용을 누릅니다.

참고: 신청한 후 파트너에게 인증서를 다시 배포해야 할 수 있습니다.

그림 Security_Token_Service_Settings.jpg 설명

새 키와 인증서를 사용하여 SAML 메시지에 서명하도록 OSTS 설정을 업데이트하려면 다음 작업을 수행하십시오.

  1. OAM 관리 콘솔(http(s)://oam-admin-host:oam-admin- port/oamconsole)로 이동합니다.

  2. Security Token Service, Token Issuance Templates로 이동합니다.

  3. 업데이트할 SAML 발행 템플리트를 누릅니다.

  4. 보안 탭을 누릅니다.

  5. 키 항목의 드롭다운 목록에서 키 저장소 액세스 템플리트 ID 서명을 선택합니다. 이러한 항목은 키 저장소 섹션에 정의되어 있습니다. 예를 들어, saml-signing를 선택합니다.

  6. 적용을 누릅니다.

참고: 신청한 후 파트너에게 인증서를 다시 배포해야 할 수 있습니다.

그림 Issuance_Template.jpg 설명

파트너당 키 롤오버

OAM/OSTS 배치가 여러 파트너와 관련된 경우 전역 서명/암호화 키/인증서를 한 번에 변경하기 어려울 수 있습니다. 변경 사항과 동시에 모든 파트너에게 알리고 새 인증서/SAML 2.0 메타데이터로 구성을 업데이트해야 하기 때문입니다.

: OAM/OSTS에서 키/인증서를 업데이트한 후에는 시스템에 새 인증서를 업로드할 때까지 파트너와 통합/WS-Trust 플로우가 작동하지 않습니다.

OAM/OSTS는 파트너별로 키 롤오버를 쉽게 수행할 수 있는 방법을 제공하므로 OAM 관리자가 특정 파트너에게 키 및 인증서 변경을 알리는 방법과 시기를 계획할 수 있습니다.

참고: OAM 구성에서 파트너 프로파일을 사용하여 파트너 그룹을 통해 OAM 키 롤오버를 수행할 수 있습니다.

OAM 키 롤오버

특정 파트너에 대해 키 롤오버를 수행하는 경우 먼저 WLST 명령을 통해 OAM에서 IdP 또는 SP 파트너 구성을 업데이트해야 합니다.

  1. $IAM_ORACLE_HOME/common/bin/wlst.sh를 실행하여 WLST 환경을 입력합니다.

  2. WLS 관리 서버(connect())에 연결합니다.

  3. 도메인 런타임 분기(domainRuntime())로 이동합니다.

  4. 파트너 구성을 업데이트하여 서명 키 속성(signingkeystoreaccesstemplateid에서 참조)을 통합 설정 , 키 저장소 섹션에 정의된 키 항목 ID로 설정합니다(이 예에서는 saml-signing이 키 항목 ID이고, <PARTNER_NAME>을 OAM의 파트너 이름으로 바꾸고, <IDP_OR_SP>을 IDP 또는 SP(파트너 유형)로 바꿉니다).

  5. updatePartnerProperty("<PARTNER_NAME>", "<IDP_OR_SP>","signingkeystoreaccesstemplateid", "saml-signing", "string")
    
  6. encryptionkeystoreaccesstemplateid에서 참조하는 암호화 키 속성을 통합 설정 , 키 저장소 섹션에 정의된 키 항목 ID로 설정하도록 파트너 구성을 업데이트합니다(이 예에서는 saml-encryption이 키 항목 ID임, <PARTNER_NAME>를 OAM의 파트너 이름으로 바꾸기, <IDP_OR_SP>를 IDP 또는 SP(파트너 유형)로 바꾸기).
  7. updatePartnerProperty("<PARTNER_NAME>", "<IDP_OR_SP>", "encryptionkeystoreaccesstemplateid", "saml-encryption", "string")
    
  8. WLST 환경 exit()를 종료합니다.

파트너 구성이 업데이트되면 파트너는 SAML 2.0 메타데이터 또는 인증서 정보를 사용해야 합니다. 이 정보를 생성하려면 다음과 같이 하십시오.

예: http://oam.com/oamfed/idp/cert?id=saml-signing

참고: 파트너 구성을 업데이트하기 전에 먼저 SAML 2.0 메타데이터/인증서를 생성하고 파트너에게 제공할 수 있습니다.

OSTS 키 롤오버

OSTS 키 롤오버를 설명하려면 다음 예를 따르십시오.

롤오버는 RP1를 먼저 전환한 다음 RP2, RP3를 차례로 전환하여 해당 파트너가 새 saml-signing 인증서를 사용하도록 합니다.

RP1를 전환하려면 다음 작업을 수행해야 합니다.

  1. OAM 관리 콘솔(http(s)://oam-admin-host:oam-admin- port/oamconsole)로 이동합니다.

  2. Security Token Service, Partner Profiles, Relying Party Profiles로 이동합니다.

  3. RPprofileA의 복사본인 NewRPprofileA이라는 새 Relying Party 프로파일을 생성합니다.

  4. Security Token Service, Token Issuance Templates로 이동합니다.

  5. SAMLIssuanceA의 복사본인 NewSAMLIssuanceA이라는 새 SAML 발행 템플리트를 생성합니다.

  6. NewSAMLIssuanceA SAML 2.0 출고 템플리트를 참조하도록 NewRPprofileA을 업데이트합니다.

  7. 그림 New_RPProfile_A.jpg 설명

  8. 새 키 항목을 사용하도록 Security(보안) 탭에서 NewSAMLIssuanceA SAML 2.0 Issuance 템플리트를 업데이트합니다.
  9. 그림 New_SAMLIssuanceA.jpg 설명

  10. 보안 토큰 서비스, 파트너, 소유자로 이동합니다.

  11. RP1를 열고 NewRPprofileA Relying Party 프로파일을 사용하도록 구성합니다. 그러면 OSTS가 새 키 항목 saml-signing를 사용하여 RP1 Relying Party 파트너에 대한 발신 SAML 2.0 검증을 서명합니다.

  12. Configure_RP1.jpg에 대한 설명

  13. 브라우저를 열어 OSTS에서 새 인증서를 다운로드하고 다음 URL을 사용하여 PEM 형식으로 인증서를 생성합니다.
  14. http://oam-runtime-host:oam-runtime-port/sts/servlet/samlcert?id=<KEYENTRY_ID>

  15. ID 질의 매개변수는 인증서에 대한 키 항목 ID를 포함합니다.

  16. <KEYENTRY_ID>를 바꿉니다.

  17. 예: http://oam.com/sts/servlet/samlcert?id=saml-signing

  18. 파트너에게 인증서를 제공합니다.

새 Relying Party 프로파일 및 SAML 발행 템플리트가 이미 생성되었으므로 RP2을 새 인증서로 전환하는 것이 더 빠릅니다.

RP2를 전환하려면 다음 작업을 수행해야 합니다.

  1. OAM 관리 콘솔(http(s)://oam-admin-host:oam-adminport/oamconsole)로 이동합니다.

  2. 보안 토큰 서비스, 파트너, 소유자로 이동합니다.

  3. RP1를 열고 NewRPprofileA Relying Party 프로파일을 사용하도록 구성합니다. 그러면 OSTS가 새 키 항목 saml-signing를 사용하여 RP1 Relying Party 파트너에 대한 발신 SAML 2.0 검증을 서명합니다.

  4. 파트너에게 인증서를 제공합니다.

RP3를 새 인증서로 전환하면 RP3에 대한 새 Relying Party 프로파일 및 SAML 발행 템플리트가 아직 생성되지 않았으므로 RP1에 대해 실행된 작업이 반복됩니다.

주: OSTS 구성을 업데이트하기 전에 먼저 파트너에게 새 인증서를 제공할 수 있습니다.

추가 학습 자원

docs.oracle.com/learn의 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 접근할 수 있습니다. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer로 전환할 수 있습니다.

제품 설명서는 Oracle Help Center를 참조하십시오.