인증 응답에 대한 SAML 어설션 구성 - AWS Identity and Access Management

인증 응답에 대한 SAML 어설션 구성

조직에서 사용자의 아이덴티티를 확인한 후 외부 ID 제공자(IdP)가 https://region-code.signin.aws.amazon.com/saml의 AWS SAML 엔드포인트로 인증 응답을 보냅니다. 잠재적 region-code 대체 목록은 AWS 로그인 엔드포인트리전(Region) 열을 참조하세요. 이 응답은 SAML 2.0을 위한 HTTP POST 바인딩 표준을 준수하고 다음 요소 또는 클레임이 저장된 SAML 토큰을 포함하는 POST 요청입니다. SAML 호환 IdP에서 이 클레임들을 구성합니다. 이 클레임들을 입력하는 방법에 대한 지침에 대해서는 귀하의 IdP를 위한 문서를 참고하세요.

IdP가 AWS에 클레임이 포함된 리소스를 전송하는 경우 수신 클레임 중 다수가 AWS 콘텍스트 키에 매핑됩니다. 이러한 컨텍스트 키는 Condition 요소를 사용하여 IAM 정책에서 확인할 수 있습니다. 사용 가능한 매핑 목록은 SAML 속성을 AWS 신뢰 정책 컨텍스트 키에 매핑 섹션에 나와 있습니다.

SubjectNameID

다음 발췌문은 한 가지 예를 보여줍니다. 자신의 값을 표시된 것으로 대치합니다. SubjectConfirmation 속성과 SubjectConfirmationData 속성을 둘 다 포함하는 NotOnOrAfter 요소와 함께 정확하게 Recipient 요소가 하나 있어야 합니다. 이러한 속성에는 AWS 엔드포인트 https://region-code.signin.aws.amazon.com/saml과 일치해야 하는 값이 포함되어 있습니다. 가능한 region-code 값 목록은 AWS 로그인 엔드포인트리전(Region) 열을 참조하세요. AWS 값의 경우 다음 예제와 같이 https://signin.aws.amazon.com/static/saml을 사용할 수도 있습니다.

NameID 요소는 영구 값, 임시 값을 갖거나 IdP 솔루션에서 제공한 전체 형식 URI로 구성될 수 있습니다. 영구 값은 NameID의 값이 세션 간 사용자에서도 동일하다는 것을 나타냅니다. 임시 값인 경우 각 세션마다 사용자의 NameID 값이 다릅니다. 싱글 사인온 상호작용은 다음과 같은 유형의 식별자를 지원합니다.

  • urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

  • urn:oasis:names:tc:SAML:2.0:nameid-format:transient

  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

  • urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

  • urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName

  • urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName

  • urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos

  • urn:oasis:names:tc:SAML:2.0:nameid-format:entity

<Subject> <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">_cbb88bf52c2510eabe00c1642d4643f41430fe25e3</NameID> <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <SubjectConfirmationData NotOnOrAfter="2013-11-05T02:06:42.876Z" Recipient="https://signin.aws.amazon.com/saml"/> </SubjectConfirmation> </Subject>
중요

saml:aud 콘텍스트 키는 SAML 수신자 속성에서 온 것으로, 그 이유는 이 속성이 accounts.google.com:aud와 같은 OIDC 대상 필드와 동일한 SAML이기 때문입니다.

PrincipalTag SAML 속성

(선택 사항) Name 속성이 https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey}로 설정된 Attribute 요소를 사용할 수 있습니다. 이 요소를 사용하면 속성을 SAML 어설션에 세션 태그로 전달할 수 있습니다. 세션 태그에 대한 자세한 내용은 AWS STS에서 세션 태그 전달 섹션을 참조하세요.

속성을 세션 태그로 전달하려면 태그 값을 지정하는 AttributeValue 요소를 포함합니다. 예를 들어, 태그 키 값 페어 Project = MarketingCostCenter = 12345를 전달하려면 다음 속성을 사용합니다. 각 태그에 대해 별도의 Attribute 요소를 포함합니다.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Project"> <AttributeValue>Marketing</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter"> <AttributeValue>12345</AttributeValue> </Attribute>

