Shibboleth-palvelun määrittäminen kertakirjautumista varten

Julkaistu: kesäkuu 2012

Tuotteet: Office 365, Windows Azure Active Directory, Windows Intune

Huomautus

Tässä ohjeaiheessa on online-ohjesisältöä, joka liittyy useisiin Microsoftin pilvipalveluihin, kuten Windows Intune -palveluun ja Office 365:een.

Tässä ohjeaiheessa on kerrottu yksityiskohtaisesti, miten voit määrittää Shibboleth-tunnistuspalvelun toimimaan yhdessä Windows Azure AD:n kanssa kertakirjautumisen mahdollistamiseksi yhdessä tai useammassa Microsoftin pilvipalvelussa (esimerkiksi Windows Intunessa ja/tai Office 365:ssä) SAML 2.0 -protokollan avulla. Tässä skenaariossa käytetyn Microsoftin pilvipalvelun SAML 2.0:n luottava palvelu on Windows Azure AD.

Tärkeä

Tässä kertakirjautumisskenaariossa tuetaan vain seuraavia asiakkaita:

  • Verkkopohjaiset asiakkaat, kuten Exchange Web Access ja SharePoint Online

  • Sähköpostitoiminnoilla varustetut asiakkaat, jotka käyttävät perustodennusta ja tuettua Exchange-käyttötapaa – IMAP, POP, Active Sync, MAPI tms. (käytössä on oltava asiakasprotokollan Enhanced-päätepiste):

    • Microsoft Outlook 2007

    • Microsoft Outlook 2010

    • Thunderbird 8 ja 9

    • iPhone (eri iOS-versiot)

    • Windows Phone 7

Muita asiakkaita ei tueta tässä Shibboleth-tunnistuspalvelua käyttävässä kertakirjautumisskenaariossa. Esimerkiksi Lync 2010 -työpöytäasiakas ei voi kirjautua palveluun, kun kertakirjautumisessa käytetään Shibboleth-tunnistuspalvelua.

Tärkeä

Ennen kuin voit suorittaa tämän ohjeaiheen toimia ja määrittää Shibboleth-tunnistuspalvelun kertakirjautumista varten, lue Kertakirjautumiseen valmistautuminen -ohjeartikkeli ja tee siinä kuvatut toimet.

Lisätietoja kertakirjautumisesta: Kertakirjautuminen.

Suorita seuraavat toimet, kun määrität Shibboleth-tunnistuspalvelun kertakirjautumista varten:

  1. Lisää Windows Azure AD -metatiedot.

  2. Lisää Windows Azure AD luottavaksi osapuoleksi.

  3. Määritä Shibboleth -määriteselvityksen asetukset.

  4. Määritä Shibboleth -määritesuodattimen asetukset.

  5. Valinnainen: asenna Shibboleth ECP -laajennus

  6. Käynnistä Shibboleth uudelleen ja tarkista sen toiminnallisuus.

Tärkeä

Kaikissa tämän ohjeaiheen esimerkeissä IDP_HOME on perushakemisto, johon Shibboleth-tunnistuspalvelu on asennettu (esimerkiksi c:\shibboleth2idp). Kun määrität Shibbolethin asetukset noudattamalla tämän ohjeaiheen ohjeita, muista korvata IDP_HOME oikealla polulla.

Lisää Windows Azure AD -metatiedot.

Shibboleth-tunnistuspalvelu tarvitsee tietoja luottavasta Windows Azure AD -osapuolesta. Windows Azure AD julkaise metatiedot tänne: https://nexus.microsoftonline-p.com/federationmetadata/saml20/federationmetadata.xml. On suositeltavaa aina tarkistaa uusimmat Windows Azure AD -metatiedot. Tässä on metatietojen nykyinen arvo:

