프라이빗 작업 인력 생성(OIDC IdP) - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

프라이빗 작업 인력 생성(OIDC IdP)

자체 자격 증명 공급자를 사용하여 작업자를 인증하고 관리하려는 경우 OpenID Connect(OIDC) 자격 증명 공급자(IdP)를 사용하여 프라이빗 작업 인력을 생성하십시오. 이 페이지에서는 Amazon 그라운드 트루스 ( SageMaker Ground Truth) 또는 Amazon Augmented AI (Amazon A2I) 와 통신하도록 IdP를 구성하는 방법과 자체 IdP를 사용하여 인력을 만드는 방법을 알아봅니다.

OIDC IdP를 사용하여 인력을 만들려면 IdP가 그룹을 지원해야 합니다. Ground Truth와 Amazon A2I는 사용자가 작업 팀을 만들기 위해 지정하는 하나 이상의 그룹을 사용하기 때문입니다. 작업 팀을 사용하여 레이블 지정 작업과 인적 검토 작업을 수행할 작업자를 지정합니다. 그룹은 표준 클레임이 아니므로 IdP는 사용자 그룹(작업자)에 대해 다른 명명 규칙을 적용할 수 있습니다. 따라서 IdP에서 Ground Truth 또는 Amazon A2I로 전송되는 sagemaker:groups 사용자 지정 클레임을 사용하여 작업자가 속한 하나 이상의 사용자 그룹을 식별해야 합니다. 자세한 내용은 필수 및 선택적 클레임을 Ground Truth 및 Amazon A2I로 전송를 참조하세요.

API 작업을 사용하여 OIDC IdP 인력을 생성합니다. SageMaker CreateWorkforce 프라이빗 작업 인력을 생성하면 해당 작업 인력 및 그와 연관된 모든 작업 팀 및 작업자가 모든 Ground Truth 레이블 지정 작업 및 Amazon A2I 인적 검토 워크플로 작업에서 사용 가능하게 됩니다. 자세한 내용은 OIDC IdP 인력 생성를 참조하세요.

필수 및 선택적 클레임을 Ground Truth 및 Amazon A2I로 전송

자체 IdP를 사용하는 경우 Ground Truth 및 Amazon A2I는 사용자의 Issuer, ClientIdClientSecret를 사용하여 AuthorizationEndpoint에서 사용자의 인증 코드를 획득하여 작업자를 인증합니다.

Ground Truth와 Amazon A2I는 이 코드를 사용하여 사용자의 IdP의 TokenEndpoint 또는 UserInfoEndpoint로부터 사용자 지정 클레임을 획득합니다. JSON 웹 토큰 (JWT)을 반환하기 위해 TokenEndpoint를 구성하거나 JSON 객체를 반환하기 위해 UserInfoEndpoint를 구성할 수 있습니다. JWT 또는 JSON 객체에는 지정한 필수 및 선택적 클레임이 포함되어야 합니다. 클레임은 작업자에 대한 정보 또는 OIDC 서비스에 대한 메타데이터를 포함하는 키-값 쌍입니다. 다음 표에는 포함되어야 하는 클레임과 IdP가 반환하는 JWT 또는 JSON 객체에 선택적으로 포함될 수 있는 클레임이 나열되어 있습니다.

참고

다음 표의 일부 파라미터는 : 또는 -를 사용하여 지정할 수 있습니다. 예를 들어, 클레임에서 sagemaker:groups 또는 sagemaker-groups을 사용하여 작업자가 속해 있는 그룹을 지정할 수 있습니다.

명칭 필수 허용되는 형식 및 값 설명

sagemaker:groups 또는 sagemaker-groups

데이터 유형:

작업자가 단일 그룹에 속하는 경우 문자열을 사용하여 그룹을 식별하십시오.

작업자가 여러 그룹에 속하는 경우 최대 10개의 문자열로 이루어진 목록을 사용하십시오.

허용 문자:

정규식: [\p{L}\p{M}\p{S}\p{N}\p{P}]+

할당량:

작업당 10 그룹

그룹 이름당 63자

작업자를 하나 이상의 그룹에 할당합니다. 그룹은 작업자를 작업 팀에 매핑하는 데 사용됩니다.

단일 그룹에 속하는 작업자의 예: "work_team1"

둘 이상의 그룹에 속하는 작업자의 예: ["work_team1", "work_team2"]

sagemaker:sub 또는 sagemaker-sub

데이터 유형:

String

이는 감사를 위해 Ground Truth 플랫폼 내에서 작업자 ID를 추적하고 해당 작업자가 수행한 작업을 식별하는 데 필수적입니다.