위의 태그를 전이적으로 설정하려면 Name 속성이 https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys로 설정된 다른 Attribute 요소를 포함합니다. 세션 태그를 전이적으로 설정하는 선택적 다중 값 속성입니다. 전이적 태그는 SAML 세션을 사용하여 AWS에서 다른 역할을 맡을 때 유지됩니다. 이를 역할 체인이라고 합니다. 예를 들어, PrincipalCostCenter 태그를 전이적으로 설정하려면 다음 속성을 사용하여 키를 지정합니다.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys"> <AttributeValue>Project</AttributeValue> <AttributeValue>CostCenter</AttributeValue> </Attribute>

Role SAML 속성

Name 속성이 https://aws.amazon.com/SAML/Attributes/Role로 설정된 Attribute 요소를 사용할 수 있습니다. 이 요소는 IdP에 의해 사용자가 매핑되는 IAM 자격 증명 공급자 및 역할을 나열하는 AttributeValue 요소를 한 개 이상 포함합니다. IAM 역할 및 IAM 자격 증명 공급자는 AssumeRoleWithSAML에 전달되는 RoleArnPrincipalArn 파라미터와 동일한 형식의 쉼표로 구분된 ARN 쌍으로 지정됩니다. 이 요소는 하나 이상의 역할 공급자 페어(AttributeValue 요소)를 포함해야 하며 여러 페어를 포함할 수 있습니다. 요소가 다수의 페어를 포함하는 경우 사용자가 WebSSO를 사용하여 AWS Management Console에 로그인할 때 어떤 역할을 수임할지 선택하라는 메시지가 표시됩니다.

중요

Name 태그의 Attribute 속성 값은 대/소문자를 구분합니다. 정확하게 https://aws.amazon.com/SAML/Attributes/Role로 설정해야 합니다.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/Role"> <AttributeValue>arn:aws:iam::account-number:role/role-name1,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue> <AttributeValue>arn:aws:iam::account-number:role/role-name2,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue> <AttributeValue>arn:aws:iam::account-number:role/role-name3,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue> </Attribute>

RoleSessionName SAML 속성

Name 속성이 https://aws.amazon.com/SAML/Attributes/RoleSessionName로 설정된 Attribute 요소를 사용할 수 있습니다. 이 요소에는 역할을 수임할 때 발급된 임시 자격 증명의 식별자를 제공하는 AttributeValue 요소가 하나 포함되어 있습니다. 이 요소를 사용하여 임시 자격 증명을 애플리케이션을 사용하는 사용자와 연결할 수 있습니다. 이 요소는 AWS Management Console 콘솔에서 사용자 정보를 표시하는 데 사용됩니다. AttributeValue 요소의 값은 2~64자여야 하며 영숫자, 밑줄 및 다음 문자만 포함할 수 있습니다. . , + = @ -(하이픈). 공백은 포함할 수 없습니다. 값은 일반적으로 사용자 ID(johndoe) 또는 이메일 주소(johndoe@example.com)입니다. 사용자의 표시 이름(John Doe)과 같이 값이 공백을 포함하면 안 됩니다.

중요

Name 태그의 Attribute 속성 값은 대/소문자를 구분합니다. 정확하게 https://aws.amazon.com/SAML/Attributes/RoleSessionName로 설정해야 합니다.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/RoleSessionName"> <AttributeValue>user-id-name</AttributeValue> </Attribute>

SessionDuration SAML 속성

(선택 사항) Name 속성이 https://aws.amazon.com/SAML/Attributes/SessionDuration"로 설정된 Attribute 요소를 사용할 수 있습니다. 이 요소에는 사용자가 AWS Management Console에 액세스할 수 있는 기간을 지정하는 AttributeValue 요소가 한 개 포함되어 있습니다. 이 시간이 지나면 새로운 임시 자격 증명을 요청해야 합니다. 이 값은 세션에 대한 기간(초)을 나타내는 정수입니다. 이 값은 900초(15분)~43200초(12시간)일 수 있습니다. 이 속성이 없으면 자격 증명은 한 시간 동안 지속됩니다(DurationSeconds API의 AssumeRoleWithSAML 파라미터 기본값).