<?xml version="1.0" encoding="utf-8"?>
<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" entityID="urn:federation:MicrosoftOnline">
  <SPSSODescriptor WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://login.microsoftonline.com/login.srf" index="0" isDefault="true"/>
    <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://login.microsoftonline.com/login.srf" index="1"/>
    <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:PAOS" Location="https://login.microsoftonline.com/login.srf" index="2" />
    <NameIDFormat>
      urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
    </NameIDFormat>
    <NameIDFormat>
      urn:mace:shibboleth:1.0:nameIdentifier
    </NameIDFormat>
    <NameIDFormat>
      urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
    </NameIDFormat>
    <NameIDFormat>
      urn:oasis:names:tc:SAML:2.0:nameid-format:transient
    </NameIDFormat>
    <NameIDFormat>
      urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
    </NameIDFormat>
  </SPSSODescriptor>
</EntityDescriptor>

Kun lisäät Windows Azure AD -metatietoja Shibboleth-tunnistuspalveluun, voit käyttää Tiedostojärjestelmän metatietopalvelu -menetelmää. Voit ladata ja tallentaa Windows Azure AD -metatiedot manuaalisesti IDP_HOME/metadata-kansiossa olevaan tiedostoon.

Tärkeä

Kaikissa tämän ohjeaiheen esimerkeissä IDP_HOME on perushakemisto, johon Shibboleth-tunnistuspalvelu on asennettu (esimerkiksi c:\shibboleth2idp). Kun määrität Shibbolethin asetukset noudattamalla tämän ohjeaiheen ohjeita, muista korvata IDP_HOME oikealla polulla.

Lisää Windows Azure AD luottavaksi osapuoleksi.

Shibboleth-tunnistuspalvelun ja Windows Azure AD:n välille täytyy muodostaa yhteys määrittämällä uusi RelyingParty-elementti IDP_Home/conf/relying-party.xml-tiedostoon. Windows Azure AD edellyttää, että saml:SAML2Profile-oletusasetuksiin tehdään muutoksia DefaultRelyingParty-elementissä.

Lisää seuraava teksti DefaultRelyingParty-elementin jälkeen ja varmista, että RelyingParty id -arvo vastaa entityID-arvoa, jonka määritit kohdassa Lisää Windows Azure AD -metatiedot. (esimerkiksi "urn:federation:MicrosoftOnline"). Varmista myös, että provider-arvo vastaa Shibboleth-tunnistuspalvelun EntityID-arvoa, joka on määritetty seuraavassa esimerkissä olevassa DefaultRelyingParty-elementissä:

<!-- Windows Azure AD -->
<rp:RelyingParty id="urn:federation:MicrosoftOnline" provider="https://idp.contoso.com/idp/shibboleth" defaultSigningCredentialRef="IdPCredential">
         
     <rp:ProfileConfiguration xsi:type="saml:SAML2SSOProfile"
signAssertions="conditional"
encryptAssertions="never"
encryptNameIds="never" />
             
</rp:RelyingParty>

Shibboleth-tunnistuspalveluun täytyy myös määrittää, mistä Windows Azure AD -metatiedot sisältävä tiedosto löytyy (esimerkiksi IDP_HOME/metadata/wlid-metadata.xml). Voit tehdä tämän lisäämällä IDP_Home/conf/relying-party.xml-tiedoston MetadataProvider-solmuun merkinnän, kuten seuraavasta esimerkistä näkyy:

<!—- Windows Azure AD Metadata -->
<metadata:MetadataProvider id="OrgID" xsi:type="metadata:ResourceBackedMetadataProvider">
<metadata:MetadataResource xsi:type="resource:FilesystemResource" file="C:\opt\shibboleth-idp/metadata/WindowsAzureAD-metadata.xml"/>

Määritä Shibboleth -määriteselvityksen asetukset.

