<div dir="ltr">I think so. If the call to this mapper is done during in the handleLoginResponse it should do the trick but it should also be able to parse a complex type to extract value of a NameIdType.<br><div dir="ltr"><span style="font-size:13px"><br></span></div><div dir="ltr"><span style="font-size:13px">Le ven. 22 janv. 2016 18:53, Bill Burke &lt;<a href="mailto:bburke@redhat.com" target="_blank">bburke@redhat.com</a>&gt; a écrit :</span></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    So, if you have a maper for the brokerUserId, that would solve the
    problem?</div><div bgcolor="#FFFFFF" text="#000000"><br>
    <br>
    <div>On 1/22/2016 12:19 PM, Jérôme Blanchard
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>
                <div>
                  <div>
                    <div>Hi, <br>
                    </div>
                    Stack trace is joined.<br>
                  </div>
                  Using a UsernameTemplateMapper is not enough cause the
                  broderId keep the transient nameid that is used to
                  link the IdP to the keycloak Account. <br>
                </div>
                As soon as the IdP session expires, if I use the IdP
                again,  a new transient nameId is generated and keycloak
                is not able to map the incoming SAML response to the
                right keycloak Account. It so open the first login form
                and ask for a user name (prepopulated with the
                ${ALIAS}.${NAMEID} syntax or the mapper value (I am
                unable to use the complex type in this
                UsernameTemplateMapper (like
                ${ATTRIBUTE.eduPersonTargetID.value[0]})).<br>
              </div>
              By the way, this attribute mapper does not override the
              brokerUserId : <br>
              String brokerUserId = config.getAlias() + &quot;.&quot; +
              subjectNameID.getValue();
              identity.setBrokerUserId(brokerUserId); <br>
            </div>
            so a transient subjectNameID is a problem even with the
            UsernameTemplateMapper...<br>
          </div>
          <div>It always creates a new link between account and IdP and
            this link does not work if the keycloak account already
            exists.<br>
          </div>
          <div><br>
          </div>
          Do you see more clearly my understanding ? (I&#39;m sorry for my
          poor english)<br>
        </div>
        <div>
          <div>
            <div>
              <div>
                <div>
                  <div><br>
                    <div class="gmail_quote">
                      <div dir="ltr">Le ven. 22 janv. 2016 à 17:06, Bill
                        Burke &lt;<a href="mailto:bburke@redhat.com" target="_blank">bburke@redhat.com</a>&gt;
                        a écrit :<br>
                      </div>
                      <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                        <div bgcolor="#FFFFFF" text="#000000"> Can you
                          show me the actual crash?  Stack trace?  If
                          the attribute is parsed correctly, you should
                          be able to write a UsernameMapper to handle
                          everything no? <br>
                        </div>
                        <div bgcolor="#FFFFFF" text="#000000"> <br>
                          <div>On 1/22/2016 11:00 AM, Jérôme Blanchard
                            wrote:<br>
                          </div>
                          <blockquote type="cite">
                            <div dir="ltr">
                              <div>
                                <div>
                                  <div>Yes exactly. <br>
                                  </div>
                                  But I also need to use this complex
                                  type attribute in the
                                  Endpoint.handleLoginResponse as the
                                  subjectNameID in order to avoid using
                                  the provided transient nameID ;
                                  something like : <br>
                                  <br>
                                  protected Response
                                  handleLoginResponse(String
                                  samlResponse, SAMLDocumentHolder
                                  holder, ResponseType responseType,
                                  String relayState) { <br>
                                    try { <br>
                                      AssertionType assertion =
                                  AssertionUtil.getAssertion(responseType,
                                  realm.getPrivateKey()); <br>
                                      SubjectType subject =
                                  assertion.getSubject(); <br>
                                      SubjectType.STSubType subType =
                                  subject.getSubType(); <br>
                                      NameIDType subjectNameID =
                                  (NameIDType) subType.getBaseID(); <br>
                                      //Map&lt;String, String&gt; notes
                                  = new HashMap&lt;&gt;(); <br>
                                      if (subjectNameID.getFormat() !=
                                  null &amp;&amp;
                                  subjectNameID.getFormat().toString().equals(JBossSAMLURIConstants.NAMEID_FORMAT_TRANSIENT.get()))

                                  { <br>
                                        if
                                  (assertion.getAttributeStatements() !=
                                  null ) { <br>
                                          for (AttributeStatementType
                                  attrStatement :
                                  assertion.getAttributeStatements()) {
                                  <br>
                                            for
                                  (AttributeStatementType.ASTChoiceType
                                  choice :
                                  attrStatement.getAttributes()) {<br>
                                              AttributeType attribute =
                                  choice.getAttribute(); <br>
                                              if
                                  (attribute.getFriendlyName().equals(&quot;eduPersonTargetID&quot;)
                                  ||
                                  attribute.getName().equals(&quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.10&quot;))
                                  { <br>
                                                if
                                  (!attribute.getAttributeValue().isEmpty())
                                  { <br>
                                                  //TODO Use NameId of
                                  this attribute to replace
                                  subjectNameID <br>
                                                 } <br>
                                               } <br>
                                             } <br>
                                           } <br>
                                          (...)<br>
                                        } <br>
                                      }<br>
                                  <br>
                                </div>
                                Do you think I need to patch this class
                                in order to allow this or do you think
                                there is a way of integration in
                                keycloak considering the shibboleth
                                federation use case ?<br>
                                <br>
                              </div>
                              Best regards, Jérôme.<br>
                              <div>
                                <div>
                                  <div><br>
                                    <br>
                                    <div>
                                      <div dir="ltr"><span style="font-size:13px"><br>
                                        </span></div>
                                      <div dir="ltr"><span style="font-size:13px">Le ven.
                                          22 janv. 2016 14:56, Bill
                                          Burke &lt;</span><a href="mailto:bburke@redhat.com" target="_blank"></a><a href="mailto:bburke@redhat.com" target="_blank">bburke@redhat.com</a><span style="font-size:13px">&gt; a
                                          écrit :</span></div>
                                      <div class="gmail_quote">
                                        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                          <div bgcolor="#FFFFFF" text="#000000"> Can you
                                            spell out exactly what you
                                            need here as I&#39;m not
                                            understanding.<br>
                                            <br>
                                            You need to support a
                                            complex attribute type?  Is
                                            that it?</div>
                                          <div bgcolor="#FFFFFF" text="#000000"><br>
                                            <br>
                                            <div>On 1/22/2016 4:27 AM,
                                              Jérôme Blanchard wrote:<br>
                                            </div>
                                            <blockquote type="cite">
                                              <div dir="ltr">
                                                <div>
                                                  <div>
                                                    <div>
                                                      <div>
                                                        <div>
                                                          <div>
                                                          <div>
                                                          <div>Hi Bill,
                                                          all, <br>
                                                          <br>
                                                          </div>
                                                          I succeed in
                                                          authenticating
                                                          via shibboleth
                                                          federation
                                                          using SAML IdP
                                                          but I
                                                          encounter
                                                          problem.<br>
                                                          </div>
                                                          One SAML
                                                          attribute of
                                                          our
                                                          authentication
                                                          response is
                                                          not of type
                                                          String but a
                                                          fulle NameID
                                                          type
                                                          (eduPersonTargetId)
                                                          and makes the
                                                          authentication
                                                          crash because
                                                          of class
                                                          BaseWriter
                                                          which is not
                                                          able to
                                                          serialize an
                                                          attribute
                                                          which is not a
                                                          String (line
                                                          176).<br>
                                                          </div>
                                                          If I avoid
                                                          this test,
                                                          authentication
                                                          works well
                                                          using the
                                                          UsernameTemplateMapper.<br>
                                                        </div>
                                                        By the way, it
                                                        does not solve
                                                        the whole
                                                        problem. The
                                                        provider user id
                                                        and the provider
                                                        user name store
                                                        the saml auth
                                                        response nameid
                                                        (and not an
                                                        attribute) which
                                                        makes the next
                                                        IdP SAML session
                                                        impossible to
                                                        use the same
                                                        keycloak account
                                                        because of a
                                                        change of this
                                                        transient
                                                        nameid...<br>
                                                      </div>
                                                      Actually, I don&#39;t
                                                      see another
                                                      solution than
                                                      rewriting another
                                                      Identity Provider
                                                      based on
                                                      Shibboleth
                                                      attribute as a
                                                      fork of the SAML
                                                      provider but
                                                      including.<br>
                                                    </div>
                                                    It will also allows
                                                    me to include the
                                                    Shibboleth DIscovery
                                                    Service directly in
                                                    keycloak instead of
                                                    providing another
                                                    webapp to ensure the
                                                    federation idps
                                                    synchronization by
                                                    parsing periodiccaly
                                                    the WAYF file.<br>
                                                  </div>
                                                  I will also provide a
                                                  small patch for the
                                                  BaseWriter in order to
                                                  allow serialization of
                                                  complex types
                                                  attribute, except if
                                                  you have in mind to do
                                                  so...<br>
                                                  <br>
                                                </div>
                                                Best regards, Jérôme.<br>
                                              </div>
                                              <br>
                                              <div class="gmail_quote">
                                                <div dir="ltr">Le jeu.
                                                  14 janv. 2016 à 15:37,
                                                  Jérôme Blanchard &lt;<a href="mailto:jayblanc@gmail.com" target="_blank"></a><a href="mailto:jayblanc@gmail.com" target="_blank">jayblanc@gmail.com</a>&gt;

                                                  a écrit :<br>
                                                </div>
                                                <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                                  <div dir="ltr">
                                                    <div>
                                                      <div>Thanks for
                                                        your answer.<br>
                                                      </div>
                                                      In fact Shibboleth
                                                      supports others
                                                      saml nameid but in
                                                      the renater
                                                      federation, it
                                                      only contains
                                                      transient nameid.
                                                      Here is a part of
                                                      their doc (sorry
                                                      it&#39;s in french) :
                                                      <br>
                                                      <h2><a name="1288646468_msg-f:1524089694669582589_msg-f:1524082976564739697_msg-f:1524080979926326179_msg-f:1524080948012771841_msg-f:1524074810140845538_msg-f:1523352597466697855_utilisation_des_identifiants_utilisateur_opaques">Utilisation


                                                          des
                                                          identifiants
                                                          utilisateur
                                                          opaques</a></h2>
                                                      <div>
                                                        <p> Voir <a href="https://services.renater.fr/federation/faq/shibboleth#definition_d_un_identifiant_utilisateur_opaque" title="federation:faq:shibboleth" target="_blank">la description du
                                                          eduPersonTargetedID</a>
                                                        </p>
                                                        <p> Votre
                                                          application a
                                                          peut-être
                                                          besoin de
                                                          manipuler de
                                                          identifiants
                                                          utilisateur,
                                                          dont la valeur
                                                          est stable
                                                          d&#39;une session
                                                          à l&#39;autre ;
                                                          par exemple
                                                          pour gérer les
                                                          préférences
                                                          utilisateur.
                                                          Or, pour des
                                                          raisons de
                                                          protection des
                                                          données
                                                          personnelles,
                                                          les
                                                          fournisseurs
                                                          d&#39;identités ne
                                                          peuvent vous
                                                          transmettre
                                                          les
                                                          identifiants
                                                          des
                                                          utilisateurs.
                                                          Dans ce cas,
                                                          vous pouvez
                                                          demander aux
                                                          fournisseurs
                                                          d&#39;identités de
                                                          vous
                                                          communiquer
                                                          des
                                                          identifiants
                                                          stables mais
                                                          opaques,
                                                          appelés <b>eduPersonTargetedID</b>.
                                                        </p>
                                                        <p> Vous devrez
                                                          configurer le
                                                          fichier <i>AAP.xml</i>
                                                          de votre
                                                          fournisseur de
                                                          services
                                                          Shibboleth
                                                          comme indiqué
                                                          ci-dessous : </p>
                                                        <pre>&lt;AttributeRule Name=&quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.10&quot; Header=&quot;Shib-TargetedID&quot; Alias=&quot;targeted_id&quot;&gt;
   &lt;AnySite&gt;
     &lt;AnyValue/&gt;
   &lt;/AnySite&gt;
&lt;/AttributeRule&gt;</pre>
                                                        <p> L&#39;attribut
                                                          sera
                                                          accessible
                                                          pour
                                                          l&#39;application
                                                          dans l&#39;en-tête
                                                          <acronym title="Hyper
                                                          Text Transfer
                                                          Protocol">HTTP</acronym>
                                                          <b><acronym title="Hyper
                                                          Text Transfer
                                                          Protocol">HTTP</acronym>_SHIB_TARGETEDID</b>
                                                          (avec
                                                          Shibboleth
                                                          1.3). Le
                                                          format du
                                                          eduPersonTargetedID
                                                          est le suivant
                                                          :
                                                          identifiant_IdP<b>!</b>identifiant_SP<b>!</b>identifiant_utilisateur


                                                          <br>
                                                        </p>
                                                        <p><br>
                                                        </p>
                                                        <p>According to
                                                          their doc,
                                                          nameid are
                                                          session based
                                                          and not user
                                                          based so if
                                                          you want
                                                          stable
                                                          identifier,
                                                          you have to
                                                          ask for
                                                          eduPersonTargetedID
                                                          attribute !!<br>
                                                        </p>
                                                      </div>
                                                      I&#39;m going to have
                                                      a look at
                                                      UsernameTemplateMapper.<br>
                                                    </div>
                                                    Thanks again,
                                                    Jérôme.<br>
                                                    <div>
                                                      <h2><a name="1288646468_msg-f:1524089694669582589_msg-f:1524082976564739697_msg-f:1524080979926326179_msg-f:1524080948012771841_msg-f:1524074810140845538_msg-f:1523352597466697855_comment_configurer_un_fournisseur_de_services_pour_qu_il_soit_reconnu_par_plusieurs_federations"></a></h2>
                                                    </div>
                                                  </div>
                                                  <br>
                                                  <div class="gmail_quote">
                                                    <div dir="ltr">Le jeu.
                                                      14 janv. 2016
                                                      à 15:23, Bill
                                                      Burke &lt;<a href="mailto:bburke@redhat.com" target="_blank"></a><a href="mailto:bburke@redhat.com" target="_blank">bburke@redhat.com</a>&gt;


                                                      a écrit :<br>
                                                    </div>
                                                    <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                                      <div bgcolor="#FFFFFF" text="#000000">
                                                        Shibboleth only
                                                        supports
                                                        transient name
                                                        ids?  I find
                                                        that hard to
                                                        believe. 
                                                        Remember
                                                        Keycloak would
                                                        just look like
                                                        any other
                                                        client.  IMO you
                                                        should go that
                                                        route.<br>
                                                        <br>
                                                        Also though,  I
                                                        think you might
                                                        be able to write
                                                        a Broker Mapper,
                                                        take a look at
                                                        UsernameTemplateMapper. 
                                                        This SPI is
                                                        undocumented and
                                                        unsupported at
                                                        the moment, but
                                                        I hope to change
                                                        that soon.</div>
                                                      <div bgcolor="#FFFFFF" text="#000000"><br>
                                                        <br>
                                                        <div>On
                                                          1/14/2016 6:20
                                                          AM, Jérôme
                                                          Blanchard
                                                          wrote:<br>
                                                        </div>
                                                        <blockquote type="cite">
                                                          <div dir="ltr">
                                                          <div>
                                                          <div>
                                                          <div>
                                                          <div>
                                                          <div>
                                                          <div>Hi all, <br>
                                                          <br>
                                                          </div>
                                                          According to
                                                          shibboleth
                                                          specification,
                                                          IdP of a
                                                          federation
                                                          usually use
                                                          transient
                                                          NameID which
                                                          makes
                                                          Shibboleth
                                                          impossible to
                                                          interface with
                                                          keycloak, even
                                                          if we manage
                                                          the Discovery
                                                          Service
                                                          externally in
                                                          order to
                                                          maintain IdP
                                                          list mapping
                                                          between
                                                          federation and
                                                          keycloak.<br>
                                                          </div>
                                                          It&#39;s really
                                                          annoying for
                                                          me and I&#39;m
                                                          trying to
                                                          investigate a
                                                          way to solve
                                                          this problem.<br>
                                                          </div>
                                                          In my
                                                          federation,
                                                          some doc say
                                                          that if you
                                                          need to manage
                                                          personnal user
                                                          information in
                                                          your
                                                          application,
                                                          you have to
                                                          rely on a
                                                          dedicated
                                                          attribute in
                                                          order to
                                                          retreive real
                                                          user id and
                                                          not the
                                                          transient
                                                          opaque one. In
                                                          this case, an
                                                          attribute
                                                          called
                                                          eduPersoneTargetedId
                                                          exists and can
                                                          be use by
                                                          shibboleth. <br>
                                                          </div>
                                                          I am trying to
                                                          patch the saml
                                                          broker in
                                                          order to take
                                                          into
                                                          consideration
                                                          this attribute
                                                          in a kind of
                                                          attributeToNameIdMapper
                                                          but I have to
                                                          admit that I&#39;m
                                                          lost a bit in
                                                          the code.<br>
                                                          </div>
                                                          Do you think
                                                          this approach
                                                          is good ?<br>
                                                          <br>
                                                          </div>
                                                          <div>Best
                                                          regards,
                                                          Jérôme.<br>
                                                          </div>
                                                          <br>
                                                          </div>
                                                          <br>
                                                          <div class="gmail_quote">
                                                          <div dir="ltr">Le mer.
                                                          6 janv. 2016
                                                          à 09:31,
                                                          Jérôme
                                                          Blanchard &lt;<a href="mailto:jayblanc@gmail.com" target="_blank"></a><a href="mailto:jayblanc@gmail.com" target="_blank">jayblanc@gmail.com</a>&gt;



                                                          a écrit :<br>
                                                          </div>
                                                          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                                          <div dir="ltr">
                                                          <div>
                                                          <div>
                                                          <div>Hi Bill,
                                                          all, <br>
                                                          <br>
                                                          </div>
                                                          In the case of
                                                          a transient
                                                          only nameid,
                                                          would it be
                                                          possible to
                                                          create a
                                                          dedicated
                                                          attribute
                                                          mapper in
                                                          order to use
                                                          for exemple
                                                          the email
                                                          attribute as
                                                          name
                                                          identifier ?<br>
                                                          <br>
                                                          </div>
                                                          PS : the
                                                          urn:mace:shibboleth:1.0:nameIdentifier
                                                          is in fact use
                                                          in SAML v1 for
                                                          request a
                                                          nameid that is
                                                          transient
                                                          also... so
                                                          there is no
                                                          solution in
                                                          this way.<br>
                                                          <br>
                                                          </div>
                                                          Best regards,
                                                          Jérôme.<br>
                                                          </div>
                                                          <br>
                                                          <div class="gmail_quote">
                                                          <div dir="ltr">Le mar.
                                                          5 janv. 2016
                                                          à 16:13, Bill
                                                          Burke &lt;<a href="mailto:bburke@redhat.com" target="_blank"></a><a href="mailto:bburke@redhat.com" target="_blank">bburke@redhat.com</a>&gt;

                                                          a écrit :<br>
                                                          </div>
                                                          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">We

                                                          won&#39;t be able
                                                          to support
                                                          temporary ids
                                                          (transient)
                                                          for awhile as
                                                          it<br>
                                                          requires
                                                          temporary user
                                                          creation which
                                                          requires some
rearchitecting.<br>
                                                          <br>
                                                          As for
                                                          &quot;urn:mace:shibboleth:1.0:nameIdentifier&quot;
                                                          if you spec it
                                                          out in a<br>
                                                          JIRA and it is
                                                          simple enough
                                                          to implement
                                                          support for,
                                                          we may be able
                                                          to<br>
                                                          get it in.<br>
                                                          <br>
                                                          On 1/5/2016
                                                          8:18 AM,
                                                          Jérôme
                                                          Blanchard
                                                          wrote:<br>
                                                          &gt; Hi Bill,<br>
                                                          &gt;<br>
                                                          &gt; Thanks
                                                          for your
                                                          answer
                                                          regarding
                                                          transient and
                                                          temporary ids.
                                                          I<br>
                                                          &gt;
                                                          understand the
                                                          problem due to
                                                          keycloak
                                                          account
                                                          creation and
                                                          binding to<br>
                                                          &gt; the IdP.<br>
                                                          &gt; Renarter
                                                          is using
                                                          Shibboleth ;
                                                          Is there is
                                                          any work on
                                                          shibboleth<br>
                                                          &gt;
                                                          integration
                                                          for keycloak ?<br>
                                                          &gt; If I look
                                                          into the idps
                                                          entities
                                                          descriptors of
                                                          renater, I
                                                          found that it<br>
                                                          &gt; uses also
                                                          another nameid
                                                          format based
                                                          on shibboleth
                                                          namesapce :<br>
                                                          &gt;
&lt;md:NameIDFormat&gt;urn:mace:shibboleth:1.0:nameIdentifier&lt;/md:NameIDFormat&gt;<br>
                                                          &gt;
&lt;md:NameIDFormat&gt;urn:oasis:names:tc:SAML:2.0:nameid-format:transient&lt;/md:NameIDFormat&gt;<br>
                                                          &gt;<br>
                                                          &gt; Do you
                                                          think it is
                                                          possible to
                                                          patch the saml
                                                          idp provider
                                                          (or to create<br>
                                                          &gt; another
                                                          one dedicated
                                                          to shibboleth)
                                                          in order to
                                                          integrate
                                                          keycloak to<br>
                                                          &gt; our
                                                          identity
                                                          federation
                                                          (renater) ?<br>
                                                          &gt;<br>
                                                          &gt; Best
                                                          whiches for
                                                          this upcoming
                                                          year and
                                                          thanks for
                                                          your great
                                                          work<br>
                                                          &gt; around
                                                          keycloak.<br>
                                                          &gt;<br>
                                                          &gt; Jérôme.<br>
                                                          &gt;<br>
                                                          &gt;<br>
                                                          &gt; Le mar.
                                                          22 déc. 2015 à
                                                          21:10, Bill
                                                          Burke &lt;<a href="mailto:bburke@redhat.com" target="_blank"></a><a href="mailto:bburke@redhat.com" target="_blank">bburke@redhat.com</a><br>
                                                          &gt;
                                                          &lt;mailto:<a href="mailto:bburke@redhat.com" target="_blank"></a><a href="mailto:bburke@redhat.com" target="_blank">bburke@redhat.com</a>&gt;&gt;



                                                          a écrit :<br>
                                                          &gt;<br>
                                                          &gt;     Our
                                                          brokering
                                                          doesn&#39;t
                                                          support
                                                          temporary user
                                                          ids from the
                                                          &quot;parent&quot; IDP.<br>
                                                          &gt;       
                                                          Transient Ids
                                                          in SAML or
                                                          temporary ids.<br>
                                                          &gt;<br>
                                                          &gt;     On
                                                          12/22/2015
                                                          11:46 AM,
                                                          Jérôme
                                                          Blanchard
                                                          wrote:<br>
                                                          &gt;      &gt;
                                                          Hi,<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;
                                                          I&#39;m trying to
                                                          integrate
                                                          keycloak into
                                                          a the french
                                                          research<br>
                                                          &gt;   
                                                           federation<br>
                                                          &gt;      &gt;
                                                          of identity
                                                          (renater) and
                                                          I&#39;m facing
                                                          some problems.<br>
                                                          &gt;      &gt;
                                                          Actually, when
                                                          IdP respond to
                                                          keycloak i&#39;m
                                                          getting the
                                                          following<br>
                                                          &gt;     error
                                                          :<br>
                                                          &gt;      &gt;
                                                          PL00084:
                                                          Writer:
                                                          Unsupported
                                                          Attribute<br>
                                                          &gt;      &gt;
Value:org.keycloak.dom.saml.v2.assertion.NameIDType<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;
                                                          It seems that
                                                          this IdP is
                                                          using
                                                          transient
                                                          NameID policy
                                                          only and<br>
                                                          &gt;     using<br>
                                                          &gt;      &gt;
                                                          the
                                                          unspecified
                                                          field in the
                                                          idp config in
                                                          keycloak
                                                          generate this<br>
                                                          &gt;      &gt;
                                                          exception as a
                                                          return.<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;
                                                          Log of the
                                                          keycloak
                                                          server is
                                                          joined.<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;
                                                          I have no idea
                                                          of what
                                                          happening
                                                          because when I
                                                          was using the
                                                          test<br>
                                                          &gt;      &gt;
                                                          federation,
                                                          everything was
                                                          working but no
                                                          I&#39;m in the
                                                          production<br>
                                                          &gt;      &gt;
                                                          federation,
                                                          login fails.<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;
                                                          The renater
                                                          federation is
                                                          using
                                                          Shibolleth and
                                                          keycloak is
                                                          not<br>
                                                          &gt;   
                                                           supported<br>
                                                          &gt;      &gt;
                                                          by federation
                                                          moderators so
                                                          I&#39;m alone in
                                                          the dark
                                                          now...<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;
                                                          Renater
                                                          provides an
                                                          IdP list that
                                                          I have to
                                                          parse and<br>
                                                          &gt;   
                                                           synchronized
                                                          with<br>
                                                          &gt;      &gt;
                                                          IdP in
                                                          keycloak. As a
                                                          return I
                                                          provide a list
                                                          of all
                                                          endpoints<br>
                                                          &gt;     for
                                                          each<br>
                                                          &gt;      &gt;
                                                          keycloak
                                                          registered IdP
                                                          to allow
                                                          federation IdP
                                                          to answear<br>
                                                          &gt;   
                                                           correctly to<br>
                                                          &gt;      &gt;
                                                          the right
                                                          endpoint. All
                                                          of this is
                                                          done by a
                                                          small web app
                                                          deployed<br>
                                                          &gt;      &gt;
                                                          aside keycloak
                                                          and using REST
                                                          API to
                                                          synchronize
                                                          all the IdP.<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;
                                                          One of the IdP
                                                          entity
                                                          descriptor is
                                                          joined. As you
                                                          can see, only<br>
                                                          &gt;      &gt;
                                                          transient
                                                          nameid policy
                                                          is supported
                                                          and if I
                                                          configure
                                                          keycloak<br>
                                                          &gt;     to
                                                          use<br>
                                                          &gt;      &gt;
                                                          email or
                                                          persistent, I
                                                          received a
                                                          response
                                                          saying that
                                                          the nameid<br>
                                                          &gt;     is
                                                          not<br>
                                                          &gt;      &gt;
                                                          supported :<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;
&lt;samlp:AuthnRequest<br>
                                                          &gt;   
                                                           xmlns:samlp=&quot;urn:oasis:names:tc:SAML:2.0:protocol&quot;<br>
                                                          &gt;      &gt;
xmlns=&quot;urn:oasis:names:tc:SAML:2.0:assertion&quot;<br>
                                                          &gt;      &gt;<br>
                                                          &gt;   
                                                           AssertionConsumerServiceURL=&quot;<a href="https://demo-auth.ortolang.fr/auth/realms/ortolang/broker/2db5eab3f83cbaa5a322dcf3f9ac552d/endpoint" target="_blank"></a><a href="https://demo-auth.ortolang.fr/auth/realms/ortolang/broker/2db5eab3f83cbaa5a322dcf3f9ac552d/endpoint" target="_blank">https://demo-auth.ortolang.fr/auth/realms/ortolang/broker/2db5eab3f83cbaa5a322dcf3f9ac552d/endpoint</a>&quot;<br>
                                                          &gt;      &gt;
                                                          Destination=&quot;<a href="https://janus.cnrs.fr/idp/profile/SAML2/POST/SSO" target="_blank"></a><a href="https://janus.cnrs.fr/idp/profile/SAML2/POST/SSO" target="_blank">https://janus.cnrs.fr/idp/profile/SAML2/POST/SSO</a>&quot;<br>
                                                          &gt;      &gt;
                                                          ForceAuthn=&quot;false&quot;

ID=&quot;ID_c53b5759-cb97-4e95-b540-877a7a6c625d&quot;<br>
                                                          &gt;      &gt;
                                                          IsPassive=&quot;false&quot;

IssueInstant=&quot;2015-12-22T16:13:15.987Z&quot;<br>
                                                          &gt;      &gt;
ProtocolBinding=&quot;urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST&quot;<br>
                                                          &gt;      &gt;
Version=&quot;2.0&quot;&gt;&lt;saml:Issuer<br>
                                                          &gt;      &gt;<br>
                                                          &gt;   
                                                           xmlns:saml=&quot;urn:oasis:names:tc:SAML:2.0:assertion&quot;&gt;<a href="https://demo-auth.ortolang.fr/auth/realms/ortolang" target="_blank"></a><a href="https://demo-auth.ortolang.fr/auth/realms/ortolang" target="_blank">https://demo-auth.ortolang.fr/auth/realms/ortolang</a>&lt;/saml:Issuer&gt;&lt;samlp:NameIDPolicy<br>
                                                          &gt;      &gt;
AllowCreate=&quot;true&quot;<br>
                                                          &gt;      &gt;<br>
                                                          &gt;   
 Format=&quot;urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress&quot;/&gt;&lt;/samlp:AuthnRequest&gt;<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;
                                                          &lt;saml2p:Response

xmlns:saml2p=&quot;urn:oasis:names:tc:SAML:2.0:protocol&quot;<br>
                                                          &gt;      &gt;<br>
                                                          &gt;   
                                                           Destination=&quot;<a href="https://demo-auth.ortolang.fr/auth/realms/ortolang/broker/2db5eab3f83cbaa5a322dcf3f9ac552d/endpoint" target="_blank"></a><a href="https://demo-auth.ortolang.fr/auth/realms/ortolang/broker/2db5eab3f83cbaa5a322dcf3f9ac552d/endpoint" target="_blank">https://demo-auth.ortolang.fr/auth/realms/ortolang/broker/2db5eab3f83cbaa5a322dcf3f9ac552d/endpoint</a>&quot;<br>
                                                          &gt;      &gt;
ID=&quot;_9d03761957aade819b6823c35bbab278&quot;<br>
                                                          &gt;      &gt;
InResponseTo=&quot;ID_c53b5759-cb97-4e95-b540-877a7a6c625d&quot;<br>
                                                          &gt;      &gt;
IssueInstant=&quot;2015-12-22T16:13:16.420Z&quot;
Version=&quot;2.0&quot;&gt;&lt;saml2:Issuer<br>
                                                          &gt;      &gt;
xmlns:saml2=&quot;urn:oasis:names:tc:SAML:2.0:assertion&quot;<br>
                                                          &gt;      &gt;<br>
                                                          &gt;   
                                                           Format=&quot;urn:oasis:names:tc:SAML:2.0:nameid-format:entity&quot;&gt;<a href="https://janus.cnrs.fr/idp" target="_blank"></a><a href="https://janus.cnrs.fr/idp" target="_blank">https://janus.cnrs.fr/idp</a>&lt;/saml2:Issuer&gt;&lt;saml2p:Status&gt;&lt;saml2p:StatusCode<br>
                                                          &gt;      &gt;<br>
                                                          &gt;   
 Value=&quot;urn:oasis:names:tc:SAML:2.0:status:Responder&quot;&gt;&lt;saml2p:StatusCode<br>
                                                          &gt;      &gt;<br>
                                                          &gt;   
 Value=&quot;urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy&quot;/&gt;&lt;/saml2p:StatusCode&gt;&lt;saml2p:StatusMessage&gt;Required<br>
                                                          &gt;      &gt;
                                                          NameID format
                                                          not<br>
                                                          &gt;      &gt;
supported&lt;/saml2p:StatusMessage&gt;&lt;/saml2p:Status&gt;&lt;/saml2p:Response&gt;<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;
                                                          Any help would
                                                          be gracefully
                                                          appreciated.<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;
                                                          Thanks a lot,
                                                          Jérôme.<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;<br>
                                                          &gt;      &gt;
_______________________________________________<br>
                                                          &gt;      &gt;
                                                          keycloak-user
                                                          mailing list<br>
                                                          &gt;      &gt;
                                                          <a href="mailto:keycloak-user@lists.jboss.org" target="_blank"></a><a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a>
                                                          &lt;mailto:<a href="mailto:keycloak-user@lists.jboss.org" target="_blank"></a><a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a>&gt;<br>
                                                          &gt;      &gt;
                                                          <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank"></a><a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
                                                          &gt;      &gt;<br>
                                                          &gt;<br>
                                                          &gt;     --<br>
                                                          &gt;     Bill
                                                          Burke<br>
                                                          &gt;   
                                                           JBoss, a
                                                          division of
                                                          Red Hat<br>
                                                          &gt;     <a href="http://bill.burkecentral.com" target="_blank"></a><a href="http://bill.burkecentral.com" target="_blank">http://bill.burkecentral.com</a><br>
                                                          &gt;   
                                                           _______________________________________________<br>
                                                          &gt;   
                                                           keycloak-user
                                                          mailing list<br>
                                                          &gt;     <a href="mailto:keycloak-user@lists.jboss.org" target="_blank"></a><a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a>
                                                          &lt;mailto:<a href="mailto:keycloak-user@lists.jboss.org" target="_blank"></a><a href="mailto:keycloak-user@lists.jboss.org" target="_blank">keycloak-user@lists.jboss.org</a>&gt;<br>
                                                          &gt;     <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank"></a><a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
                                                          &gt;<br>
                                                          <br>
                                                          --<br>
                                                          Bill Burke<br>
                                                          JBoss, a
                                                          division of
                                                          Red Hat<br>
                                                          <a href="http://bill.burkecentral.com" rel="noreferrer" target="_blank"></a><a href="http://bill.burkecentral.com" target="_blank">http://bill.burkecentral.com</a><br>
                                                          </blockquote>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                        </blockquote>
                                                        <br>
                                                        <pre cols="72">-- 
Bill Burke
JBoss, a division of Red Hat
<a href="http://bill.burkecentral.com" target="_blank">http://bill.burkecentral.com</a></pre>
                                                      </div>
                                                    </blockquote>
                                                  </div>
                                                </blockquote>
                                              </div>
                                            </blockquote>
                                            <br>
                                            <pre cols="72">-- 
Bill Burke
JBoss, a division of Red Hat
<a href="http://bill.burkecentral.com" target="_blank">http://bill.burkecentral.com</a></pre>
                                          </div>
                                        </blockquote>
                                      </div>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </blockquote>
                          <br>
                          <pre cols="72">-- 
Bill Burke
JBoss, a division of Red Hat
<a href="http://bill.burkecentral.com" target="_blank">http://bill.burkecentral.com</a></pre>
                        </div>
                      </blockquote>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    <pre cols="72">-- 
Bill Burke
JBoss, a division of Red Hat
<a href="http://bill.burkecentral.com" target="_blank">http://bill.burkecentral.com</a></pre>
  </div></blockquote></div></div>