Creación de un personal privado (IdP de OIDC) - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de un personal privado (IdP de OIDC)

Cree un personal privado con un proveedor de identidades (IdP) de OpenID Connect (OIDC) cuando desee autenticar y gestionar a los trabajadores con su propio proveedor de identidad. Usa esta página para aprender a configurar tu IdP para que se comunique con Amazon SageMaker Ground Truth (Ground Truth) o Amazon Augmented AI (Amazon A2I) y para aprender a crear una fuerza laboral con tu propio IdP.

Para crear un personal mediante un IdP de OIDC, su IdP deberá brindar soporte a los grupos porque Ground Truth y Amazon A2I usan uno o más grupos especificados por usted para crear equipos de trabajo. Utilice equipos de trabajo para seleccionar trabajadores para sus tareas de etiquetado y revisión humana. Dado que los grupos no son una reclamación estándar, su IdP puede tener una convención de nomenclatura diferente para un grupo de usuarios (trabajadores). Por lo tanto, deberá identificar uno o más grupos de usuarios a los que pertenece un trabajador mediante la reclamación personalizada sagemaker:groups que su IdP envía a Ground Truth o Amazon A2I. Para obtener más información, consulte Envíe las reclamaciones obligatorias y opcionales a Ground Truth y Amazon A2I.

Usted crea una fuerza laboral de IdP de OIDC mediante la operación de API. SageMaker CreateWorkforce Una vez creado el personal privado, dicho personal y todos los equipos de trabajo y trabajadores asociados al mismo estarán disponibles para todas las tareas de etiquetado de Ground Truth y tareas de flujos de trabajo de revisión humana de Amazon A2I. Para obtener más información, consulte Creación de un personal IdP de OIDC.

Envíe las reclamaciones obligatorias y opcionales a Ground Truth y Amazon A2I

Al usar su propio IdP, Ground Truth y Amazon A2I utilizan su Issuer, ClientId y ClientSecret para autenticar a los trabajadores obteniendo un CÓDIGO de autenticación de su AuthorizationEndpoint.

Ground Truth y Amazon A2I utilizarán este CÓDIGO para obtener una reclamación personalizada de su IdP TokenEndpoint o UserInfoEndpoint. Puede configurar TokenEndpoint para que devuelva un token web JSON (JWT), o bien configurar UserInfoEndpoint para que devuelva un objeto JSON. El objeto JWT o JSON debe contener las reclamaciones obligatorias y opcionales que usted especifique. Una reclamación es un par clave-valor que contiene información sobre un trabajador o metadatos sobre el servicio OIDC. En la siguiente tabla se enumeran las reclamaciones que deben incluirse y que, de forma opcional, pueden incluirse en el objeto JWT o JSON que devuelve su IdP.

nota

Algunos de los parámetros de la siguiente tabla pueden especificarse mediante : o -. Por ejemplo, puede especificar los grupos a los que pertenece un trabajador utilizando sagemaker:groups o sagemaker-groups en su reclamación.

Nombre Obligatoria Formato y valores aceptados Descripción Ejemplo

sagemaker:groups o sagemaker-groups

Tipo de datos:

Si un trabajador pertenece a un solo grupo, identifique el grupo mediante una cadena.

Si un trabajador pertenece a varios grupos, utilice una lista de hasta 10 cadenas.

Caracteres permitidos:

Regex: [\p{L}\p{M}\p{S}\p{N}\p{P}]+

Cuotas:

10 grupos por trabajador

63 caracteres por nombre de grupo

Asigna un trabajador a uno o varios grupos. Los grupos se utilizan para mapear al trabajador en equipos de trabajo.

Ejemplo de un trabajador que pertenece a un solo grupo: "work_team1"

Ejemplo de un trabajador que pertenece a más de un grupo: ["work_team1", "work_team2"]

sagemaker:sub o sagemaker-sub

Tipo de datos:

Cadena

Esto es obligatorio para rastrear la identidad de un trabajador dentro de la plataforma Ground Truth para auditar e identificar las tareas en las que ha trabajado ese trabajador.

En cuanto al ADFS, los clientes deben usar el identificador de seguridad principal (SID).

"111011101-123456789-3687056437-1111"

sagemaker:client_id o sagemaker-client_id

Tipo de datos:

Cadena

Caracteres permitidos:

Regex: [\w+-]+

Cuotas:

128 caracteres

Un ID de cliente. Todos los tokens deben emitirse para este ID de cliente.

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

sagemaker:name o sagemaker-name

Tipo de datos:

Cadena

El nombre del trabajador que se mostrará en el portal para trabajadores.

"Jane Doe"

email

No