ADFS의 경우: 고객은 기본 보안 식별자(SID)를 사용해야 합니다.

"111011101-123456789-3687056437-1111"

sagemaker:client_id 또는 sagemaker-client_id

데이터 유형:

String

허용 문자:

정규식: [\w+-]+

따옴표:

128자

클라이언트 ID. 모든 토큰은 이 클라이언트 ID에 대해 발행되어야 합니다.

"00b600bb-1f00-05d0-bd00-00be00fbd0e0"

sagemaker:name 또는 sagemaker-name

데이터 유형:

String

작업자 포털에 표시할 작업자 이름.

"Jane Doe"

email

아니요

데이터 유형:

String

작업자 이메일. Ground Truth는 이 이메일을 사용하여 작업자에게 레이블 지정 작업에 초대되었음을 알립니다. 또한 Ground Truth는 작업자가 소속된 작업팀을 위해 Amazon SNS 주제를 설정한 경우 레이블 지정 작업이 가능해지면 이 이메일을 사용하여 작업자에게 알립니다.

"example-email@domain.com"

email_verified

아니요

데이터 유형:

부울

허용되는 값:

True, False

사용자 이메일이 확인되었는지 여부를 나타냅니다.

True

다음은 사용자의 UserInfoEndpoint가 반환할 수 있는 JSON 객체 구문의 예입니다.

{ "sub":"122", "exp":"10000", "sagemaker-groups":["group1","group2"] "sagemaker-name":"name", "sagemaker-sub":"122", "sagemaker-client_id":"123456" }

Ground Truth 또는 Amazon A2I는 작업자가 레이블 지정 작업 또는 인적 검토 작업에 지정된 작업팀에 속하는지 확인하기 위해 sagemaker:groups 또는 sagemaker-groups 목록에 있는 그룹을 비교합니다. 작업팀이 확인되면 레이블 지정 작업이나 인적 검토 작업이 해당 작업자에게 전달됩니다.

OIDC IdP 인력 생성

SageMaker API 작업 CreateWorkforce 및 관련 언어별 SDK를 사용하여 인력을 만들 수 있습니다. 파라미터 OidcConfig에 OIDC IDP에 대한 WorkforceName 및 정보를 지정합니다. 자리 표시자 리디렉션 URI를 사용하여 OIDC를 구성한 다음 인력을 생성한 후 작업자 포털 URL로 URI를 업데이트하는 것이 좋습니다. 자세한 내용은 OIDC IdP 구성 섹션을 참조하십시오.

다음 그림에서는 요청 예시를 보여줍니다. CreateWorkforce를 참조하여 이 요청의 각 파라미터에 대한 자세한 내용을 알아보십시오.

