How to force login per client with keycloak (¿best practice?)










0















We are currently implementing keycloak and we are facing an issue that we are not sure what’s the best way to solve it.



We have different webapps making use of the sso and that’s working fine. The problem we have is when we make log in using the sso in one webapp and then we do the same in a different webapp.



Initially this second webapp does not know which user is coming (and it’s not necessary to be logged in to make use of it). When clicking on “login”, it automatically logs in the user (by making a redirection to keycloak and automatically logging the already logged user in the other webapp). This second logging happens “transparently” to the user, since the redirection to keycloak is very fast and it’s not noticeable. This behaviour is not very user friendly.



The question is: Taking into account that this second webapp can’t know upfront which user is accessing the site (unless actively redirecting to keycloak), is it possible to force always the users to log in for a specific keycloak client? By this I mean actually ask the visitor for user/pw even if keycloak knows already them from other keycloak clients.



Thanks in advance!










share|improve this question


























    0















    We are currently implementing keycloak and we are facing an issue that we are not sure what’s the best way to solve it.



    We have different webapps making use of the sso and that’s working fine. The problem we have is when we make log in using the sso in one webapp and then we do the same in a different webapp.



    Initially this second webapp does not know which user is coming (and it’s not necessary to be logged in to make use of it). When clicking on “login”, it automatically logs in the user (by making a redirection to keycloak and automatically logging the already logged user in the other webapp). This second logging happens “transparently” to the user, since the redirection to keycloak is very fast and it’s not noticeable. This behaviour is not very user friendly.



    The question is: Taking into account that this second webapp can’t know upfront which user is accessing the site (unless actively redirecting to keycloak), is it possible to force always the users to log in for a specific keycloak client? By this I mean actually ask the visitor for user/pw even if keycloak knows already them from other keycloak clients.



    Thanks in advance!










    share|improve this question
























      0












      0








      0


      1






      We are currently implementing keycloak and we are facing an issue that we are not sure what’s the best way to solve it.



      We have different webapps making use of the sso and that’s working fine. The problem we have is when we make log in using the sso in one webapp and then we do the same in a different webapp.



      Initially this second webapp does not know which user is coming (and it’s not necessary to be logged in to make use of it). When clicking on “login”, it automatically logs in the user (by making a redirection to keycloak and automatically logging the already logged user in the other webapp). This second logging happens “transparently” to the user, since the redirection to keycloak is very fast and it’s not noticeable. This behaviour is not very user friendly.



      The question is: Taking into account that this second webapp can’t know upfront which user is accessing the site (unless actively redirecting to keycloak), is it possible to force always the users to log in for a specific keycloak client? By this I mean actually ask the visitor for user/pw even if keycloak knows already them from other keycloak clients.



      Thanks in advance!










      share|improve this question














      We are currently implementing keycloak and we are facing an issue that we are not sure what’s the best way to solve it.



      We have different webapps making use of the sso and that’s working fine. The problem we have is when we make log in using the sso in one webapp and then we do the same in a different webapp.



      Initially this second webapp does not know which user is coming (and it’s not necessary to be logged in to make use of it). When clicking on “login”, it automatically logs in the user (by making a redirection to keycloak and automatically logging the already logged user in the other webapp). This second logging happens “transparently” to the user, since the redirection to keycloak is very fast and it’s not noticeable. This behaviour is not very user friendly.



      The question is: Taking into account that this second webapp can’t know upfront which user is accessing the site (unless actively redirecting to keycloak), is it possible to force always the users to log in for a specific keycloak client? By this I mean actually ask the visitor for user/pw even if keycloak knows already them from other keycloak clients.



      Thanks in advance!







      authentication logging single-sign-on keycloak






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Oct 29 '18 at 14:58









      user1722670user1722670

      63




      63






















          2 Answers
          2






          active

          oldest

          votes


















          0














          Use logout endpoint as a default login button action in your app and redirect uri param use for login page, where you use your specific client (of course you need proper URI encoding):



          https://auth-server/auth/realms/realm-name/protocol/openid-connect/logout?redirect_uri=https://auth-server/auth/realms/realm-name/protocol/openid-connect/auth?client_id=client_id&redirect_uri=.....&other_params....


          => user will be logged out and then it will be redirected to the login page






          share|improve this answer






























            0














            Thanks for your response, but that's not exactly what I was looking for. In the mail listing from keycloak, they gave me a good solution but for version 4.



            "1. in admin console, go to Authentication; 2. make a copy of Browser flow; 3. in this new flow, disable or delete Cookie; 4. go to Clients -> (your client) -> Authentication Flow Overrides, change Browser Flow to your new flow, click Save."






            share|improve this answer






















              Your Answer






              StackExchange.ifUsing("editor", function ()
              StackExchange.using("externalEditor", function ()
              StackExchange.using("snippets", function ()
              StackExchange.snippets.init();
              );
              );
              , "code-snippets");

              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "1"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader:
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              ,
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );













              draft saved

              draft discarded


















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53048205%2fhow-to-force-login-per-client-with-keycloak-best-practice%23new-answer', 'question_page');

              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              0














              Use logout endpoint as a default login button action in your app and redirect uri param use for login page, where you use your specific client (of course you need proper URI encoding):



              https://auth-server/auth/realms/realm-name/protocol/openid-connect/logout?redirect_uri=https://auth-server/auth/realms/realm-name/protocol/openid-connect/auth?client_id=client_id&redirect_uri=.....&other_params....


              => user will be logged out and then it will be redirected to the login page






              share|improve this answer



























                0














                Use logout endpoint as a default login button action in your app and redirect uri param use for login page, where you use your specific client (of course you need proper URI encoding):



                https://auth-server/auth/realms/realm-name/protocol/openid-connect/logout?redirect_uri=https://auth-server/auth/realms/realm-name/protocol/openid-connect/auth?client_id=client_id&redirect_uri=.....&other_params....


                => user will be logged out and then it will be redirected to the login page






                share|improve this answer

























                  0












                  0








                  0







                  Use logout endpoint as a default login button action in your app and redirect uri param use for login page, where you use your specific client (of course you need proper URI encoding):



                  https://auth-server/auth/realms/realm-name/protocol/openid-connect/logout?redirect_uri=https://auth-server/auth/realms/realm-name/protocol/openid-connect/auth?client_id=client_id&redirect_uri=.....&other_params....


                  => user will be logged out and then it will be redirected to the login page






                  share|improve this answer













                  Use logout endpoint as a default login button action in your app and redirect uri param use for login page, where you use your specific client (of course you need proper URI encoding):



                  https://auth-server/auth/realms/realm-name/protocol/openid-connect/logout?redirect_uri=https://auth-server/auth/realms/realm-name/protocol/openid-connect/auth?client_id=client_id&redirect_uri=.....&other_params....


                  => user will be logged out and then it will be redirected to the login page







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Oct 31 '18 at 13:20









                  Jan GarajJan Garaj

                  3,337621




                  3,337621























                      0














                      Thanks for your response, but that's not exactly what I was looking for. In the mail listing from keycloak, they gave me a good solution but for version 4.



                      "1. in admin console, go to Authentication; 2. make a copy of Browser flow; 3. in this new flow, disable or delete Cookie; 4. go to Clients -> (your client) -> Authentication Flow Overrides, change Browser Flow to your new flow, click Save."






                      share|improve this answer



























                        0














                        Thanks for your response, but that's not exactly what I was looking for. In the mail listing from keycloak, they gave me a good solution but for version 4.



                        "1. in admin console, go to Authentication; 2. make a copy of Browser flow; 3. in this new flow, disable or delete Cookie; 4. go to Clients -> (your client) -> Authentication Flow Overrides, change Browser Flow to your new flow, click Save."






                        share|improve this answer

























                          0












                          0








                          0







                          Thanks for your response, but that's not exactly what I was looking for. In the mail listing from keycloak, they gave me a good solution but for version 4.



                          "1. in admin console, go to Authentication; 2. make a copy of Browser flow; 3. in this new flow, disable or delete Cookie; 4. go to Clients -> (your client) -> Authentication Flow Overrides, change Browser Flow to your new flow, click Save."






                          share|improve this answer













                          Thanks for your response, but that's not exactly what I was looking for. In the mail listing from keycloak, they gave me a good solution but for version 4.



                          "1. in admin console, go to Authentication; 2. make a copy of Browser flow; 3. in this new flow, disable or delete Cookie; 4. go to Clients -> (your client) -> Authentication Flow Overrides, change Browser Flow to your new flow, click Save."







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Nov 13 '18 at 11:23









                          user1722670user1722670

                          63




                          63



























                              draft saved

                              draft discarded
















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid


                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.

                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53048205%2fhow-to-force-login-per-client-with-keycloak-best-practice%23new-answer', 'question_page');

                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Darth Vader #20

                              How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

                              Ondo