2016-05-10 4 views
0

Wollen Sie wissen, wie man (zum Beispiel) zu authentifizieren:Authentifizieren, um benutzerdefinierte OpenAM 12 Authentifizierungs-Plugin über REST

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

vorzugsweise durch JSON POSTen über REST über/json/authentisieren.

Ich vermute, es wäre http://www.example.com:8080/openam/UI/Login?realm=CUR&authIndexType=module&authIndexValue=CURAuthn richtig?

In jedem Fall verwendet dieses Modul nicht die Standard-Header X-OpenAM-Username oder X-OpenAM-Password.

Es dauert eine Reihe von benutzerdefinierten Feldern, ID-Token genannt. Zum Beispiel verwendet es IDToken1, IDToken2, IDToken3, ...

Wie soll ich über das Einreichen der Token zu diesem Plugin mit dem JSON-Authentifizierungsdienst gehen? Danke

Antwort

2

All das wird in der OpenAM's Developer's Guide Abschnitt 3.4 erklärt.

Der REST-URL für benutzerdefinierten Modul wäre:

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

Wenn Sie Modul nicht die Standard-Benutzername/Passwort-Anmeldeinformationen verwenden, wird Sie Ihre Anmeldeinformationen in der Anfrage Körper als JSON passieren müssen .

Sie, indem Sie eine leere POST-Anforderung an OpenAM beginnen würde:

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

Sie sollten erhalten eine Antwort ähnlich wie diese (basierend auf Ihrer benutzerdefinierten Rückrufe):

{ 
    "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 
    ] 
} 

Danach nur sammeln die Anmeldeinformationen aus der Benutzereingabe, füllen Sie die leeren Werte aus und senden Sie die JSON-Nutzdaten an dieselbe URL zurück. Stellen Sie sicher, dass Sie während des gesamten Authentifizierungsprozesses dieselbe "authId" verwenden.

Ich schrieb eine blog post über benutzerdefinierte Authentifizierungsketten und wie mit ihnen über REST kommunizieren. Schau mal, es könnte hilfreich sein.

Verwandte Themen