2016-05-10 1 views
0

Aimerait savoir comment authentifier à (par exemple):Authentifier à la coutume OpenAM 12 plug-in d'authentification via REST

http://www.example.com:8080/openam/UI/Login?realm=CUR&module=CURAuthn

de préférence par POSTer JSON via REST sur/JSON/Authentifier. Je pense que ce serait http://www.example.com:8080/openam/UI/Login?realm=CUR&authIndexType=module&authIndexValue=CURAuthn correct?

Dans tous les cas, ce module ne prend pas les en-têtes standard X-OpenAM-Username ou X-OpenAM-Password.

Il prend un tas de champs personnalisés, appelés jetons d'identification. Par exemple, il utilise IDToken1, IDToken2, IDToken3, ...

Comment devrais-je envoyer les jetons à ce plugin en utilisant le service d'authentification json? Merci

Répondre

2

Tout cela est expliqué dans le paragraphe OpenAM's Developer's Guide 3.4.

L'URL REST pour votre module personnalisé serait:

http://www.example.com:8080/openam/json/authenticate?authIndexType=module&authIndexValue=CURAuthn

Si vous module ne pas utiliser les informations d'identification nom d'utilisateur/mot de passe standard, vous devrez passer vos informations d'identification dans le corps de la requête JSON .

Vous commencez par l'envoi d'une requête vide POST OpenAM:

$ curl \ 
--request POST \ 
--header "Content-Type: application/json" \ 
http://www.example.com:8080/openam/json/authenticate?authIndexType=module&authIndexValue=CURAuthn 

Vous devriez obtenir une réponse similaire à celle (en fonction de votre callbacks personnalisés):

{ 
    "authId": "eyAid...GDYaEQ", 
    "template": "", 
    "stage": "Module11", 
    "header": "Using CURAuthn", 
    "callbacks": [ 
     { 
     "type": "NameCallback", 
     "output": [ 
      { 
       "name": "prompt", 
       "value": "FirstCallback" 
      } 
     ], 
     "input": [ 
      { 
       "name": "IDToken1", 
       "value": "" 
      } 
     ] 
     }, 
     { 
     "type": "NameCallback", 
     "output": [ 
      { 
       "name": "prompt", 
       "value": "SecondCallback" 
      } 
     ], 
     "input": [ 
      { 
       "name": "IDToken2", 
       "value": "" 
      } 
     ] 
     }, 
     //More callbacks here 
    ] 
} 

Après que Accumulez les informations d'identification de l'utilisateur, remplissez les valeurs vides et renvoyez la charge JSON vers la même URL. Assurez-vous que vous utilisez le même "authId" tout au long du processus d'authentification.

J'ai écrit un blog post sur les chaînes d'authentification personnalisées et comment communiquer avec elles via REST. Jetez un coup d'oeil, cela pourrait être utile.