이 속성을 사용하려면 https://region-code.signin.aws.amazon.com/saml에서 콘솔 로그인 웹 엔드포인트를 통해 AWS Management Console에 대한 SSO(Single Sign-On) 액세스를 제공하도록 SAML 공급자를 구성해야 합니다. 가능한 region-code 값 목록은 AWS 로그인 엔드포인트리전(Region) 열을 참조하세요. URL https://signin.aws.amazon.com/static/saml을 사용할 수 있습니다. 이 속성은 AWS Management Console에 대해서만 세션을 연장할 수 있습니다. 다른 자격 증명의 수명을 늘릴 수는 없습니다. 그러나 AssumeRoleWithSAML API 호출에 존재하는 경우 세션 기간을 단축하는 데 사용할 수 있습니다. 호출에 의해 반환되는 자격 증명의 기본 수명은 60분입니다.

SessionNotOnOrAfter 속성도 정의된 경우 콘솔 세션 중 두 속성 SessionDuration 또는 SessionNotOnOrAfter더 작은 값으로 최대값이 설정됩니다.

지속 기간을 더 늘려 콘솔 세션을 활성화하면 자격 증명이 손상될 위험이 높아집니다. 이러한 위험을 줄이려면 IAM 콘솔의 역할 요약 페이지에서 세션 취소(Revoke Sessions)를 선택하여 원하는 역할의 활성 콘솔 세션을 즉시 비활성화하면 됩니다. 자세한 내용은 IAM 역할의 임시 보안 자격 증명 취소 단원을 참조하십시오.

중요

Name 태그의 Attribute 속성 값은 대/소문자를 구분합니다. 정확하게 https://aws.amazon.com/SAML/Attributes/SessionDuration로 설정해야 합니다.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/SessionDuration"> <AttributeValue>1800</AttributeValue> </Attribute>

SourceIdentity SAML 속성

(선택 사항) Name 속성이 https://aws.amazon.com/SAML/Attributes/SourceIdentity로 설정된 Attribute 요소를 사용할 수 있습니다. 이 요소에는 하나의 IAM 역할을 사용하는 사용자 또는 애플리케이션에 식별자를 제공하는 AttributeValue 요소가 포함됩니다. 소스 자격 증명의 값은 SAML 세션을 사용하여 AWS에서 다른 역할을 수임할 때(역할 체인이라고 함) 유지됩니다. 소스 자격 증명 값은 역할 세션 중에 수행된 모든 작업의 요청에 표시됩니다. 역할 세션 중에는 설정된 값을 변경할 수 없습니다. 그런 다음 관리자는 AWS CloudTrail 로그를 통해 소스 자격 증명 정보를 모니터링하고 감사하여 공유 역할로 작업을 수행한 사용자를 결정합니다.

AttributeValue 요소의 값은 2~64자여야 하며 영숫자, 밑줄 및 다음 문자만 포함할 수 있습니다. . , + = @ -(하이픈). 공백은 포함할 수 없습니다. 이 값은 일반적으로 사용자 ID(johndoe) 또는 이메일 주소(johndoe@example.com) 등 사용자와 연결된 속성입니다. 사용자의 표시 이름(John Doe)과 같이 값이 공백을 포함하면 안 됩니다. 소스 자격 증명 사용에 대한 자세한 내용은 위임된 역할로 수행한 작업 모니터링 및 제어 섹션을 참조하세요.

중요

SourceIdentity 속성을 사용하도록 SAML 어설션이 구성된 경우 역할 신뢰 정책에도 sts:SetSourceIdentity 작업이 포함되어야 합니다. 그러지 않으면 수임 역할 작업이 실패합니다. 소스 자격 증명 사용에 대한 자세한 내용은 위임된 역할로 수행한 작업 모니터링 및 제어 섹션을 참조하세요.

소스 자격 증명 속성을 전달하려면 소스 자격 증명의 값을 지정하는 AttributeValue 요소를 포함합니다. 예를 들어, 소스 자격 증명 DiegoRamirez를 전달하려면 다음 속성을 사용합니다.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/SourceIdentity"> <AttributeValue>DiegoRamirez</AttributeValue>

SAML 속성을 AWS 신뢰 정책 컨텍스트 키에 매핑

