OAM 및 STS에서 키/인증서 관리 및 롤오버
소개
페더레이션 및 WS-Trust 프로토콜 상호 작용의 일부로 OAM/OSTS는 디지털 암호화를 통한 디지털 서명 및 기밀성을 사용하여 부인 및 무결성을 위해 PKI 키 및 인증서를 사용해야 합니다.
이 문서에서는 다음을 비롯한 키 및 인증서 관리에 대해 설명합니다.
-
새 키와 인증서 생성
-
새 키와 인증서를 사용하도록 OAM 및 OSTS 구성
-
파트너별로 키 롤오버 구현
-
파트너에게 새 인증서 배포
Federation/WS-Trust 교환에서는 다음이 발생합니다.
-
OAM/OSTS는 자체 PKI 키 및 인증서를 사용하여 SAML 메시지에 대한 서명 및 해독 작업을 수행합니다.
-
송신 SAML 메시지 및 검증(XML 디지털 서명 또는 질의 문자열 서명)에 서명합니다.
-
수신 SAML 검증 해독(XML 디지털 암호화)
-
OAM/OSTS는 파트너의 서명 또는 암호화 인증서를 사용하여 다음을 수행합니다.
-
수신 SAML 메시지 및 검증(XML)에서 서명 확인
-
발신 SAML 검증(선택사항) 암호화(XML 디지털 암호화)
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가 서명 및 해독 작업에 사용하도록 구성됩니다.
-
OAM 설치 프로그램이 무작위 비밀번호로 .oamkeystore를 생성합니다(해당 비밀번호를 재설정하는 방법은 "새 키 항목 설정" 섹션 참조).
-
stsprivatekeyalias이라는 새 키 항목이 생성됩니다. -
RSA 키 쌍
-
자체 서명 인증서
-
Subject and Issuer를
cn=\<MACHINE_HOSTNAME\>로 설정 -
OAM/OSTS 구성에 두 개의 항목이 생성됩니다.
-
.oamkeystore에서
stsprivatekeyalias키 항목을 참조하는osts_signing -
.oamkeystore에서
stsprivatekeyalias키 항목을 참조하는osts_encryption -
OAM은 서명 작업에
osts_signing항목을 사용하고 해독 작업에osts_encryption를 사용하도록 설정됩니다. -
OSTS는 해독 작업에
osts_encryption를 사용하고 SAML 발행 템플리트에서 서명 작업에osts_signing를 사용하도록 설정됩니다.
새 키 항목 설정
새 PKI 키 및 인증서를 OAM/OSTS에서 사용하기 전에 생성하는 프로세스는 두 가지입니다.
-
.oamkeystore에 키 항목 만들기 -
.oamkeystore의 키 항목을 참조하도록 OAM/OSTS에서 항목 생성
주: 키 및 인증서는 .oamkeystore에 저장해야 합니다. HSM은 지원되지 않습니다.
.oamkeystore에서 새 키 항목 만들기
앞에서 언급했듯이 .oamkeystore 키 저장소의 암호는 관리자가 알 수 없으며 수정하려면 재설정해야 합니다. 이 작업은 WLST 명령을 통해 수행됩니다.
-
$IAM_ORACLE_HOME/common/bin/wlst.sh를 실행하여 WLST 환경을 입력합니다. -
WLS 관리 서버(
connect())에 연결합니다. -
도메인 런타임 분기(
domainRuntime())로 이동합니다. -
.oamkeystore 암호
resetKeystorePassword()를 재설정합니다. -
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 키 항목을 생성하려면 다음과 같이 하십시오.
-
OAM 관리 콘솔(
http(s)://oam-admin-host:oam-adminport/oamconsole)로 이동합니다. -
Configuration, Federation Settings or Security Token Service Settings로 이동합니다.
-
새 항목 생성:
-
Keystore 섹션에서 "+" 버튼을 누릅니다.
-
새 항목의 KeyID를 입력합니다(예:
saml-signing). -
.oamkeystore의 키 항목을 나열하는 드롭다운에서 새 키 항목의 별칭을 선택합니다(예:
samlsigning). -
이전 섹션에서 키를 생성할 때 설정한 키 항목에 대한 비밀번호를 입력합니다.
-
필요한 경우 다른 항목에 대해 이 프로세스를 반복합니다.
-
-
적용을 누릅니다.

주: 다른 키 ID는 OAM 키 저장소의 동일한 키 항목을 참조할 수 있습니다.
새 키 항목 사용
전역 설정
새 키와 인증서를 사용하여 SAML 메시지에 서명하고 해독하도록 전역 OAM 설정을 업데이트하려면 다음 작업을 수행하십시오.
-
OAM 관리 콘솔(
http(s)://oam-admin-host:oam-admin-port/oamconsole)로 이동합니다. -
구성, 통합 설정으로 이동합니다.
-
키 항목의 드롭다운 목록에서 서명 키를 선택합니다(이러한 항목은 키 저장소 섹션에 정의되어 있음). 예를 들어,
saml-signing를 선택합니다. -
키 항목의 드롭다운 목록에서 암호화 키를 선택합니다(이러한 항목은 키 저장소 섹션에 정의되어 있음). 예를 들어,
saml-encryption을 선택합니다. -
적용을 누릅니다.
참고: 적용한 후 인증서 및/또는 SAML 2.0 메타데이터를 파트너에게 재분배해야 할 수 있습니다.

새 키와 인증서를 사용하여 SAML 메시지를 해독하도록 전역 OSTS 설정을 업데이트하려면 다음 작업을 수행하십시오.
-
OAM 관리 콘솔(
http(s)://oam-admin-host:oam-adminport/oamconsole)로 이동합니다. -
Configuration, Security Token Service 설정으로 이동합니다.
-
키 항목의 드롭다운 목록에서 기본 암호화 템플리트를 선택합니다(이러한 항목은 Keystore 섹션에 정의됨). 예를 들어,
samlencryption를 선택합니다. -
적용을 누릅니다.
참고: 신청한 후 파트너에게 인증서를 다시 배포해야 할 수 있습니다.

그림 Security_Token_Service_Settings.jpg 설명
새 키와 인증서를 사용하여 SAML 메시지에 서명하도록 OSTS 설정을 업데이트하려면 다음 작업을 수행하십시오.
-
OAM 관리 콘솔(
http(s)://oam-admin-host:oam-admin- port/oamconsole)로 이동합니다. -
Security Token Service, Token Issuance Templates로 이동합니다.
-
업데이트할 SAML 발행 템플리트를 누릅니다.
-
보안 탭을 누릅니다.
-
키 항목의 드롭다운 목록에서 키 저장소 액세스 템플리트 ID 서명을 선택합니다. 이러한 항목은 키 저장소 섹션에 정의되어 있습니다. 예를 들어,
saml-signing를 선택합니다. -
적용을 누릅니다.
참고: 신청한 후 파트너에게 인증서를 다시 배포해야 할 수 있습니다.

파트너당 키 롤오버
OAM/OSTS 배치가 여러 파트너와 관련된 경우 전역 서명/암호화 키/인증서를 한 번에 변경하기 어려울 수 있습니다. 변경 사항과 동시에 모든 파트너에게 알리고 새 인증서/SAML 2.0 메타데이터로 구성을 업데이트해야 하기 때문입니다.
주: OAM/OSTS에서 키/인증서를 업데이트한 후에는 시스템에 새 인증서를 업로드할 때까지 파트너와 통합/WS-Trust 플로우가 작동하지 않습니다.
OAM/OSTS는 파트너별로 키 롤오버를 쉽게 수행할 수 있는 방법을 제공하므로 OAM 관리자가 특정 파트너에게 키 및 인증서 변경을 알리는 방법과 시기를 계획할 수 있습니다.
-
OAM IdP 또는 SP 파트너에 대한 키 롤오버 수행에는 다음이 포함됩니다.
-
이전 절에 설명된 대로 새 키 및 인증서를 설정합니다.
-
새 키와 인증서를 사용하도록 OAM에서 IdP 또는 SP 파트너 구성을 업데이트하는 중입니다.
-
새 키/인증서 또는 새 키 항목에 해당하는 새 인증서를 사용하여 특별히 생성된 새 SAML 2.0 메타데이터를 파트너에게 알립니다.
-
-
OSTS Relying Party 파트너에 대한 주요 롤오버 수행에는 다음이 포함됩니다.
-
이전 절에 설명된 대로 새 키 및 인증서 설정(아직 없는 경우)
-
Relying Party 파트너가 사용하는 현재 Relying Party Profile의 복사본이 되는 새 Relying Party Profile을 생성합니다.
-
새 SAML 발행 템플리트를 생성하는 중입니다. Relying Party 파트너가 현재 사용하는 Relying Party 프로파일이 참조하는 SAML 발행 템플리트의 복사본입니다.
-
현재 SAML 발행 템플리트 대신 새 SAML 발행 템플리트를 사용하도록 새 Relying Party 프로파일을 업데이트하십시오.
-
-
새 키/인증서를 사용하도록 새 SAML 발행 템플리트 업데이트
-
새 신뢰 당사자 프로파일에 신뢰 당사자 파트너 지정
참고: OAM 구성에서 파트너 프로파일을 사용하여 파트너 그룹을 통해 OAM 키 롤오버를 수행할 수 있습니다.
OAM 키 롤오버
특정 파트너에 대해 키 롤오버를 수행하는 경우 먼저 WLST 명령을 통해 OAM에서 IdP 또는 SP 파트너 구성을 업데이트해야 합니다.
-
$IAM_ORACLE_HOME/common/bin/wlst.sh를 실행하여 WLST 환경을 입력합니다. -
WLS 관리 서버(
connect())에 연결합니다. -
도메인 런타임 분기(
domainRuntime())로 이동합니다. -
파트너 구성을 업데이트하여 서명 키 속성(
signingkeystoreaccesstemplateid에서 참조)을 통합 설정 , 키 저장소 섹션에 정의된 키 항목 ID로 설정합니다(이 예에서는saml-signing이 키 항목 ID이고,<PARTNER_NAME>을 OAM의 파트너 이름으로 바꾸고,<IDP_OR_SP>을 IDP 또는 SP(파트너 유형)로 바꿉니다). encryptionkeystoreaccesstemplateid에서 참조하는 암호화 키 속성을 통합 설정 , 키 저장소 섹션에 정의된 키 항목 ID로 설정하도록 파트너 구성을 업데이트합니다(이 예에서는 saml-encryption이 키 항목 ID임,<PARTNER_NAME>를 OAM의 파트너 이름으로 바꾸기,<IDP_OR_SP>를 IDP 또는 SP(파트너 유형)로 바꾸기).- WLST 환경
exit()를 종료합니다.
updatePartnerProperty("<PARTNER_NAME>", "<IDP_OR_SP>","signingkeystoreaccesstemplateid", "saml-signing", "string")
updatePartnerProperty("<PARTNER_NAME>", "<IDP_OR_SP>", "encryptionkeystoreaccesstemplateid", "saml-encryption", "string")
파트너 구성이 업데이트되면 파트너는 SAML 2.0 메타데이터 또는 인증서 정보를 사용해야 합니다. 이 정보를 생성하려면 다음과 같이 하십시오.
-
새 서명 및 암호화 키에 대해 SAML 2.0 메타데이터를 제공해야 하는 경우 브라우저를 열고 다음 URL을 사용하여 메타데이터
http://oam-runtime-host:oam-runtime-port/oamfed/idp/metadata?signid=<SIGN_KEYENTRY_ID>&encid=<ENC_KEYENTRY_ID>를 생성합니다. -
signid질의 매개변수에는 서명 인증서에 대한 키 항목 ID가 포함됩니다. -
<SIGN_KEYENTRY_ID>를 바꿉니다. -
encid질의 매개변수에는 암호화 인증서에 대한 키 항목 ID가 포함됩니다.<SIGN_KEYENTRY_ID>바꾸기 예:http://oam.com/oamfed/idp/metadata?signid=saml-signing&encid=samlencryption -
새 키에 대한 인증서 파일을 제공해야 하는 경우 브라우저를 열고 다음 URL을 사용하여 PEM 형식으로 인증서를 생성합니다(
http://oam-runtime-host:oam-runtime-port/oamfed/idp/cert?id=<KEYENTRY_ID>). -
ID 질의 매개변수는 인증서에 대한 키 항목 ID를 포함합니다.
-
<KEYENTRY_ID>를 바꿉니다.
예: http://oam.com/oamfed/idp/cert?id=saml-signing
참고: 파트너 구성을 업데이트하기 전에 먼저 SAML 2.0 메타데이터/인증서를 생성하고 파트너에게 제공할 수 있습니다.
OSTS 키 롤오버
OSTS 키 롤오버를 설명하려면 다음 예를 따르십시오.
-
3개의 Relying Party 파트너: RP1, RP2 및 RP3
-
두 개의 Relying Party 프로파일:
RPprofileA및RPprofileB,RPprofileA를 사용하는 RP1 및 RP2,RPprofileB을 사용하는 RP3 -
두 개의 SAML 2.0 발행 템플리트,
RPprofileA에서 참조되는SAMLIssuanceA및RPprofileB에서 참조되는SAMLIssuanceB
롤오버는 RP1를 먼저 전환한 다음 RP2, RP3를 차례로 전환하여 해당 파트너가 새 saml-signing 인증서를 사용하도록 합니다.
RP1를 전환하려면 다음 작업을 수행해야 합니다.
-
OAM 관리 콘솔(
http(s)://oam-admin-host:oam-admin- port/oamconsole)로 이동합니다. -
Security Token Service, Partner Profiles, Relying Party Profiles로 이동합니다.
-
RPprofileA의 복사본인NewRPprofileA이라는 새 Relying Party 프로파일을 생성합니다. -
Security Token Service, Token Issuance Templates로 이동합니다.
-
SAMLIssuanceA의 복사본인NewSAMLIssuanceA이라는 새 SAML 발행 템플리트를 생성합니다. -
NewSAMLIssuanceASAML 2.0 출고 템플리트를 참조하도록NewRPprofileA을 업데이트합니다. - 새 키 항목을 사용하도록 Security(보안) 탭에서
NewSAMLIssuanceASAML 2.0 Issuance 템플리트를 업데이트합니다. -
보안 토큰 서비스, 파트너, 소유자로 이동합니다.
-
RP1를 열고
NewRPprofileARelying Party 프로파일을 사용하도록 구성합니다. 그러면 OSTS가 새 키 항목saml-signing를 사용하여 RP1 Relying Party 파트너에 대한 발신 SAML 2.0 검증을 서명합니다. - 브라우저를 열어 OSTS에서 새 인증서를 다운로드하고 다음 URL을 사용하여 PEM 형식으로 인증서를 생성합니다.
-
ID 질의 매개변수는 인증서에 대한 키 항목 ID를 포함합니다.
-
<KEYENTRY_ID>를 바꿉니다. - 파트너에게 인증서를 제공합니다.



http://oam-runtime-host:oam-runtime-port/sts/servlet/samlcert?id=<KEYENTRY_ID>
예: http://oam.com/sts/servlet/samlcert?id=saml-signing
새 Relying Party 프로파일 및 SAML 발행 템플리트가 이미 생성되었으므로 RP2을 새 인증서로 전환하는 것이 더 빠릅니다.
RP2를 전환하려면 다음 작업을 수행해야 합니다.
-
OAM 관리 콘솔(
http(s)://oam-admin-host:oam-adminport/oamconsole)로 이동합니다. -
보안 토큰 서비스, 파트너, 소유자로 이동합니다.
-
RP1를 열고
NewRPprofileARelying Party 프로파일을 사용하도록 구성합니다. 그러면 OSTS가 새 키 항목saml-signing를 사용하여 RP1 Relying Party 파트너에 대한 발신 SAML 2.0 검증을 서명합니다. -
파트너에게 인증서를 제공합니다.
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를 참조하십시오.
Key and Certificate Management-Rollover in OAM and STS
F61370-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.