Windows Azure AD tarvitsee Shibboleth-tunnistuspalvelusta kaksi tietoa, jotta se voi paikantaa varjotilin todennusympäristöstä. Välitä Shibbolethille nämä vaatimukset lisäämällä IDP_HOME/conf/attribute-resolver.xml-tiedostoon seuraavat merkinnät:

  • Windows Azure AD ImmutableID

    Windows Azure AD edellyttää, että valitset yksilöllisen tunnuksen kaikille käyttäjähakemistossa oleville käyttäjille. Shibboleth täytyy myös asettaa SAML 2.0 -protokollan NameID-määrityksessä lähettämään tämä määrite jokaisessa liittoutuneessa sisäänkirjauksessa Windows Azure AD:hen. Tätä tunnusta ei saa muuttaa niin kauan kuin käyttäjä on järjestelmässä. Windows Azure AD -palvelu kutsuu tätä määritettä nimellä ImmutableID. Yksilöllisen tunnuksen arvossa, jossa kirjainkoolla on merkitystä, ei saa olla toimialuetietoja.

    Älä esimerkiksi käytä arvoa user@contoso.com. Alla suositellussa koodissa käytetty arvo on Active Directoryn base64-koodattu objectGUID-ominaisuus. Kun luot tilejä, varmista, että ImmutableID käsitellään samalla tavalla, sillä muuten käyttäjä ei voi kirjautua Microsoftin pilvipalveluun. Microsoft Online Services -hakemistosynkronointityökalu käyttää ImmutableID-arvossa automaattisesti Active Directoryn objectGUID-tunnusta ja käsittelee ImmutableID-tunnuksen samalla tavalla kuin seuraavassa suositellussa esimerkissä:

    <!-- Use AD objectGUID for ImmutableID -->
    <resolver:AttributeDefinition id="ImmutableID" xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad"
              sourceAttributeID="objectGUID">
       <resolver:Dependency ref="myLDAP" />
    
       <resolver:AttributeEncoder xsi:type="SAML2StringNameID" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
       nameFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" />
      </resolver:AttributeDefinition> 
    

    Tärkeä

    Päivitä attribute-resolver.xml-tiedostossa LDAP Data Connector määrittämään objectGUID binaariarvona.

    Muista lisätä tämä rivi LDAP Data Connector -merkintään, sillä se varmistaa, että objectGUID käsitellään oikein ja että se on base64-koodattu.

    <LDAPProperty name="java.naming.ldap.attributes.binary" value="objectGUID"/>
    

    Esimerkki:

    <!-- ========================================== -->
    <!--      Data Connectors                       -->
    <!-- ========================================== -->
    <!-- Live@edu LDAP Connector -->
    <resolver:DataConnector id="myLDAP" xsi:type="LDAPDirectory" xmlns="urn:mace:shibboleth:2.0:resolver:dc"
                       ldapURL="ldap://MyADServer:389"
                       baseDN="CN=Users,DC=MyDomain,DC=ORG"
                       principal="CN=Administrator,CN=Users,DC=MyDomain,DC=ORG"
                       principalCredential="A.useful.p!w.d">
      <FilterTemplate>
        <![CDATA[
                    (uid=$requestContext.principalName)
                ]]>
      </FilterTemplate>
    
      <LDAPProperty name="java.naming.ldap.attributes.binary" value="objectGUID"/>
    
    </resolver:DataConnector>
    
  • Windows Azure AD -käyttäjätunnus

    Windows Azure AD edellyttää, että Windows Azure AD -käyttäjätunnus, esimerkiksi joe@contoso.com, lähetetään seuraavassa esimerkissä kuvatulla mukautetulla merkinnällä. Tässä esimerkissä arvo tallennetaan LDAP:n userPrincipalName-määritteeseen.

    <!-- UserPrincipalName for Windows Azure AD User ID -->
    <resolver:AttributeDefinition id="UserId" xsi:type="ad:Simple" sourceAttributeID="userPrincipalName">
          <resolver:Dependency ref="myLDAP" />
          <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="IDPEmail" friendlyName="UserId" />
    </resolver:AttributeDefinition> 
    

