As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Criar uma força de trabalho privada (OIDC IdP)
Crie uma força de trabalho privada usando um provedor de identidades (IdP) do OpenID Connect (OIDC) quando quiser autenticar e gerenciar seus operadores usando seu próprio provedor de identidades. Use esta página para saber como configurar seu IdP para se comunicar com o Amazon SageMaker Ground Truth (Ground Truth) ou o Amazon Augmented AI (Amazon A2I) e aprender como criar uma força de trabalho usando seu próprio IdP.
Para criar uma força de trabalho usando um IdP OIDC, seu IdP deve oferecer suporte a grupos porque o Ground Truth e o Amazon A2I usam um ou mais grupos que você especifica para criar equipes de trabalho. Você usa equipes de trabalho para especificar trabalhadores para seus trabalhos de rotulagem e tarefas de revisão humana. Como os grupos não são uma declaração padrãosagemaker:groups
que é enviada para o Ground Truth ou Amazon A2I do seu IdP. Para saber mais, consulte Envie reivindicações obrigatórias e opcionais para o Ground Truth e o Amazon A2I.
Você cria uma força de trabalho do OIDC IdP usando a operação da API. SageMaker CreateWorkforce
Depois de criar uma força de trabalho privada, essa força de trabalho e todas as equipes de trabalho e os operadores associados a ela estão disponíveis para uso em todas as tarefas de trabalho de rotulagem do Ground Truth e em tarefas de fluxos de trabalho de revisão humana do A2I. Para saber mais, consulte Crie uma força de trabalho IdP OIDC.
Envie reivindicações obrigatórias e opcionais para o Ground Truth e o Amazon A2I
Quando você usa seu próprio IdP, o Ground Truth e o Amazon A2I usam seu Issuer
, ClientId
e ClientSecret
para autenticar trabalhadores, obtendo um CÓDIGO de autenticação do seu AuthorizationEndpoint
.
A Ground Truth e a Amazon A2I usarão esse CÓDIGO para obter uma declaração personalizada de seu IdP TokenEndpoint
ou UserInfoEndpoint
. Você pode configurar TokenEndpoint
para retornar um token web JSON (JWT) ou UserInfoEndpoint
para retornar um objeto JSON. O objeto JWT ou JSON deve conter declarações obrigatórias e opcionais que você especificar. Uma declaração
nota
Alguns dos parâmetros na tabela a seguir podem ser especificados usando um :
ou -
. Por exemplo, você pode especificar os grupos aos quais um trabalhador pertence usando sagemaker:groups
ou sagemaker-groups
em sua declaração.
Nome | Obrigatório | Formato e valores aceitos | Descrição | Exemplo |
---|---|---|---|---|
|
Sim |
Tipo de dados: Se um trabalhador pertencer a um único grupo, identifique o grupo usando uma string. Se um trabalhador pertencer a vários grupos de caracteres, use uma lista de até 10 sequências de caracteres. Caracteres permitidos: Regex: [\p{L}\p{M}\p{S}\p{N}\p{P}]+ Cotas: 10 grupos por trabalhador 63 caracteres por nome de grupo |
Atribui um trabalhador a um ou mais grupos. Os grupos são usados para mapear o trabalhador em equipes de trabalho. |
Exemplo de trabalhador que pertence a um único grupo: Exemplo de um trabalhador que pertence a mais de um grupo: |
|
Sim |
Tipo de dados: String |
Isso é obrigatório para rastrear a identidade de um trabalhador dentro da plataforma Ground Truth para auditoria e identificar as tarefas realizadas por esse trabalhador. Para ADFS: os clientes devem usar o Identificador de Segurança Primário (SID). |
|
|
Sim |
Tipo de dados: String Caracteres permitidos: Regex: [\w+-]+ Cotas: 128 caracteres |
Um ID de cliente. Todos os tokens devem ser emitidos para esse ID de cliente. |
|
|
Sim |
Tipo de dados: String |
O nome do trabalhador a ser exibido no portal do trabalhador. |
|
|
Não |
Tipo de dados: String |
O e-mail do trabalhador. O Ground Truth usa esse e-mail para notificar os trabalhadores de que eles foram convidados para trabalhar em tarefas de rotulagem. O Ground Truth também usará esse e-mail para notificar seus funcionários quando as tarefas de rotulagem estiverem disponíveis, caso você configure um tópico do Amazon SNS para uma equipe de trabalho da qual esse funcionário faça parte. |
|
|
Não |
Tipo de dados: Bool Valores aceitos:
|
Indica se o e-mail do usuário foi verificado ou não. |
|
Veja a seguir um exemplo da sintaxe do objeto JSON UserInfoEndpoint
que você pode retornar.
{ "sub":"
122
", "exp":"10000
", "sagemaker-groups":["group1
","group2
"] "sagemaker-name":"name
", "sagemaker-sub":"122
", "sagemaker-client_id":"123456
" }
O Ground Truth ou o Amazon A2I compara os grupos listados sagemaker:groups
ou sagemaker-groups
para verificar se seu trabalhador pertence à equipe de trabalho especificada no trabalho de rotulagem ou na tarefa de revisão humana. Depois que a equipe de trabalho é verificada, as tarefas de rotulagem ou revisão humana são enviadas a esse funcionário.
Crie uma força de trabalho IdP OIDC
Você pode criar uma força de trabalho usando a operação da SageMaker API CreateWorkforce
e os SDKs específicos do idioma associados. Especifique um WorkforceName
e informações sobre seu OIDC IDP no parâmetro OidcConfig
. É recomendável que você configure seu OIDC com um URI de redirecionamento de espaço reservado e, em seguida, atualize o URI com o URL do portal do trabalhador depois de criar a força de trabalho. Para saber mais, consulte Configure seu IdP OIDC.
Veja a seguir um exemplo da solicitação. Consulte CreateWorkforce
para saber mais sobre cada parâmetro nessa solicitação.
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"
] } }
Configure seu IdP OIDC
A forma como você configura seu IdP OIDC depende do IdP que você usa e dos requisitos de sua empresa.
Ao configurar seu IdP, você deve especificar um URI de retorno de chamada ou redirecionamento. Depois que o Ground Truth ou o Amazon A2I autenticarem um trabalhador, esse URI redirecionará o trabalhador para o portal do trabalhador, onde os trabalhadores poderão acessar tarefas de rotulagem ou revisão humana. Para criar uma URL do portal do trabalhador, você precisa criar uma força de trabalho com os detalhes do seu IdP do OIDC usando a operação da API CreateWorkforce
. Especificamente, você deve configurar seu IdP do OIDC com as declarações personalizadas necessárias do sagemaker (consulte a próxima seção para obter mais detalhes). Portanto, é recomendável que você configure seu OIDC com um URI de redirecionamento de espaço reservado e, em seguida, atualize o URI depois de criar a força de trabalho. Consulte Crie uma força de trabalho IdP OIDC para saber como criar uma força de trabalho usando essa API.
Você pode visualizar a URL do seu portal de trabalho no console SageMaker Ground Truth ou usando a operação de SageMaker API,DescribeWorkforce
. A URL do portal do trabalhador está no parâmetro SubDomain
na resposta.
Importante
Certifique-se de adicionar o subdomínio da força de trabalho à sua lista de permissões de IdP do OIDC. Quando você adiciona o subdomínio à sua lista de permissões, ele deve terminar com /oauth2/idpresponse
.
Para visualizar a URL do portal do trabalhador após criar uma força de trabalho privada (Console):
-
Abra o SageMaker console em https://console.aws.amazon.com/sagemaker/
. -
No painel de navegação, selecione Rotular forças de trabalho.
-
Selecione a guia Privado .
-
No resumo da força de trabalho privada, você verá o URL de login do portal de rotulagem. Esta é a URL do seu portal de trabalho.
Para visualizar a URL do portal do trabalhador após criar uma força de trabalho privada (API):
Quando criar uma força de trabalho privada usando CreateWorkforce
, você especifica um WorkforceName
. Use esse nome para ligar DescribeWorkforce
. A tabela a seguir inclui exemplos de solicitações usando AWS CLI AWS SDK for Python (Boto3) e.
Valide sua resposta de autenticação da força de trabalho do OIDC IdP
Depois de criar sua força de trabalho IdP OIDC, use o procedimento a seguir para validar o fluxo de trabalho de autenticação usando cURL. Esse procedimento pressupõe que você tenha acesso a um terminal e que tenha o cURL instalado.
Valide sua resposta de autorização do OIDC IdP:
-
Obtenha um código de autorização usando um URI configurado da seguinte forma:
{AUTHORIZE ENDPOINT}
?client_id={CLIENT ID}
&redirect_uri={REDIRECT URI}
&scope={SCOPE}
&response_type=code-
Substitua
pelo endpoint de autorização do seu IdP do OIDC.{AUTHORIZE ENDPOINT}
-
Substitua
pelo ID do cliente do seu cliente OAuth.{CLIENT ID}
-
Substitua
pela URL do portal do trabalhador. Se ainda não estiver presente, você deverá adicionar{REDIRECT URI}
/oauth2/idpresponse
ao final do URL. -
Se tiver um escopo personalizado, use-o para substituir
. Se não tiver um escopo personalizado, substitua{SCOPE}
por{SCOPE}
openid
.
Veja a seguir um exemplo de URI após as modificações acima serem feitas:
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
-
-
Copie e cole o URI modificado da etapa 1 em seu navegador e pressione Enter no teclado.
-
Autentique usando seu IdP.
-
Copie o parâmetro de consulta do código de autenticação no URI. Esse parâmetro começa com
code=
. Veja a seguir um exemplo de como pode ser a resposta. Neste exemplo, copiecode=MCNYDB...
e tudo o que vier depois.https://example.labeling.sagemaker.aws/oauth2/idpresponse?code=MCNYDB....
-
Abra um terminal e digite o seguinte comando depois de fazer as modificações necessárias listadas abaixo:
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}
'-
Substitua
pelo endpoint do token do seu IdP do OIDC.{TOKEN ENDPOINT}
-
Substitua
pelo ID do cliente do seu cliente OAuth.{CLIENT ID}
-
Substitua
pelo ID segredo do cliente do seu cliente OAuth.{CLIENT SECRET}
-
Substitua
pelo parâmetro de consulta do código de autenticação que você copiou na etapa 4.{CODE}
-
Substitua
pela URL do portal do trabalhador.{REDIRECT URI}
Veja a seguir um exemplo da solicitação cURL após fazer as modificações descritas acima:
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'
-
-
Essa etapa depende do tipo de retorno do
access_token
IdP, de um token de acesso de texto simples ou de um token de acesso JWT.-
Se seu IdP não suportar tokens de acesso JWT,
access_token
pode ser texto sem formatação (por exemplo, um UUID). A resposta que você vê pode ser semelhante à seguinte. Nesse caso, vá para a etapa 7.{ "access_token":"179c144b-fccb-4d96-a28f-eea060f39c13", "token_type":"Bearer", "expires_in":3600, "refresh_token":"ef43e52e-9b4f-410c-8d4c-d5c5ee57631a", "scope":"openid" }
-
Se o seu IdP suportar tokens de acesso JWT, a etapa 5 deverá gerar um token de acesso no formato JWT. Por exemplo, a resposta pode ser semelhante ao seguinte exemplo:
{ "access_token":"eyJh...JV_adQssw5c", "refresh_token":"i6mapTIAVSp2oJkgUnCACKKfZxt_H5MBLiqcybBBd04", "refresh_token_expires_in":6327, "scope":"openid", "id_token":"eyJ0eXAiOiJK9...-rDaQzUHl6cQQWNiDpWOl_lxXjQEvQ" }
Copie o JWT e decodifique-o. Você pode usar o script python ou um site de terceiros para decodificá-lo. Por exemplo, você pode acessar o site https://jwt.io/
e colar o JWT na caixa Codificado para decodificá-lo. Certifique-se de que a resposta decodificada contenha o seguinte:
-
As SageMaker reivindicações obrigatórias na tabela encontrada emEnvie reivindicações obrigatórias e opcionais para o Ground Truth e o Amazon A2I. Caso contrário, você deverá reconfigurar seu IdP do OIDC para conter essas declarações.
-
O emissor que você especificou ao configurar a força de trabalho do IdP.
-
-
-
Em um terminal, digite o seguinte comando depois de fazer as modificações necessárias listadas abaixo:
curl -X POST -H 'Authorization: Bearer
{ACCESS TOKEN}
' -d '' -k -v{USERINFO ENDPOINT}
-
Substitua
pelo endpoint das informações do usuário do seu IdP do OIDC.{USERINFO ENDPOINT}
-
Substitua
pelo token de acesso na resposta que você recebeu na etapa 7. Essa é a entrada para o parâmetro{ACCESS TOKEN}
"access_token"
.
Veja a seguir um exemplo da solicitação cURL após fazer as modificações descritas acima:
curl -X POST -H 'Authorization: Bearer eyJ0eX...' -d '' -k -v https://example.com/userinfo
-
-
A resposta para a etapa final do procedimento acima pode ser semelhante ao bloco de código a seguir.
Se o
access_token
retornado na etapa 6 for texto sem formatação, você deverá verificar se essa resposta contém as informações necessárias. Nesse caso, a resposta deve conter as SageMaker declarações obrigatórias na tabela encontrada emEnvie reivindicações obrigatórias e opcionais para o Ground Truth e o Amazon A2I. Por exemplo,sagemaker-groups
,sagamaker-name
.{ "sub":"122", "exp":"10000", "sagemaker-groups":["group1","group2"] "sagemaker-name":"name", "sagemaker-sub":"122", "sagemaker-client_id":"123456" }
Próximos Passos
Depois de criar uma força de trabalho privada usando seu IdP e verificar sua resposta de autenticação de IdP, você pode criar equipes de trabalho usando seus grupos de IdP. Para saber mais, consulte Gerenciar uma força de trabalho privada (OIDC IdP).
Você pode restringir o acesso dos trabalhadores às tarefas a endereços IP específicos e atualizar ou excluir sua força de trabalho usando a SageMaker API. Para saber mais, consulte Gestão da força de trabalho privada usando a Amazon SageMaker API.