image
image
image
image
image
image

Jeton daccès alexa

Recherchez du code, des dépôts, des utilisateurs, des tickets, des pull requests...

Il s’agit d’un exemple de code permettant aux développeurs de compétences Alexa de configurer un serveur OAuth 2.0. Un serveur OAuth 2.0 est requis pour la liaison de comptes de compétence, ce qui vous permet de connecter les identités des utilisateurs sur différents systèmes de compte. L’autorisation réciproque et la gestion des jetons clients sont également incluses pour prendre en charge la liaison de comptes mutuels pour l’appel d’API Alexa en dehors des compétences Alexa.

Avec l’exemple de code et le modèle AWS Cloud Formation, un service OAuth 2.0 standard est fourni qui prend en charge les types d’octroi suivants :

et un type d’octroi spécifique à Alexa (pour la liaison de compte réciproque) :

  • /oauth/authorize : le point de terminaison d’autorisation est le point de terminaison sur le serveur d’autorisation où le propriétaire de la ressource se connecte et accorde l’autorisation à l’application cliente.
  • /oauth/token : le point de terminaison du jeton est le point de terminaison sur le serveur d’autorisation où l’application cliente échange le code d’autorisation, l’ID client et la clé secrète client contre un jeton d’accès.
  • /api/reciprocal/authorize : Le point de terminaison d’autorisation réciproque sera appelé par Alexa pour envoyer un code d’authentification LWA. (Requis uniquement pour la liaison de comptes mutuels)
  • /login : Le portail utilisé pour l’administration des Clients et Partenaires OAuth, ainsi que pour la gestion des approbations à d’autres clients.

Intégration à votre serveur d’authentification

À des fins de test, un exemple d’utilisateur (utilisateur/mot de passe) et un exemple d’administrateur (admin/mot de passe) sont créés pour le test.

Pour intégrer avec votre propre authentification serveur ou base de données utilisateur, mettez à jour la tâche TODO en classe.

publicclassAuthenticationServiceProvider { @OverridepublicUserDetailsloadUserByUsername(finalStringusername) throwsUsernameNotFoundException { //TODO : Intégrez à votre système d’authentification pour renvoyer UserDetails. } }

Pour configurer votre propre serveur OAuth,

  1. clonez le référentiel à partir de alexa-oauth-sample. Si vous le souhaitez, vous pouvez modifier le nom du référentiel
  2. à l’aide de ce modèle
  3. Ajoutez votre certificat de domaine et liez-le à votre équilibreur de charge (port LB : 443, port d’instance : 80). (HTTPS est requis pour la liaison de compte Alexa Skill)

Créez un client OAuth pour Alexa

  1. Connectez-vous à la console Alexa Skill et sélectionnez votre compétence
  2. Dans la section « AUTORISATIONS », notez votre Dans
  3. la section « LIAISON DE COMPTE », notez vos URL de redirection
  4. Connectez-vous à https ://YOUR_DOMAIN/login en tant qu’administrateur. Créez un client OAuth que vous vendez à Alexa (par exemple alexa_skill_client)
  5. (Uniquement pour la liaison de compte mutuel) Connectez-vous à https ://YOUR_DOMAIN/login en tant qu’administrateur, créez un partenaire OAuth pour appeler les API Alexa IMPORTANT : clientId et clientSecret proviennent de votre compétence Alexa (sous l’onglet AUTORISATION). Le partnerId doit être le même que le « clientId » de l’étape précédente.
  1. Connectez-vous à la console Alexa Skill et sélectionnez votre compétence
  2. Cliquez sur la section « LIAISON DE COMPTE », remplissez le formulaire avec ce qui suit :
    • URI d’autorisation : https ://YOUR_DOMAIN/oauth/authorize
    • Access Token URI : https ://YOUR_DOMAIN/oauth/token
    • Client ID : le clientId du client que vous avez créé dans la section précédente
    • Secret client : le clientSecret du client que vous avez créé dans la section précédente
    • Schéma d’authentification du client : Choisissez les informations d’identification dans le corps de la demande
    • Portée : Portées OAuth pour définir les autorisations. (Ceci est utilisé pour votre serveur de ressources, laissez vide si vous n’en avez pas)
    • Liste de domaines : VOTRE DOMAINE (par exemple domain.com, www.domain.com)

Cette bibliothèque est concédée sous licence Amazon Software License 1.0.