Shibbolethi konfigureerimine ühekordse sisselogimise kasutamiseks

Avaldatud: juuni 2012. a.

Uuendatud: veebruar 2013. a.

Kehtib järgmise programmi kohta:: Office 365, Windows Azure Active Directory, Windows Intune

noteMärkus.
Käesolev teema sisaldab veebispikri sisu, mis on kohaldatud mitmele Microsofti pilvteenusele (sh Windows Intune ja Office 365).

See artikkel sisaldab teenuse Shibboleth Identity Provider seadistusjuhiseid Windows Azure AD-ga koos kasutamiseks, et võimaldada ühekordse sisselogimisega juurdepääs ühele või mitmele Microsofti pilvteenusele (nt Windows Intune ja/või Office 365) SAML 2.0 protokolli abil. Käesoleval juhul on SAML 2.0 vahendavaks osapooleks Microsofti pilvteenus Windows Azure AD.

ImportantNB!
Ühekordsel sisselogimisel toetatakse vaid üksikuid kliente, vt alltoodud loendit.

  • Veebipõhised kliendid Exchange Web Access ja SharePoint Online

  • Meilikliendid, mis kasutavad põhiautentimist ja toetusega Exchange'i juurdepääsumeetodit, nt IMAP, POP, Active Sync, MAPI jne. (Juurutada tuleb täiustatud kliendiprotokolli lõpupunkt), sh:

    • Microsoft Outlook 2007

    • Microsoft Outlook 2010

    • Thunderbird 8 ja 9

    • iPhone (eri iOS-i versioonid)

    • Windows Phone 7

Teenusega Shibboleth Identity Provider ühekordseks sisselogimiseks ei toetata teisi kliente. Näiteks Lync 2010 töölauaklienti ei toetata teenusesse sisselogimiseks Shibboleth Identity Provideri ühekordse sisselogimise abil.

ImportantNB!
Enne selles teemas olevate etappide läbimist teenuse Shibboleth Identity Provider ühekordse sisselogimise seadistamiseks peate lugema ja järgima artiklis Ühekordse sisselogimise ettevalmistamine toodud juhiseid.

Ühekordse sisselogimise kohta leiate üldteavet artiklist Ühekordse sisselogimise teejuht.

Shibboleth Identity Provideriga ühekordse sisselogimise seadistamiseks tuleb läbida järgmised etapid:

  1. Windows Azure AD metaandmete lisamine

  2. Windows Azure AD lisamine vahendavaks osapooleks

  3. Shibbolethi atribuudilahendaja konfigureerimine

  4. Shibbolethi atribuudifiltri konfigureerimine

  5. Valikuline: Shibbolethi ECP-laienduse installimine

  6. Shibbolethi taaskäivitamine ja funktsionaalsuse kontrollimine

ImportantNB!
Selle teema kõikides näidetes on IDP_HOME põhikataloog, kuhu installisite teenuse Shibboleth Identity Provider, nt c:\shibboleth2idp. Kõnealuse artikli juhiste järgimisel Shibbolethi konfigureerimiseks tuleb IDP_HOME asendada teie enda failiteega.

Windows Azure AD metaandmete lisamine

Shibboleth Identity Provider vajab teavet Windows Azure AD vahendava osapoole kohta. Windows Azure AD avaldatud metaandmed on saidil https://nexus.microsoftonline-p.com/federationmetadata/saml20/federationmetadata.xml. Soovitatav on uusimate Windows Azure AD metaandmete olemasolu regulaarselt kontrollida. Siin on metaandmete kehtiv väärtus:

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

Windows Azure AD metaandmete lisamiseks teenusesse Shibboleth Identity Provider saate valida failisüsteemi metaandmete pakkuja meetodi – võite Windows Azure AD metaandmed käsitsi alla laadida ja neid hoida kaustas IDP_HOME/metadata.

ImportantNB!
Selle teema kõikides näidetes on IDP_HOME põhikataloog, kuhu installisite teenuse Shibboleth Identity Provider, nt c:\shibboleth2idp. Kõnealuse artikli juhiste järgimisel Shibbolethi konfigureerimiseks tuleb IDP_HOME asendada teie enda failiteega.

Windows Azure AD lisamine vahendavaks osapooleks

Teenuste Shibboleth Identity Provider ja Windows Azure AD vahelise suhtluse lubamiseks määrake failis IDP_Home/conf/relying-party.xml uus element RelyingParty. Windows Azure AD vajab vaikimisi kasutatavate saml:SAML2Profile sätete muutmist elemendis DefaultRelyingParty.

Sisestage järgmine tekst pärast elementi DefaultRelyingParty ning veenduge, et RelyingParty id väärtus ühtib entityID väärtusega, mille määrasite punktis Windows Azure AD metaandmete lisamine, nt "urn:federation:MicrosoftOnline". Samuti veenduge, et elemendi provider väärtus ühtib Shibboleth Identity Provideri EntityID väärtusega, mis on määratud elemendis DefaultRelyingParty. Vt alltoodud näidet:

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

Lisaks peate määrama Shibboleth Identity Provideri jaoks, kust leida Windows Azure AD metaandmete faili, nt IDP_HOME/metadata/wlid-metadata.xml. Selleks lisage kirje faili IDP_Home/conf/relying-party.xml sõlme MetadataProvider alltoodud näite järgi:

<!—- 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"/>

Shibbolethi atribuudilahendaja konfigureerimine

Windows Azure AD vajab autentimisplatvormist varikonto leidmiseks Shibboleth Identity Providerilt kahte tüüpi andmeid. Shibbolethi teavitamiseks neist nõuetest lisage faili IDP_HOME/conf/attribute-resolver.xml järgmised kirjed:

  • Windows Azure AD ImmutableID

    Windows Azure AD nõuab kasutajakataloogis olevale igale kasutajale kordumatu identifikaatori valimist. Shibboleth tuleb konfigureerida nii, et see saadaks selle atribuudi teenusele Windows Azure AD SAML 2.0 kinnitusega NameID igal seostatud sisselogimisel. Kõnealune identifikaator ei tohi selle kasutaja jaoks muutuda kogu süsteemi kasutamise aja vältel. Teenuses Windows Azure AD on selle atribuudi nimetus “ImmutableID”. Ainuidentifikaatori väärtus on tõstutundlik ning see ei tohi sisaldada domeeniteavet.

    Nt ärge kasutage vormingut kasutaja@contoso.com. Alltoodud soovituslikus koodis on kasutatav väärtus base64-kodeeringus olev Active Directory objectGUID atribuut. Kontode koostamisel peate veenduma, et atribuuti ImmutableID töödeldakse sama moodi, muidu ei saa kasutaja Microsofti pilvteenusesse sisse logida. Microsofti võrguteenuste kataloogi sünkroonimisvahend kasutab väärtuse ImmutableID jaoks automaatselt väärtust Active Directory objectGUID ning töötleb ImmutableID-d alltoodud näites oleval viisil.

    <!-- 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> 
    
    ImportantNB!
    Värskendage atribuuti LDAP Data Connector failis attribute-resolver.xml nii, et see määrab objectGUID-i kahendkoodis.

    Lisage kindlasti see rida LDAP Data Connector kirjesse, sest nii tagatakse parameetri objectGUID-i õige käsitlemine ja base64-kodeering.

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

    Nt:

    <!-- ========================================== -->
    <!--      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 kasutaja ID

    Windows Azure AD nõuab Windows Azure ID (nt joe@contoso.com) saatmist kohandatud kirjena. Vt alltoodud näidet. Selles näites salvestatakse väärtus LDAP atribuuti userPrincipalName.

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

Shibbolethi atribuudifiltri konfigureerimine

Shibboleth Identity Provider peab olema konfigureeritud vajaminevate atribuutide vabastamiseks Windows Azure AD-le. Atribuutide vabastamiseks teenusele Windows Azure AD lisage faili IDP_HOME/conf/attribute-filter.xml järgmine tekst.

Siin näidatud sätted vabastavad nõutud atribuudid üksnes teenustele Windows Azure AD ja Windows Live. Sätetes kasutatakse konkreetseid AttributeFilterPolicy ID-sid Windows Azure AD nõutud atribuutide näitamiseks.

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

Valikuline: Shibbolethi ECP-laienduse installimine

See on küll valikuline, kuid soovituslik etapp. Kui kasutate Shibbolethi turbelubade teenusena, installige kindlasti Shibboleth Identity Provideri ECP-laiendus, et kasutada ühekordset sisselogimist nutitelefoni, Microsoft Outlooki või muude klientidega.

Täiustatud kliendi-/puhvrilaiendus (ECP) on Shibbolethi versioonis 2.3.3 ja uuemates väljaannetes. Shibboleth 2.x vanema versiooni kasutamisel võite ECP-laienduse alla laadida ja installida. Lisateavet leiate artiklist: https://wiki.shibboleth.net/confluence/display/SHIB2/IdP+ECP+Extension.

Shibboleth Identity Provideri ECP-laiendus võimaldab töölaua meilirakenduste integreerimist teenusega Windows Azure AD. Laiendus kasutab SAML 2.0 ECP spetsifikatsioone. Windows Azure AD ühekordse sisselogimise seadistamisel võite määrata ECP-laienduse URL-i, nt https://idp.contoso.com/idp/profile/SAML2/SOAP/ECP. Shibbolethi ECP-laienduse autentimine toetab hetkel vaid põhiautentimist.

Shibbolethi taaskäivitamine ja funktsionaalsuse kontrollimine

Shibboleth Identity Provideri taaskäivitamiseks peatage ja käivitage Apache Tomcat ning veenduge, et laaditakse uuendatud XML-failid. Kui ühe või mitme konfiguratsioonifailiga on probleeme, võib Shibbolethi käivitamine nurjuda. Pärast taaskäivitamist veenduge, et Shibbolethi logifailides pole vigu. Samuti on soovitatav logida sisse ja proovida juurdepääsu eelnevalt seadistatud Shibbolethi teenusepakkuja lehel.

noteMärkus.
Kontrollige, kas Shibbolethi server on sünkroonitud täpse kellaajaserveriga. Vale kellaaeg võib põhjustada liitsisselogimise nurjumise.

Vt ka

Mõisted

Shibboleth Identity Provideri kasutamine ühekordse sisselogimise rakendamiseks