Page tree
Skip to end of metadata
Go to start of metadata

Kuvaus

MFA-palvelun käyttöönotto muistuttaa uuden IdP-luottosuhteen konfigurointia. Palvelun tulee ladata soveltuva metadata ja konfiguroida käyttöliittymään tunnistautuminen käynnistymään oikealla tavalla. Palvelun käyttö ei ole sidottu mihinkään tiettyyn SAML2 SP-ohjelmistoon vaan mikä tahansa ohjelmisto, jonka saa konfiguroitua soveltuvasti, toimii.

Ohjeet

  1. Palvelu ottaa käyttöön metadatan, jossa MFA-tunnistuspalvelu (julkaistaan myöhemmin). Metadatan avulla muodostetaan luottosuhde, MFA-palveluun, jotta sen laatimat tunnistusvastaukset hyväksytään palvelussa.

    shibboleth2.xml
     <MetadataProvider type="XML" uri="http://federation.org/federation-metadata.xml"
                  backingFilePath="federation-metadata.xml" reloadInterval="7200">
                <MetadataFilter type="RequireValidUntil" maxValidityInterval="2419200"/>
                <MetadataFilter type="Signature" certificate="fedsigner.pem"/>
     </MetadataProvider>
    
    
  2. Palvelu lähettää tunnistuspyynnön MFA-tunnistuspalvelulle. Usein Haka-palvelu lähettä tunnistuspyynnön Haka DS:lle, josta käyttäjä valitsee käyttämänsä organisaation tunnistuspalvelimen. MFA:ta käytettäessä tulee tunnistuspyynnönt lähettää sille.
    1. Osoitetaan SessionInitiatorissa MFA-palveluun

      shibboleth2.xml
      <SSO entityID="MFA_ENTITYID">
        SAML2
      </SSO>
    2. Käyttöliittymässä tunnistamisen käynnistämisessä osoitetaan tiettyy tunnistuspalvelimeen (https://hostname/Shibboleth.sso/Login?entityid=MFA_ENTITYID)
  3. Tunnistuspyyntö sisältää pyynnön tunnistustavasta, jotta voidaan varmistua halutun tunnistustavan käytöstä.
    1. Shibbolethissa esimerkiksi lisäämällä parametri authnContextClassRef=FORMAT_TDB kirjautumisen käynnistämiseen (https://hostname/Shibboleth.sso/Login?authnContextClassRef=https://refeds.org/profile/mfa )
    2. Autentikointipyyntö sisältää AuthnContextClass-määrityksen vahvasta tunnistamisesta

      SAML2 Authentication Request
      <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                          AssertionConsumerServiceURL="PALVELU_ACS"
                          Destination="MFA_ENTITYID"
                          ID="_1243622e8884a1b37822ecc5272c22f1"
                          IssueInstant="2016-11-04T08:21:59Z"
                          ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                          Version="2.0">
          <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">PALVELUN_ENTITYID</saml:Issuer>
          <samlp:NameIDPolicy AllowCreate="1" />
          <samlp:RequestedAuthnContext>
              <saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">https://refeds.org/profile/mfa</saml:AuthnContextClassRef>
      	</samlp:RequestedAuthnContext>
      </samlp:AuthnRequest>
  1. Käyttäjäattribuutit ovat käyttäjän kotiorganisaatiosta saadut
    1. AuhnContextClass vastaa pyydettyä 
    2. Vastauksen tekijänä on MFA-tunnistuspalvelu 
    3. SAML2 Authentication Response
      <?xml version="1.0"?>
      <saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="_63560a9a0fb3761802ce9ab9e9adc4e3" IssueInstant="2016-11-04T08:23:02.010Z" Version="2.0">
        <saml2:Issuer>MFA_ENTITYID</saml2:Issuer>
        <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
      <ds:SignedInfo>
      <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
      <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
      <ds:Reference URI="#_63560a9a0fb3761802ce9ab9e9adc4e3">
      <ds:Transforms>
      <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
      <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"><ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="xsd"/></ds:Transform>
      </ds:Transforms>
      <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
      <ds:DigestValue>zBcE9CJIUSZe5JwPaFj4rk11DYF6odlLPztuuPuOgTk=</ds:DigestValue>
      </ds:Reference>
      </ds:SignedInfo>
      <ds:SignatureValue>
      ...
      </ds:SignatureValue>
      <ds:KeyInfo><ds:X509Data><ds:X509Certificate>...</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature>
        <saml2:Subject>
          <saml2:NameID xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" NameQualifier="MFA_ENTITYID" SPNameQualifier="PALVELU_ENTITYID">AAdzZWNyZXQx18VKid56+JBx5ocLvpYiHkuZkF7u3ggmPjovOeLjuMbSeEG/oQ99NkNrBHmMU3foWxCtJ6YnWn10MFE22wd03b6lS4ah2xi8A+/TrSxJaZpGUlX+4Th4grJaDJ3/CfRqVOxE/78sM5HW4/MS</saml2:NameID>
          <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
            <saml2:SubjectConfirmationData Address="2001:708:10:10:757a:dd47:2635:b810" InResponseTo="_1243622e8884a1b37822ecc5272c22f1" NotOnOrAfter="2016-11-04T08:28:02.230Z" Recipient="PALVELU_ACS"/>
          </saml2:SubjectConfirmation>
        </saml2:Subject>
        <saml2:Conditions NotBefore="2016-11-04T08:23:02.010Z" NotOnOrAfter="2016-11-04T08:28:02.010Z">
          <saml2:AudienceRestriction>
            <saml2:Audience>PALVELU_ENTITYID</saml2:Audience>
          </saml2:AudienceRestriction>
        </saml2:Conditions>
        <saml2:AuthnStatement AuthnInstant="2016-11-04T08:23:01.717Z" SessionIndex="_6632b47e790a62992df6f60d0969516b">
          <saml2:SubjectLocality Address="2001:708:10:10:757a:dd47:2635:b810"/>
          <saml2:AuthnContext>
            <saml2:AuthnContextClassRef>FORMAT_TBD</saml2:AuthnContextClassRef>
          </saml2:AuthnContext>
        </saml2:AuthnStatement>
        <saml2:AttributeStatement>
          <saml2:Attribute FriendlyName="telephoneNumber" Name="urn:oid:2.5.4.20" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
            <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">+358-9-1234567</saml2:AttributeValue>
          </saml2:Attribute>
        </saml2:AttributeStatement>
      </saml2:Assertion>

 

  • No labels