Tipo de datos:

Cadena

El correo electrónico del trabajador. Ground Truth usa este correo electrónico para notificar a los trabajadores que han sido invitados a trabajar en tareas de etiquetado. Ground Truth también utilizará este correo electrónico para avisar a sus trabajadores cuando haya tareas de etiquetado disponibles si configura un tema de Amazon SNS para un equipo de trabajo del que forma parte este trabajador.

"example-email@domain.com"

email_verified

No

Tipo de datos:

Bool

Valores aceptados:

True, False

Indica si el correo electrónico del usuario ha sido verificado o no.

True

A continuación, se muestra un ejemplo de la sintaxis del objeto JSON que su UserInfoEndpoint puede devolver.

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

Ground Truth o Amazon A2I comparan los grupos que figuran en sagemaker:groups o sagemaker-groups para verificar que su trabajador pertenece al equipo de trabajo especificado en el trabajo de etiquetado o la tarea de revisión humana. Una vez verificado el equipo de trabajo, las tareas de etiquetado o revisión humana se envían a dicho trabajador.

Creación de un personal IdP de OIDC

Puede crear una fuerza laboral mediante la operación de la SageMaker API CreateWorkforce y los SDK asociados específicos del idioma. Especifique un WorkforceName e información sobre su IdP de OIDC en el parámetro OidcConfig. Le recomendamos que configure su OIDC con un URI de redireccionamiento indicativo y, a continuación, que actualice el URI con la URL del portal para trabajadores tras crear el personal. Para obtener más información, consulte Configure su IdP de OIDC.

A continuación se muestra un ejemplo de solicitud: Consulte CreateWorkforce para obtener más información sobre cada parámetro de esta solicitud.

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 su IdP de OIDC

La forma de configurar su IdP de OIDC dependerá del IdP que utilice y de los requisitos de su empresa.

Al configurar su IdP, deberá especificar una devolución de llamada o redirigir el URI. Después de que Ground Truth o Amazon A2I autentiquen a un trabajador, este URI redirigirá al trabajador al portal para trabajadores donde los trabajadores pueden acceder al etiquetado o a las tareas de revisión humana. Para crear la URL de un portal para trabajadores, deberá crear un personal con los detalles de su IdP de OIDC mediante la operación de API CreateWorkforce. En particular, deberá configurar su IdP de OIDC con las reclamaciones de SageMaker personalizadas requeridas (consulte la siguiente sección para obtener más información). Por lo tanto, se recomienda configurar el OIDC con un URI de redireccionamiento temporal y, a continuación, actualizar el URI después de crear la plantilla. Consulte Creación de un personal IdP de OIDC para obtener información sobre cómo crear un personal mediante esta API.

Puedes ver la URL de tu portal de trabajadores en la consola SageMaker Ground Truth o mediante la operación SageMaker API,DescribeWorkforce. La URL del portal para trabajadores está en el parámetro SubDomain de la respuesta.

importante

Asegúrese de añadir el subdominio del personal a su lista de IdP de OIDC permitidos. Cuando añada el subdominio a su lista de permitidos, deberá terminar en /oauth2/idpresponse.

Para ver la URL de su portal para trabajadores después de crear un personal privado (consola):
  1. Abre la SageMaker consola en https://console.aws.amazon.com/sagemaker/.

  2. En el panel de navegación, elija Personal de etiquetado.

  3. Seleccione la pestaña Privado.

  4. En el resumen de personal privado, verá la URL de inicio de sesión del portal de etiquetado. Esta es la URL de su portal para trabajadores.

Para ver la URL de su portal para trabajadores después de crear un personal privado (API):

Al crear un personal privado utilizando CreateWorkforce, deberá especificar WorkforceName. Use este nombre para llamar a DescribeWorkforce. En la siguiente tabla se incluyen ejemplos de solicitudes que utilizan las AWS CLI teclas y 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'

Valide su respuesta de autenticación del personal IdP de OIDC

Una vez creado su personal IdP de OIDC, puede utilizar el siguiente procedimiento para validar su flujo de trabajo de autenticación mediante cURL. Este procedimiento asume que tiene acceso a un terminal y que tiene cURL instalado.