Määritä Shibboleth -määritesuodattimen asetukset.

Shibboleth-tunnistuspalvelu täytyy määrittää vapauttamaan tarvittavat määritteet Windows Azure AD:hen. Lisää IDP_HOME/conf/attribute-filter.xml-tiedostoon seuraava teksti, joka vapauttaa määritteet Windows Azure AD:hen.

Tässä näkyvät asetukset vapauttavat tarvittavat määritteet vain Windows Azure AD- ja Windows Live -palveluihin. Asetuksissa käytetään erityisiä AttributeFilterPolicy-tunnuksia, jotka ilmaisevat, että Windows Azure AD tarvitsee kyseisiä määritteitä.

<!-- Release userPrincipalName as Windows Azure AD User ID -->
<afp:AttributeFilterPolicy id="UserId">
   <afp:PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="urn:federation:MicrosoftOnline"/>

      <afp:AttributeRule attributeID="UserId">
            <afp:PermitValueRule xsi:type="basic:ANY"/>
      </afp:AttributeRule>

</afp:AttributeFilterPolicy>


<!-- Release Immutable ID to Windows Azure AD -->
<afp:AttributeFilterPolicy id="ImmutableID">
        <afp:PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="urn:federation:MicrosoftOnline"/>

      <afp:AttributeRule attributeID="ImmutableID">
          <afp:PermitValueRule xsi:type="basic:ANY"/>
      </afp:AttributeRule>

 </afp:AttributeFilterPolicy>

Valinnainen: asenna Shibboleth ECP -laajennus

Tämä on valinnainen mutta suositeltava toimi. Jos käytät Shibboleth-palvelua suojaustunnuspalveluna, asenna Shibboleth-tunnistuspalvelun ECP-laajennus, jotta kertakirjautumista voi käyttää älypuhelimella, Microsoft Outlookilla ja muilla asiakasohjelmilla.

Enhanced Client/Proxy (ECP) -laajennus sisältyy Shibboleth 2.3.3:een ja uudempiin versioihin. Aiempaan Shibboleth 2.x -versioon voit itse ladata ja asentaa ECP-laajennuksen. Lisätietoja: https://wiki.shibboleth.net/confluence/display/SHIB2/IdP+ECP+Extension.

Shibboleth-tunnistuspalvelun ECP-laajennuksella voit integroida työpöydän sähköpostisovellukset Windows Azure AD:n kanssa. Tämä laajennus ottaa käyttöön SAML 2.0 ECP -määrityksen. Kun määrität Windows Azure AD:ta hyödyntävän kertakirjautumisen asetukset, voit määrittää ECP-laajennuksen URL-osoitteen (esimerkiksi https://idp.contoso.com/idp/profile/SAML2/SOAP/ECP). Shibboleth ECP -laajennuksen todennus on tällä hetkellä rajattu perustodennukseen.

Käynnistä Shibboleth uudelleen ja tarkista sen toiminnallisuus.

Pysäytä ja käynnistä Apache Tomcat, jotta Shibboleth-tunnistuspalvelu käynnistyy uudelleen, ja varmista, että päivitetyt XML-tiedostot ladataan. Shibbolethin käynnistys voi epäonnistua, jos yhdessä tai useammassa määritystiedostossa on ongelmia. Tarkista Shibbolethin lokitiedostoista uudelleenkäynnistyksen jälkeen, ettei niissä ole merkintöjä virheistä. On myös suositeltavaa yrittää sisäänkirjautumista ja aiemmin määritetyn Shibboleth-palvelun käyttämistä verkossa.

Huomautus

Tarkista, että Shibboleth-palvelimen kello on synkronoitu luotettavan aikalähteen kanssa. Virheellinen kellonaika voi johtaa siihen, että liittoutunut sisäänkirjautuminen epäonnistuu.

Katso myös

Käsitteet

Shibboleth-tunnistuspalvelun käyttäminen kertakirjautumisen toteutuksessa