2016-08-11 12 views
0

Ich verwende das Okta-Signin-Widget, um Benutzer für ein Programm zu bestätigen, das ich geschrieben habe, und möchte einige der Okta-Profildaten über eine URL an meine Anwendung weitergeben. Wenn ich mir das Objekt ansehe, das Okta erstellt (res), scheint es nur einige der Profilattribute wie firstName, lastName, locale, timeZone und login zu enthüllen. Die Javascripts-Warnungen werden für alle anderen Benutzerprofilattribute als nicht definiert angezeigt. Gibt es eine Möglichkeit, auf die zusätzlichen Profilattribute von einem Okta-Profil innerhalb dieses Skripts zuzugreifen, oder gibt es eine andere Möglichkeit, dies über das Okta-Portal selbst zu tun. Ich gehörte die signin Skript aus meinem Code unten:Okta - Übergabe von Okta-Profilparametern an eine URL vom Signin-Widget

 <script type="text/javascript"> 
      var baseUrl = 'https://<my company>.okta.com'; 
      var logo = 'https://ok2static.oktacdn.com/bc/image/fileStoreRecord?id=<myid>; 
      var oktaSignIn = new OktaSignIn({ 
       baseUrl: baseUrl, logo: logo, 
       labels: { 
          'primaryauth.title': 'Login', 
          'primaryauth.username.tooltip': '(email address)' 
         } 
      }); 

      oktaSignIn.renderEl(
       {el: '#okta-login-container'}, 
       function (res) { 
        alert(res.user.profile.login); 
        alert(res.user.profile.firstName); 
        alert(res.user.profile.lastName); 
        alert(res.user.profile.locale); 
        alert(res.user.profile.timeZone); 
        alert(res.user.profile.streetAddress); 
        alert(res.user.profile.countryCode); 
        alert(res.user.profile.city); 
        alert(res.user.profile.nickName); 
        alert(res.user.profile.displayName); 
        alert(res.user.profile.email); 
        alert(res.user.profile.secondEmail); 
        alert(res.user.profile.profileUrl); 
        alert(res.user.profile.preferredLanguage); 
        alert(res.user.profile.userType); 
        alert(res.user.profile.organization); 
        alert(res.user.profile.title); 
        alert(res.user.profile.division); 
        alert(res.user.profile.department); 
        alert(res.user.profile.costCenter); 
        alert(res.user.profile.employeeNumber); 
        alert(res.user.profile.mobilePhone); 
        alert(res.user.profile.primaryPhone); 
        alert(res.user.profile.city); 
        alert(res.user.profile.state); 
        alert(res.user.profile.zipCode); 


        if (res.status === 'SUCCESS') { res.session.setCookieAndRedirect('http://www.myprogram.aspx?<this is where I would like to pass in Okta profile parameters like streetAddress or City>); } 
       } 
      ); 
     </script> 

Gibt es irgendeine Art und Weise zu ändern, um diese Aussage zu ändern, um das Okta Portal zu gehen und in den Parametern von dort innerhalb okta selbst (erstelle eine App in okta passiert, dass ich kann Benutzerprofilparameter an) übergeben?

    if (res.status === 'SUCCESS') { res.session.setCookieAndRedirect('https://<mycompany>.okta.com); } 
       } 

Antwort

0

Der beste Ansatz ist, um SSO-Anwendung aktiviert (SAML oder WS-Fed) und dann Okta konfigurieren Sie eine benutzerdefinierte Login-Seite für die App zu verwenden. Okta leitet mit einem "fromURI" -Parameter weiter, wenn die benutzerdefinierte Anmeldeseite für die Anwendung aktiviert ist.

res.session.setCookieAndRedirect(fromURI QueryStringParameter); 

Okta würde dann alle benötigten Informationen per SSO senden, die per App in Okta konfiguriert ist.

Wenn Sie mit Ihrem aktuellen API-Ansatz bleiben, können Sie den Get User API verwenden. Sie können für die ID "mich" ersetzen, um den aktuellen Benutzer abzurufen, der mit dem API-Token oder dem Sitzungscookie verknüpft ist.

Verwandte Themen