Para validar su respuesta de autorización IdP de OIDC:
  1. Obtenga un código de autorización mediante un URI configurado de la siguiente manera:

    {AUTHORIZE ENDPOINT}?client_id={CLIENT ID}&redirect_uri={REDIRECT URI}&scope={SCOPE}&response_type=code
    1. Sustituya {AUTHORIZE ENDPOINT} por el punto de conexión autorizado para su IdP de OIDC.

    2. Sustituya {CLIENT ID} por el ID de cliente de su cliente OAuth.

    3. Sustituya {REDIRECT URI} por la URL del portal para trabajadores. Si aún no está presente, deberá agregar /oauth2/idpresponse al final de la URL.

    4. Si tiene un ámbito personalizado, úselo para sustituir {SCOPE}. Si no tiene ningún ámbito personalizado, sustituya {SCOPE} poropenid.

    A continuación, se muestra un ejemplo de un URI tras haber realizado las modificaciones anteriores:

    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. Copie y pegue el URI modificado del paso 1 en su navegador y, a continuación, pulse Entrar en su teclado.

  3. Autentíquese con su IdP.

  4. Copie el parámetro de consulta del código de autenticación en el URI. Este parámetro comienza por code=. El siguiente es un ejemplo de cómo podría ser la respuesta. En este ejemplo, copie code=MCNYDB... y todo lo que sigue.

    https://example.labeling.sagemaker.aws/oauth2/idpresponse?code=MCNYDB....
  5. Abra una terminal e introduzca el siguiente comando una vez realizadas las modificaciones necesarias que se indican a continuación:

    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. Sustituya {TOKEN ENDPOINT} por el punto de conexión del token de su IdP de OIDC.

    2. Sustituya {CLIENT ID} por el ID de cliente de su cliente OAuth.

    3. Sustituya {CLIENT SECRET} por el secreto de cliente de su cliente OAuth.

    4. Sustituya {CODE} por el parámetro de consulta del código de autenticación que copió en el paso 4.

    5. Sustituya {REDIRECT URI} por la URL del portal para trabajadores.

    A continuación, se muestra un ejemplo de la solicitud de cURL una vez realizadas las modificaciones descritas anteriormente:

    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. Este paso depende del tipo de access_token que su IDP devuelva, un token de acceso de texto sin formato o un token de acceso JWT.

    • Si su IdP no admite los tokens de acceso JWT, access_token puede ser texto sin formato (por ejemplo, un UUID). Verá una respuesta similar a la siguiente. En este caso, vaya al paso 7.

      { "access_token":"179c144b-fccb-4d96-a28f-eea060f39c13", "token_type":"Bearer", "expires_in":3600, "refresh_token":"ef43e52e-9b4f-410c-8d4c-d5c5ee57631a", "scope":"openid" }
    • Si su IdP admite los tokens de acceso JWT, el paso 5 debería generar un token de acceso en formato JWT. La respuesta tiene un aspecto similar a la del siguiente ejemplo:

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

      Copie el JWT y decodifíquelo. Puede utilizar un script de Python o un sitio web de terceros para decodificarlo. Por ejemplo, puede ir al sitio web https://jwt.io/ y pegar el JWT en el cuadro codificado para decodificarlo.

      Asegúrese de que la respuesta decodificada contenga lo siguiente:

  7. En una terminal, introduzca el siguiente comando una vez realizadas las modificaciones necesarias que se indican a continuación:

    curl -X POST -H 'Authorization: Bearer {ACCESS TOKEN}' -d '' -k -v {USERINFO ENDPOINT}
    1. Sustituya {USERINFO ENDPOINT} por el punto de conexión de información del usuario de su IdP de OIDC.

    2. Sustituya {ACCESS TOKEN} por el token de acceso de la respuesta que recibió en el paso 7. Esta es la entrada del parámetro "access_token".

    A continuación, se muestra un ejemplo de la solicitud de cURL una vez realizadas las modificaciones descritas anteriormente:

    curl -X POST -H 'Authorization: Bearer eyJ0eX...' -d '' -k -v https://example.com/userinfo
  8. La respuesta al paso final del procedimiento anterior puede parecerse a la del siguiente bloque de código.

    Si lo que access_token devolvió en el paso 6 fue texto plano, deberá comprobar que esta respuesta contiene la información requerida. En este caso, la respuesta debe incluir las SageMaker reclamaciones obligatorias de la tabla que se encuentra enEnvíe las reclamaciones obligatorias y opcionales a Ground Truth y Amazon A2I. Por ejemplo, sagemaker-groups, sagamaker-name.

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

Siguientes pasos

Una vez que haya creado un personal privado con su IdP y haya verificado la respuesta de autenticación de su IdP, podrá crear equipos de trabajo con sus grupos de IdP. Para obtener más información, consulte Gestionar un personal privado (IdP de OIDC).

Puedes restringir el acceso de los trabajadores a las tareas a direcciones IP específicas y actualizar o eliminar a tus empleados mediante la SageMaker API. Para obtener más información, consulte Gestión de la fuerza laboral privada mediante Amazon SageMaker API.