翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
プライベートワークフォースを作成する (OIDC IdP)
独自の ID プロバイダーを使用してワーカーを認証および管理する場合は、OpenID Connect (OIDC) ID プロバイダー (IdP) を使用してプライベートワーカーを作成します。このページでは、Amazon SageMaker Ground Truth (Ground Truth) または Amazon Augmented AI (Amazon A2I) と通信するように IdP を設定する方法と、独自の IdP を使用してワークフォースを作成する方法について説明します。
OIDC IdP を使用して従業員を作成するには、IdP がグループをサポートしている必要があります。Ground Truth と Amazon A2I が作業チームを作成するために、指定した 1 つ以上のグループを使用するためです。作業チームを使用して、ラベル付けジョブと人間によるレビュータスクのワーカーを指定します。グループがスタンダードクレームsagemaker:groups
を使用して、ワーカーが属する 1 つ以上のユーザーグループを特定する必要があります。詳細については、「必須およびオプションのクレームを Ground Truth と Amazon A2I に送信する」を参照してください。
API SageMaker オペレーション を使用して OIDC IdP ワークフォースを作成しますCreateWorkforce
。プライベートワークフォースを作成すると、そのワークフォースとそれに関連付けられているすべての作業チームとワーカーは、すべての Ground Truth ラベル付けジョブタスクと Amazon A2I の人間によるレビューワークフロータスクで使用できるようになります。詳細については、「OIDC IdP ワークフォースを作成する」を参照してください。
必須およびオプションのクレームを Ground Truth と Amazon A2I に送信する
独自の IdP を使うとき、Ground Truth と Amazon A2I は Issuer
、ClientId
、ClientSecret
を使用して、AuthorizationEndpoint
から認証コードを取得することでワーカーを認証します。
Ground Truth と Amazon A2I はこのコードを使用して、IdP の TokenEndpoint
または UserInfoEndpoint
のいずれかからカスタムクレームを取得します。TokenEndpoint
を設定して JSON ウェブトークン (JWT) を返すか、UserInfoEndpoint
を設定して JSON オブジェクトを返すことができます。JWT または JSON オブジェクトには、指定する必須およびオプションのクレームが含まれている必要があります。クレーム
注記
次の表の一部のパラメータは、:
または -
を使用して指定できます。例えば、クレームに sagemaker:groups
または sagemaker-groups
を使用して、ワーカーが属するグループを指定できます。
名前 | 必須 | 受け入れられるフォーマットと値 | 説明 | 例 |
---|---|---|---|---|
|
はい |
データ型: ワーカーが単一のグループに属している場合は、文字列を使用してグループを特定します。 ワーカーが複数のグループに属している場合は、最大 10 個の文字列のリストを使用します。 使用できる文字: 正規表現: [\p{L}\p{M}\p{S}\p{N}\p{P}]+ クォータ: ワーカーにつき 10 グループ グループ名あたり 63 文字 |
ワーカーを 1 つ以上のグループに割り当てます。グループは、ワーカーを作業チームにマッピングするために使用されます。 |
1 つのグループに属するワーカーの例: 複数のグループに属するワーカーの例: |
|
はい |
データ型: 文字列 |
これは、監査のために Ground Truth プラットフォーム内でワーカー ID を追跡し、そのワーカーによって処理されたタスクを特定するために必須です。 ADFS の場合: お客様は、プライマリセキュリティ識別子 (SID) を使用する必要があります。 |
|
|
はい |
データ型: 文字列 使用できる文字: 正規表現: [\w+-]+ クォータ: 128 文字 |
クライアント ID。このクライアント ID に対してすべてのトークンを発行する必要があります。 |
|
|
はい |
データ型: 文字列 |
ワーカーポータルに表示されるワーカー名。 |
|
|
いいえ |
データ型: 文字列 |
ワーカーのメール。Ground Truth は、このメールを使用して、ラベル付けタスクの作業に招待されたことをワーカーに通知します。Ground Truth は、このワーカーがいる作業チームの Amazon SNS トピックを設定する場合に、ラベル付けタスクが利用可能になったことをワーカーに通知するためにも、このメールを使用します。 |
|
|
いいえ |
データ型: Bool 使用できる値:
|
ユーザーのメールが検証されたかどうかを示します。 |
|
以下では、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
および関連する言語固有の SDKsを使用してワークフォースを作成できます。WorkforceName
とパラメータ OidcConfig
内の OIDC IDP に関する情報を指定します。プレースホルダーのリダイレクト 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 ワークフォースを作成する」を参照してください。
ワーカーポータル URL は、 SageMaker Ground Truth コンソール、または SageMaker API オペレーション を使用して表示できますDescribeWorkforce
。ワーカーポータル URL は、レスポンスの SubDomain
パラメータにあります。
重要
必ず ワークフォースサブドメインを OIDC IdP 許可リストに追加してください。許可リストにサブドメインを追加する場合、サブドメインは /oauth2/idpresponse
で終わる必要があります。
プライベートワークフォースを作成した後にワーカーポータル URL を表示するには、次の手順に従います (コンソール)。
-
https://console.aws.amazon.com/sagemaker/
で SageMaker コンソールを開きます。 -
ナビゲーションペインで、[Labeling workforces] (ラベル付けワークフォース) を選択します。
-
[Private] タブを選択します。
-
プライベートワークフォースの概要に、ラベル付けポータルのサインイン URL があります。これが、ワーカーポータル URL です。
プライベートワークフォース (API) を作成した後にワーカーポータル URL を表示するには、次の手順に従います (API)。
CreateWorkforce
を使用してプライベートワークフォースを作成する場合は、WorkforceName
を指定します。この名前を使用して DescribeWorkforce
を呼び出します。次の表に、 AWS CLI および を使用したリクエストの例を示します AWS SDK for Python (Boto3)。
OIDC IdP ワークフォース認証レスポンスを検証する
OIDC IdP ワークフォースを作成したら、次の手順に従って、cURL を使用して認証ワークフローを検証できます。この手順では、ターミナルへのアクセス権があり、cURL がインストールされていることを前提としています。
OIDC IdP 認証レスポンスを検証するには、次の手順を実行します。
-
次のように構成された URI を使用して認証コードを取得します。
{AUTHORIZE ENDPOINT}
?client_id={CLIENT ID}
&redirect_uri={REDIRECT URI}
&scope={SCOPE}
&response_type=code-
を、 OIDC IdP の認証エンドポイントに置き換えます。{AUTHORIZE ENDPOINT}
-
を、OAuth クライアントのクライアント ID に置き換えます。{CLIENT ID}
-
を、ワーカーポータル URL に置き換えます。存在しない場合は、URL の末尾に{REDIRECT URI}
/oauth2/idpresponse
を追加する必要があります。 -
カスタムスコープがある場合は、それを
に置き換えます。カスタムスコープがない場合は、{SCOPE}
を{SCOPE}
openid
で置き換えます。
以下は、上記の変更が行われた後の 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
-
-
ステップ 1 で変更した URI をコピーしてブラウザに貼り付け、キーボードの Enter キーを押します。
-
IdP を使用して認証します。
-
URI で認証コードのクエリパラメータをコピーします。このパラメータは
code=
で始まります。以下に示しているのは、レスポンスの具体的な例です。この例では、code=MCNYDB...
とそれ以降のすべてをコピーします。https://example.labeling.sagemaker.aws/oauth2/idpresponse?code=MCNYDB....
-
ターミナルを開き、以下に示す必要な変更を行った後、次のコマンドを入力します。
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}
'-
を、OIDC IdP のトークンエンドポイントに置き換えます。{TOKEN ENDPOINT}
-
を、OAuth クライアントのクライアント ID に置き換えます。{CLIENT ID}
-
を、OAuth クライアントからのクライアントシークレットに置き換えます。{CLIENT SECRET}
-
を、ステップ 4 でコピーした認証コードクエリパラメータに置き換えます。{CODE}
-
を、ワーカーポータル 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'
-
-
このステップは、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 を [Encoded] (エンコード済み) ボックスに貼り付けてデコードします。 デコードされたレスポンスに以下が含まれていることを確認します。
-
にあるテーブル内の必須 SageMaker クレーム必須およびオプションのクレームを Ground Truth と Amazon A2I に送信する。含まれていない場合は、これらのクレームを含めるように OIDC IdP を再構成する必要があります。
-
IdP ワークフォースの設定時に指定した発行者。
-
-
-
ターミナルで、以下に示す必要な変更を加えた後、次のコマンドを入力します。
curl -X POST -H 'Authorization: Bearer
{ACCESS TOKEN}
' -d '' -k -v{USERINFO ENDPOINT}
-
を、OIDC IdP のユーザー情報エンドポイントに置き換えます。{USERINFO ENDPOINT}
-
を、ステップ 7 で受信したレスポンスにアクセストークンに置き換えます。これは、{ACCESS TOKEN}
"access_token"
パラメータのエントリです。
以下に、上記の変更を加えた後の cURL リクエストの例を示します。
curl -X POST -H 'Authorization: Bearer eyJ0eX...' -d '' -k -v https://example.com/userinfo
-
-
上記の手順の最後のステップに対するレスポンスは、次のコードブロックのようになります。
ステップ 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)」を参照してください。
SageMaker API を使用して、タスクへのワーカーアクセスを特定の IP アドレスに制限し、ワークフォースを更新または削除できます。詳細については、「Amazon を使用したプライベートワークフォース管理 SageMaker API」を参照してください。