이 섹션의 표들은 흔히 사용되는 SAML 속성들을 나열하고, 그 속성들이 AWS에서 신뢰 정책 조건 콘텍스트 키에 어떻게 매핑되는지 보여줍니다. 이러한 키를 사용하여 역할에 대한 액세스를 제어할 수 있습니다. 이렇게 하려면 키를 SAML 액세스 요청과 함께 제공되는 어설션에 포함된 값과 비교합니다.

중요

이런 키는 IAM 신뢰 정책(역할을 수임할 수 있는 사용자를 결정하는 정책)에서만 사용할 수 있고, 권한 정책에는 적용할 수 없습니다.

eduPerson 및 eduOrg 속성 표에서 값은 문자열 또는 문자열 목록의 형태로 입력됩니다. 문자열 값의 경우, StringEquals 또는 StringLike 조건을 이용해 IAM 신뢰 정책에서 이러한 값을 테스트할 수 있습니다. 문자열 목록이 포함된 값의 경우에는 ForAnyValueForAllValues 정책 설정 연산자를 사용해 신뢰 정책에서 값을 테스트합니다.

참고

AWS 컨텍스트 키당 하나의 클레임만을 포함해야 합니다. 하나 이상의 클레임을 포함하는 경우, 하나의 클레임만 매핑됩니다.

eduPerson 및 eduOrg 속성
eduPerson 또는 eduOrg 속성(Name 키) 이 AWS 콘텍스트 키(FriendlyName 키)에 매핑 유형

urn:oid:1.3.6.1.4.1.5923.1.1.1.1

eduPersonAffiliation

문자열 목록

urn:oid:1.3.6.1.4.1.5923.1.1.1.2

eduPersonNickname

문자열 목록

urn:oid:1.3.6.1.4.1.5923.1.1.1.3

eduPersonOrgDN

String

urn:oid:1.3.6.1.4.1.5923.1.1.1.4

eduPersonOrgUnitDN

문자열 목록

urn:oid:1.3.6.1.4.1.5923.1.1.1.5

eduPersonPrimaryAffiliation

String

urn:oid:1.3.6.1.4.1.5923.1.1.1.6

eduPersonPrincipalName

String

urn:oid:1.3.6.1.4.1.5923.1.1.1.7

eduPersonEntitlement

문자열 목록

urn:oid:1.3.6.1.4.1.5923.1.1.1.8

eduPersonPrimaryOrgUnitDN

String

urn:oid:1.3.6.1.4.1.5923.1.1.1.9

eduPersonScopedAffiliation

문자열 목록

urn:oid:1.3.6.1.4.1.5923.1.1.1.10

eduPersonTargetedID

문자열 목록

urn:oid:1.3.6.1.4.1.5923.1.1.1.11

eduPersonAssurance

문자열 목록

urn:oid:1.3.6.1.4.1.5923.1.2.1.2

eduOrgHomePageURI

문자열 목록

urn:oid:1.3.6.1.4.1.5923.1.2.1.3

eduOrgIdentityAuthNPolicyURI

문자열 목록

urn:oid:1.3.6.1.4.1.5923.1.2.1.4

eduOrgLegalName

문자열 목록

urn:oid:1.3.6.1.4.1.5923.1.2.1.5

eduOrgSuperiorURI

문자열 목록

urn:oid:1.3.6.1.4.1.5923.1.2.1.6

eduOrgWhitePagesURI

문자열 목록

urn:oid:2.5.4.3

cn

문자열 목록

Active Directory 속성
AD 속성 이 AWS 컨텍스트 키에 매핑 유형

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name

name

문자열

http://schemas.xmlsoap.org/claims/CommonName

commonName

문자열

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname

givenName

문자열

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname

surname

문자열

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

mail

문자열

http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid

uid

String

X.500 속성
X.500 속성 이 AWS 컨텍스트 키에 매핑 유형

2.5.4.3

commonName

문자열

2.5.4.4

surname

문자열

2.4.5.42

givenName

문자열

2.5.4.45

x500UniqueIdentifier

문자열

0.9.2342.19200300100.1.1

uid

문자열

0.9.2342.19200300100.1.3

mail

문자열

0.9.2342.19200300.100.1.45

organizationStatus

String