CreateWorkforceRequest: { #required fields WorkforceName: "example-oidc-workforce", OidcConfig: { ClientId: "clientId", ClientSecret: "secret", Issuer: "https://example-oidc-idp.com/adfs", AuthorizationEndpoint: "https://example-oidc-idp.com/adfs/oauth2/authorize", TokenEndpoint: "https://example-oidc-idp.com/adfs/oauth2/token", UserInfoEndpoint: "https://example-oidc-idp.com/adfs/oauth2/userInfo", LogoutEndpoint: "https://example-oidc-idp.com/adfs/oauth2/log-out", JwksUri: "https://example-oidc-idp.com/adfs/discovery/keys" }, SourceIpConfig: { Cidrs: ["string", "string"] } }

OIDC IdP 구성

OIDC IdP를 구성하는 방법은 사용하는 IdP와 비즈니스 요구 사항에 따라 다릅니다.

IdP를 구성할 때 콜백 또는 리디렉션 URI를 지정해야 합니다. Ground Truth 또는 Amazon A2I가 작업자를 인증한 후 이 URI는 작업자를 작업자 포털로 리디렉션하여 작업자가 레이블 지정 또는 인적 검토 작업에 액세스할 수 있습니다. 작업자 포털 URL을 생성하려면 CreateWorkforce API 작업을 사용하여 OIDC IdP 세부 정보로 인력을 생성해야 합니다. 특히 필수 사용자 지정 sagemaker 클레임을 사용하여 OIDC IdP를 구성해야 합니다(자세한 내용은 다음 섹션 참조). 자리 표시자 리디렉션 URI를 사용하여 OIDC를 구성한 다음 인력을 생성한 후 URI를 업데이트하는 것이 좋습니다. 이 API를 사용하여 인력을 생성하는 방법에 대해 알아보려면 OIDC IdP 인력 생성 섹션을 참조하십시오.

SageMaker Ground Truth 콘솔에서 또는 SageMaker API 작업을 사용하여 작업자 포털 URL을 볼 수 DescribeWorkforce 있습니다. 작업자 포털 URL은 응답의 SubDomain 파라미터에 있습니다.

중요

OIDC IdP 허용 목록에 인력 하위 도메인을 추가했는지 확인하십시오. 허용 목록에 하위 도메인을 추가할 때는 /oauth2/idpresponse(으)로 끝나야 합니다.

프라이빗 작업 인력을 생성한 후 작업자 포털 URL을 보려면(콘솔):
  1. https://console.aws.amazon.com/sagemaker/ 에서 SageMaker 콘솔을 엽니다.

  2. 탐색 창에서 Labeling workforces(레이블 지정 작업 인력)를 선택합니다.

  3. Private(프라이빗) 탭을 선택합니다.

  4. 프라이빗 작업 인력 요약에서 레이블 지정 포털 로그인 URL을 확인할 수 있습니다. 작업자 포털 URL입니다.

프라이빗 작업 인력을 생성한 후 작업자 포털 URL을 보려면(API):

CreateWorkforce를 사용하여 프라이빗 작업 인력을 생성할 때는 WorkforceName을 지정합니다. DescribeWorkforce를 호출하려면 이 이름을 사용하십시오. 다음 표에는 AWS CLI 및 를 사용하는 요청의 예가 나와 AWS SDK for Python (Boto3)있습니다.

SDK for Python (Boto3)
response = client.describe_workforce(WorkforceName='string') print(f'The workforce subdomain is: {response['SubDomain']}')
AWS CLI
$ C:\> describe-workforce --workforce-name 'string'

OIDC IdP 작업 인력 인증 응답을 검증하십시오.

OIDC IdP 작업 인력을 생성한 후 다음 절차에 따라 cURL로 인증 워크플로를 검증할 수 있습니다. 이 절차에서는 터미널에 액세스할 수 있고 cURL이 설치되어 있다고 가정합니다.

OIDC IdP 인증 응답을 검증하려면:
  1. 다음과 같이 구성된 URI를 사용하여 인증 코드를 받으십시오.

    {AUTHORIZE ENDPOINT}?client_id={CLIENT ID}&redirect_uri={REDIRECT URI}&scope={SCOPE}&response_type=code
    1. OIDC IdP의 권한 부여 엔드포인트로 {AUTHORIZE ENDPOINT}를 바꾸십시오.

    2. OAuth 클라이언트의 클라이언트 ID로 {CLIENT ID}를 바꾸십시오.

    3. 작업자 포털 URL로 {REDIRECT URI}를 바꾸십시오. URL이 아직 없는 경우 URL 끝에 /oauth2/idpresponse을(를) 추가해야 합니다.

    4. 사용자 지정 범위가 있는 경우 범위를 사용하여 {SCOPE}를 바꾸십시오. 사용자 지정 범위가 없는 경우 openid를 사용하여 {SCOPE}를 바꾸십시오.

    다음은 위의 수정 후 URI의 예시입니다.

    https://example.com/authorize?client_id=f490a907-9bf1-4471-97aa-6bfd159f81ac&redirect_uri=https%3A%2F%2F%2Fexample.labeling.sagemaker.aws%2Foauth2%2Fidpresponse&response_type=code&scope=openid
  2. 1단계에서 수정한 URI를 복사하여 브라우저에 붙여넣고 키보드의 Enter 키를 누릅니다.

  3. IdP를 사용하여 인증하십시오.

  4. URI의 인증 코드 쿼리 파라미터를 복사합니다. 이 파라미터는 code=로 시작됩니다. 다음은 응답에 대한 예시입니다. 이 예제에서는 code=MCNYDB...을(를) 복사한 다음 모든 것을 복사합니다.

    https://example.labeling.sagemaker.aws/oauth2/idpresponse?code=MCNYDB....
  5. 아래 나열된 필수 수정 작업을 수행한 후 터미널을 열고 다음 명령을 입력합니다.

    curl --request POST \ --url '{TOKEN ENDPOINT}' \ --header 'content-type: application/x-www-form-urlencoded' \ --data grant_type=authorization_code \ --data 'client_id={CLIENT ID}' \ --data client_secret={CLIENT SECRET} \ --data code={CODE} \ --data 'redirect_uri={REDIRECT URI}'
    1. OIDC IdP의 토큰 엔드포인트로 {TOKEN ENDPOINT}를 바꾸십시오.

    2. OAuth 클라이언트의 클라이언트 ID로 {CLIENT ID}를 바꾸십시오.

    3. OAuth 클라이언트의 클라이언트 암호로 {CLIENT SECRET}를 바꾸십시오.

    4. 4단계에서 복사한 인증 코드 쿼리 파라미터로 {CODE}를 바꾸십시오.

    5. 작업자 포털 URL로 {REDIRECT URI}를 바꾸십시오.

    다음은 위에서 설명한 수정을 수행한 후의 cURL 요청의 예시입니다.

    curl --request POST \ --url 'https://example.com/token' \ --header 'content-type: application/x-www-form-urlencoded' \ --data grant_type=authorization_code \ --data 'client_id=f490a907-9bf1-4471-97aa-6bfd159f81ac' \ --data client_secret=client-secret \ --data code=MCNYDB... \ --data 'redirect_uri=https://example.labeling.sagemaker.aws/oauth2/idpresponse'
  6. 이 단계는 IdP가 반환하는 access_token 유형, 일반 텍스트 액세스 토큰 또는 JWT 액세스 토큰에 따라 다릅니다.

    • IdP가 JWT 액세스 토큰을 지원하지 않는 경우 access_token은 일반 텍스트(예: UUID)가 될 수 있습니다. 응답은 다음과 비슷해 보일 수 있습니다. 이 경우 7단계로 이동하십시오.

      { "access_token":"179c144b-fccb-4d96-a28f-eea060f39c13", "token_type":"Bearer", "expires_in":3600, "refresh_token":"ef43e52e-9b4f-410c-8d4c-d5c5ee57631a", "scope":"openid" }
    • IdP가 JWT 액세스 토큰을 지원하는 경우 5단계에서 JWT 형식의 액세스 토큰을 생성해야 합니다. 예를 들어, 응답은 다음과 비슷해 보일 수 있습니다.

      { "access_token":"eyJh...JV_adQssw5c", "refresh_token":"i6mapTIAVSp2oJkgUnCACKKfZxt_H5MBLiqcybBBd04", "refresh_token_expires_in":6327, "scope":"openid", "id_token":"eyJ0eXAiOiJK9...-rDaQzUHl6cQQWNiDpWOl_lxXjQEvQ" }

      JWT를 복사하고 디코딩하십시오. Python 스크립트 또는 타사 웹 사이트를 사용하여 디코딩할 수 있습니다. 예를 들어 https://jwt.io/ 웹 사이트로 이동하여 JWT를 인코딩됨 상자에 붙여넣어 디코딩할 수 있습니다.

      디코딩된 응답에 다음 내용이 포함되어 있는지 확인하십시오.

  7. 터미널에서 아래 나열된 필수 수정 사항을 수행한 후 다음 명령을 입력합니다.

    curl -X POST -H 'Authorization: Bearer {ACCESS TOKEN}' -d '' -k -v {USERINFO ENDPOINT}
    1. OIDC IdP의 사용자 정보 엔드포인트로 {USERINFO ENDPOINT}를 바꾸십시오.

    2. 7단계에서 받은 응답의 액세스 토큰으로 {ACCESS TOKEN}을 바꾸십시오. "access_token" 파라미터에 대한 항목입니다.

    다음은 위에서 설명한 수정을 수행한 후의 cURL 요청의 예시입니다.

    curl -X POST -H 'Authorization: Bearer eyJ0eX...' -d '' -k -v https://example.com/userinfo
  8. 위 절차의 마지막 단계에 대한 응답은 다음 코드 블록과 비슷해 보일 수 있습니다.

    6단계에서 반환된 access_token이 일반 텍스트인 경우 이 응답에 필수 정보가 포함되어 있는지 확인해야 합니다. 이 경우 응답에는 에 있는 표의 필수 SageMaker 클레임이 포함되어야 필수 및 선택적 클레임을 Ground Truth 및 Amazon A2I로 전송 합니다. 예, sagemaker-groups, sagamaker-name.

    { "sub":"122", "exp":"10000", "sagemaker-groups":["group1","group2"] "sagemaker-name":"name", "sagemaker-sub":"122", "sagemaker-client_id":"123456" }

다음 단계

IdP를 사용하여 프라이빗 작업 인력을 생성하고 IdP 인증 응답을 확인한 후에는 IdP 그룹을 사용하여 작업 팀을 만들 수 있습니다. 자세한 내용은 프라이빗 작업 인력 관리(OIDC IdP)를 참조하세요.

작업자의 작업 액세스를 특정 IP 주소로 제한하고 SageMaker API를 사용하여 인력을 업데이트하거나 삭제할 수 있습니다. 자세한 내용은 Amazon SageMaker API를 사용하여 개인 인력을 관리합니다. 단원을 참조하십시오.