2016-08-11 14 views
0

Okta signinウィジェットを使用して、私が書いたプログラムのユーザーを検証し、いくつかのOktaプロファイルデータをURLを通じてアプリケーションに渡します。 Oktaが作成するオブジェクト(res)を見ると、firstName、lastName、locale、timeZone、loginのようなプロファイル属性のうちのいくつかしか公開されていないようです。 javascriptsアラートは、他のすべてのユーザープロファイル属性に対して未定義として表示されます。このスクリプト内のoktaプロファイルから追加のプロファイル属性にアクセスする方法はありますか、これはOktaポータル自体を介して行うことができる別の方法です。私は以下の私のコードからサインインスクリプトが含まれていました。Okta - サインインウィジェットからURLにoktaプロファイルパラメータを渡す

 <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> 

はOktaポータルにアクセスして、okta自体の内部そこからパラメータを渡すためにこの文を変更するには変更するいくつかの方法があります(I oktaでアプリを作成しますユーザープロファイルパラメータを渡すことができますか?)

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

答えて

0

最も良いアプローチは、アプリケーション(SAMLまたはWS-Fed)を有効にしてから、アプリケーションのカスタムログインページを使用するようにOktaを設定することです。アプリケーションのカスタムログインページが有効になっている場合、OTRAは "fromURI"パラメータでリダイレクトします。

res.session.setCookieAndRedirect(fromURI QueryStringParameter); 

Oktaは、Oktaのアプリごとに設定されたSSO経由で必要なすべての情報を送信します。

現在のAPIのみを使用している場合は、Get User APIを使用できます。 IDの代わりに "me"を使用すると、APIトークンまたはセッションCookieにリンクされている現在のユーザーを取得できます。