Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Créer une main-d'œuvre privée (OIDC IdP)
Créez une main-d'œuvre privée en utilisant un fournisseur d'identité (IdP) OpenID Connect (OIDC) lorsque vous souhaitez authentifier et gérer les employés en utilisant votre propre fournisseur d'identité. Utilisez cette page pour savoir comment configurer votre IdP pour communiquer avec Amazon SageMaker Ground Truth (Ground Truth) ou Amazon Augmented AI (Amazon A2I) et pour apprendre à créer une main-d'œuvre en utilisant votre propre IdP.
Pour créer une main-d'œuvre à l'aide d'un IdP OIDC, votre IdP doit prendre en charge les groupes car Ground Truth et Amazon A2I font correspondre un ou plusieurs groupes de votre IdP à une équipe de travail. Vous utilisez des équipes de travail pour spécifier les employés pour vos tâches de labélisation et de révision humaine. Comme les groupes ne sont pas une revendication standardsagemaker:groups
qui est envoyée à Ground Truth ou Amazon A2I depuis votre IdP. Pour en savoir plus, veuillez consulter la section Envoyer les revendications obligatoires et facultatives à Ground Truth et Amazon A2I.
Vous créez un effectif IdP OIDC à l'aide de SageMaker l'opération API. CreateWorkforce
Une fois que vous avez créé une main-d'œuvre privée, celle-ci, ainsi que toutes les équipes de travail et tous les employés qui lui sont associés, peuvent être utilisés pour toutes les tâches de labélisation Ground Truth et les tâches des flux de travail de révision humaine Amazon A2I. Pour en savoir plus, veuillez consulter la section Création d'une main-d'œuvre OIDC IdP.
Envoyer les revendications obligatoires et facultatives à Ground Truth et Amazon A2I
Lorsque vous utilisez votre propre IdP, Ground Truth et Amazon A2I utilisez vos propres Issuer
, ClientId
et ClientSecret
pour authentifier les employés en obtenant un CODE d'authentification à depuis votre AuthorizationEndpoint
.
Ground Truth et Amazon A2I utiliseront ce CODE pour obtenir une revendication personnalisée auprès du TokenEndpoint
ou du UserInfoEndpoint
de votre IdP. Vous pouvez configurer TokenEndpoint
pour qu'il retourne un jeton Web JSON (JWT) ou UserInfoEndpoint
pour qu'il retourne un objet JSON. L'objet JWT ou JSON doit contenir des revendications obligatoires et facultatives que vous spécifiez. Une revendication
Note
Certains des paramètres du tableau suivant peuvent être spécifiés en utilisant :
ou -
. Par exemple, vous pouvez spécifier les groupes auxquels un employé appartient en utilisant sagemaker:groups
ou sagemaker-groups
dans votre revendication.
Nom | Obligatoire | Format et valeurs acceptés | Description | Exemple |
---|---|---|---|---|
|
Oui |
Type de données : Si un employé appartient à un seul groupe, identifiez le groupe à l'aide d'une chaîne. Si un employé appartient à plusieurs groupes, utilisez une liste de 10 chaînes au maximum. Caractères autorisés : Regex : [\p{L}\p{M}\p{S}\p{N}\p{P}]+ Quotas : 10 groupes par employé 63 caractères par nom de groupe |
Affecte un employé à un ou plusieurs groupes. Les groupes sont utilisés pour affecter l'employé à des équipes de travail. |
Exemple d'un employé appartenant à un seul groupe : Exemple d'un employé appartenant à plusieurs groupes : |
|
Oui |
Type de données : Chaîne |
Ceci est obligatoire pour suivre l'identité d'un employé dans la plateforme Ground Truth pour l'audit et pour identifier les tâches effectuées par ce travailleur. Pour ADFS : les clients doivent utiliser le SID (Primary Security Identifier). |
|
|
Oui |
Type de données : Chaîne Caractères autorisés : Regex : [\w+-]+ Guillemets : 128 caractères |
Un ID client. Tous les jetons doivent être émis pour cet ID client. |
|
|
Oui |
Type de données : Chaîne |
Le nom de l'employé à afficher dans le portail de travail. |
|
|
Non |
Type de données : Chaîne |
L'e-mail de l'employé. Ground Truth utilise cet e-mail pour informer les employés qu'ils ont été invités à travailler sur des tâches de labélisation. Ground Truth utilisera également cet e-mail pour notifier vos employés lorsque des tâches de labélisation deviennent disponibles si vous avez configuré une rubrique Amazon SNS pour une équipe de travail dont ce travailleur fait partie. |
|
|
Non |
Type de données : Booléen Valeurs acceptées :
|
Indique si l'e-mail de l'utilisateur a été vérifié ou non. |
|
Voici un exemple de la syntaxe d'objet JSON que votre UserInfoEndpoint
peut retourner.
{ "sub":"
122
", "exp":"10000
", "sagemaker-groups":["group1
","group2
"] "sagemaker-name":"name
", "sagemaker-sub":"122
", "sagemaker-client_id":"123456
" }
Ground Truth ou Amazon A2I compare les groupes énumérés en sagemaker:groups
ou sagemaker-groups
pour vérifier que votre employé appartient à l'équipe de travail spécifiée dans la tâche de labélisation ou de révision humaine. Une fois que l'équipe de travail a été vérifiée, les tâches de labélisation ou de révision humaine sont envoyées à cet employé.
Création d'une main-d'œuvre OIDC IdP
Vous pouvez créer une main-d'œuvre à l'aide de l'opération SageMaker API CreateWorkforce
et des SDK spécifiques au langage associés. Spécifiez un WorkforceName
et des informations sur votre IDP OIDC dans le paramètre OidcConfig
. Il est recommandé de configurer votre OIDC avec un URI de redirection de type place-holder, puis de mettre à jour l'URI avec l'URL du portail des employés après avoir créé la main-d'œuvre. Pour en savoir plus, veuillez consulter la section Configuration de votre IdP OIDC.
Voici un exemple de requête. Veuillez consulter CreateWorkforce
pour en savoir plus sur chaque paramètre de cette requête.
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"
] } }
Configuration de votre IdP OIDC
La façon dont vous configurez votre IdP OIDC dépend de l'IdP que vous utilisez et de vos exigences commerciales.
Lorsque vous configurez votre IdP, vous devez spécifier un URI de rappel ou de redirection. Après l'authentification d'un employé par Ground Truth ou Amazon A2I, cette URI redirigera l'employé vers le portail de l'employé où il pourra accéder aux tâches de labélisation ou de révision humaine. Pour créer une URL de portail d'employé, vous devez créer une main-d'œuvre avec vos détails OIDC IdP en utilisant l'opération API CreateWorkforce
. Plus précisément, vous devez configurer votre IdP OIDC avec les revendications Sagemaker personnalisées requises (voir la section suivante pour plus de détails). Par conséquent, il est recommandé de configurer votre OIDC avec un URI de redirection de type place-holder, puis de mettre à jour l'URI après avoir créé la main-d'œuvre. Veuillez consulter Création d'une main-d'œuvre OIDC IdP pour apprendre à créer une main-d'œuvre à l'aide de cette API.
Vous pouvez consulter l'URL de votre portail de travail dans la console SageMaker Ground Truth ou à l'aide de l'opération SageMaker APIDescribeWorkforce
. L'URL du portail d'employé se trouve dans le paramètre SubDomain
dans la réponse.
Important
Assurez-vous d'ajouter le sous-domaine de la main-d'œuvre à votre liste d'autorisations OIDC IdP. Lorsque vous ajoutez le sous-domaine à votre liste d'autorisation, il doit se terminer par /oauth2/idpresponse
.
Pour afficher l'URL de votre portail d'employé après la création d'une main-d'œuvre privée (Console) :
-
Ouvrez la SageMaker console à l'adresse https://console.aws.amazon.com/sagemaker/
. -
Dans le panneau de navigation, choisissez Labeling workforces (Mains-d'œuvre d'étiquetage).
-
Sélectionnez l'onglet Privé .
-
Dans Private workforce summary (Résumé de la main-d'œuvre privée), vous verrez Labeling portal sign-in URL (URL de connexion au portail de labélisation). Il s'agit de l'URL de votre portail d'employé.
Pour afficher l'URL de votre portail d'employé après la création d'une main-d'œuvre privée (API) :
Lorsque vous créez une main-d'œuvre privée à l'aide de CreateWorkforce
, vous spécifiez un WorkforceName
. Utilisez ce nom pour appeler DescribeWorkforce
. Le tableau suivant contient des exemples de demandes utilisant le AWS CLI et AWS SDK for Python (Boto3).
Valider la réponse d'authentification de la main-d'œuvre de l'IdP OIDC
Après avoir créé votre main-d'œuvre OIDC IdP, vous pouvez utiliser la procédure suivante pour valider son flux d'authentification à l'aide de cURL. Cette procédure suppose que vous avez accès à un terminal, et que vous avez installé cURL.
Pour valider votre réponse d'autorisation OIDC IdP :
-
Obtenez un code d'autorisation à l'aide d'un URI configuré comme suit :
{AUTHORIZE ENDPOINT}
?client_id={CLIENT ID}
&redirect_uri={REDIRECT URI}
&scope={SCOPE}
&response_type=code-
Remplacez
avec le point de terminaison autorisé pour votre IdP OIDC.{AUTHORIZE ENDPOINT}
-
Remplacez
par l'ID client de votre client OAuth.{CLIENT ID}
-
Remplacez
par l'URL du portail d'employé. Si elle n'est pas déjà présente, vous devez ajouter la chaîne{REDIRECT URI}
/oauth2/idpresponse
à la fin de l'URL. -
Si vous avez une portée personnalisée, utilisez-la pour remplacer
. Si vous n'avez aucune portée personnalisée, remplacez{SCOPE}
par{SCOPE}
openid
.
Voici un exemple d'URI après que les modifications ci-dessus ont été effectuées :
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
-
-
Copiez et collez l'URI modifié de l'étape 1 dans votre navigateur et appuyez sur Entrée sur votre clavier.
-
Authentifiez-vous en utilisant votre IdP.
-
Copiez le paramètre de requête de code d'authentification dans l'URI. Ce paramètre commence par
code=
. Voici un exemple de ce à quoi pourrait ressembler la réponse. Dans cet exemple, copiezcode=MCNYDB...
et tout ce qui suit.https://example.labeling.sagemaker.aws/oauth2/idpresponse?code=MCNYDB....
-
Ouvrez un terminal et entrez la commande suivante après avoir effectué les modifications requises énumérées ci-dessous :
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}
'-
Remplacez
par le point de terminaison du jeton pour votre IdP OIDC.{TOKEN ENDPOINT}
-
Remplacez
par l'ID client de votre client OAuth.{CLIENT ID}
-
Remplacez
avec le secret client de votre client OAuth.{CLIENT SECRET}
-
Remplacez
avec le paramètre de requête de code d'authentification que vous avez copié à l'étape 4.{CODE}
-
Remplacez
par l'URL du portail d'employé.{REDIRECT URI}
Voici un exemple de requête cURL après avoir effectué les modifications décrites ci-dessus :
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'
-
-
Cette étape dépend du type de
access_token
que votre IdP renvoie, un jeton d'accès en texte brut ou un jeton d'accès JWT.-
Si votre IdP ne prend pas en charge les jetons d'accès JWT,
access_token
peut être en texte brut (par exemple, un UUID). La réponse que vous voyez peut ressembler à ce qui suit. Dans ce cas, passez à l'étape 7.{ "access_token":"179c144b-fccb-4d96-a28f-eea060f39c13", "token_type":"Bearer", "expires_in":3600, "refresh_token":"ef43e52e-9b4f-410c-8d4c-d5c5ee57631a", "scope":"openid" }
-
Si votre IdP prend en charge les jetons d'accès JWT, l'étape 5 devrait générer un jeton d'accès au format JWT. Par exemple, la réponse peut ressembler à ce qui suit :
{ "access_token":"eyJh...JV_adQssw5c", "refresh_token":"i6mapTIAVSp2oJkgUnCACKKfZxt_H5MBLiqcybBBd04", "refresh_token_expires_in":6327, "scope":"openid", "id_token":"eyJ0eXAiOiJK9...-rDaQzUHl6cQQWNiDpWOl_lxXjQEvQ" }
Copiez le JWT et décodez-le. Vous pouvez utiliser un script python ou un site Web tiers pour le décoder. Par exemple, vous pouvez vous rendre sur le site Web https://jwt.io/
et coller le JWT dans la case Encoded (Encodé) pour le décoder. Assurez-vous que la réponse décodée contient les éléments suivants :
-
Les SageMaker demandes requises figurent dans le tableau figurant dansEnvoyer les revendications obligatoires et facultatives à Ground Truth et Amazon A2I. Si ce n'est pas le cas, vous devez reconfigurer votre IdP OIDC pour qu'il contienne ces revendications.
-
L'Issuer (Diffuseur) que vous avez spécifié lorsque vous avez configuré la main-d'œuvre IdP.
-
-
-
Ouvrez un terminal et saisissez la commande suivante après avoir effectué les modifications requises énumérées ci-dessous :
curl -X POST -H 'Authorization: Bearer
{ACCESS TOKEN}
' -d '' -k -v{USERINFO ENDPOINT}
-
Remplacez
par le point de terminaison des informations utilisateur de votre IdP OIDC.{USERINFO ENDPOINT}
-
Remplacez
par le jeton d'accès figurant dans la réponse que vous avez reçue à l'étape 7. Il s'agit de l'entrée pour le paramètre{ACCESS TOKEN}
"access_token"
.
Voici un exemple de requête cURL après avoir effectué les modifications décrites ci-dessus :
curl -X POST -H 'Authorization: Bearer eyJ0eX...' -d '' -k -v https://example.com/userinfo
-
-
La réponse à la dernière étape de la procédure ci-dessus peut ressembler au bloc de code suivant.
Si le
access_token
renvoyé à l'étape 6 était en texte brut, vous devez vérifier que cette réponse contient les informations requises. Dans ce cas, la réponse doit contenir les SageMaker demandes requises dans le tableau figurant dansEnvoyer les revendications obligatoires et facultatives à Ground Truth et Amazon A2I. Par exemple,sagemaker-groups
,sagamaker-name
.{ "sub":"122", "exp":"10000", "sagemaker-groups":["group1","group2"] "sagemaker-name":"name", "sagemaker-sub":"122", "sagemaker-client_id":"123456" }
Étapes suivantes
Une fois que vous avez créé une main-d'œuvre privée à l'aide de votre IdP et vérifié votre réponse d'authentification IdP, vous pouvez créer des équipes de travail à l'aide de vos groupes IdP. Pour en savoir plus, veuillez consulter la section Gérer d'une main-d'œuvre privée (OIDC IdP).
Vous pouvez restreindre l'accès des employés aux tâches à des adresses IP spécifiques, et mettre à jour ou supprimer votre personnel à l'aide de l' SageMaker API. Pour en savoir plus, consultez Gestion du personnel privé à l'aide d'Amazon SageMaker API.