public function getNameIdData()
    {
        $encryptedIdDataEntries = $this->_queryAssertion('/saml:Subject/saml:EncryptedID/xenc:EncryptedData');

        if ($encryptedIdDataEntries->length == 1) {
            $encryptedData = $encryptedIdDataEntries->item(0);

            $key = $this->_settings->getSPkey();
            $seckey = new XMLSecurityKey(XMLSecurityKey::RSA_1_5, array('type'=>'private'));
            $seckey->loadKey($key);

            $nameId = OneLogin_Saml2_Utils::decryptElement($encryptedData, $seckey);

        } else {
            $entries = $this->_queryAssertion('/saml:Subject/saml:NameID');
            if ($entries->length == 1) {
                $nameId = $entries->item(0);
            }
        }

        $nameIdData = array();

        if (!isset($nameId)) {
            $security = $this->_settings->getSecurityData();
            if ($security['wantNameId']) {
                throw new OneLogin_Saml2_ValidationError(
                    "NameID not found in the assertion of the Response",
                    OneLogin_Saml2_ValidationError::NO_NAMEID
                );
            }
        } else {
            if ($this->_settings->isStrict() && empty($nameId->nodeValue)) {
                throw new OneLogin_Saml2_ValidationError(
                    "An empty NameID value found",
                    OneLogin_Saml2_ValidationError::EMPTY_NAMEID
                );
            }
            $nameIdData['Value'] = $nameId->nodeValue;

            foreach (array('Format', 'SPNameQualifier', 'NameQualifier') as $attr) {
                if ($nameId->hasAttribute($attr)) {
                    if ($this->_settings->isStrict() && $attr == 'SPNameQualifier') {
                        $spData = $this->_settings->getSPData();
                        $spEntityId = $spData['entityId'];
                        if ($spEntityId != $nameId->getAttribute($attr)) {
                            throw new OneLogin_Saml2_ValidationError(
                                "The SPNameQualifier value mistmatch the SP entityID value.",
                                OneLogin_Saml2_ValidationError::SP_NAME_QUALIFIER_NAME_MISMATCH
                            );
                        }
                    }
                    $nameIdData[$attr] = $nameId->getAttribute($attr);
                }
            }
        }

        return $nameIdData;
    }
public function getNameIdData()
    {
        $encryptedIdDataEntries = $this->_queryAssertion('/saml:Subject/saml:EncryptedID/xenc:EncryptedData');

        if ($encryptedIdDataEntries->length == 1) {
            $encryptedData = $encryptedIdDataEntries->item(0);

            $key = $this->_settings->getSPkey();
            $seckey = new XMLSecurityKey(XMLSecurityKey::RSA_1_5, array('type'=>'private'));
            $seckey->loadKey($key);

            $nameId = OneLogin_Saml2_Utils::decryptElement($encryptedData, $seckey);

        } else {
            $entries = $this->_queryAssertion('/saml:Subject/saml:NameID');
            if ($entries->length == 1) {
                $nameId = $entries->item(0);
            }
        }

        $nameIdData = array();

        if (!isset($nameId)) {
            $security = $this->_settings->getSecurityData();
            if ($security['wantNameId']) {
                throw new OneLogin_Saml2_ValidationError(
                    "NameID not found in the assertion of the Response",
                    OneLogin_Saml2_ValidationError::NO_NAMEID
                );
            }
        } else {
            if ($this->_settings->isStrict() && empty($nameId->nodeValue)) {
                throw new OneLogin_Saml2_ValidationError(
                    "An empty NameID value found",
                    OneLogin_Saml2_ValidationError::EMPTY_NAMEID
                );
            }
            $nameIdData['Value'] = $nameId->nodeValue;

            foreach (array('Format', 'SPNameQualifier', 'NameQualifier') as $attr) {
                if ($nameId->hasAttribute($attr)) {
                    if ($this->_settings->isStrict() && $attr == 'SPNameQualifier') {
                        $spData = $this->_settings->getSPData();
                        $spEntityId = $spData['entityId'];
                        if ($spEntityId != $nameId->getAttribute($attr)) {
                            throw new OneLogin_Saml2_ValidationError(
                                "The SPNameQualifier value mistmatch the SP entityID value.",
                                OneLogin_Saml2_ValidationError::SP_NAME_QUALIFIER_NAME_MISMATCH
                            );
                        }
                    }
                    $nameIdData[$attr] = $nameId->getAttribute($attr);
                }
            }
        }

        return $nameIdData;
    }
public function getNameIdData ( ) { $ encryptedIdDataEntries = $ this -> _queryAssertion ( '/saml:Subject/saml:EncryptedID/xenc:EncryptedData' ) ; if ( $ encryptedIdDataEntries -> length == 1 ) { $ encryptedData = $ encryptedIdDataEntries -> item ( 0 ) ; $ key = $ this -> _settings -> getSPkey ( ) ; $ seckey = new XMLSecurityKey ( XMLSecurityKey :: RSA_1_5 , array ( 'type' => 'private' ) ) ; $ seckey -> loadKey ( $ key ) ; $ nameId = OneLogin_Saml2_Utils :: decryptElement ( $ encryptedData , $ seckey ) ; } else { $ entries = $ this -> _queryAssertion ( '/saml:Subject/saml:NameID' ) ; if ( $ entries -> length == 1 ) { $ nameId = $ entries -> item ( 0 ) ; } } $ nameIdData = array ( ) ; if ( ! isset ( $ nameId ) ) { $ security = $ this -> _settings -> getSecurityData ( ) ; if ( $ security [ 'wantNameId' ] ) { throw new OneLogin_Saml2_ValidationError ( "NameID not found in the assertion of the Response" , OneLogin_Saml2_ValidationError :: NO_NAMEID ) ; } } else { if ( $ this -> _settings -> isStrict ( ) && empty ( $ nameId -> nodeValue ) ) { throw new OneLogin_Saml2_ValidationError ( "An empty NameID value found" , OneLogin_Saml2_ValidationError :: EMPTY_NAMEID ) ; } $ nameIdData [ 'Value' ] = $ nameId -> nodeValue ; foreach ( array ( 'Format' , 'SPNameQualifier' , 'NameQualifier' ) as $ attr ) { if ( $ nameId -> hasAttribute ( $ attr ) ) { if ( $ this -> _settings -> isStrict ( ) && $ attr == 'SPNameQualifier' ) { $ spData = $ this -> _settings -> getSPData ( ) ; $ spEntityId = $ spData [ 'entityId' ] ; if ( $ spEntityId != $ nameId -> getAttribute ( $ attr ) ) { throw new OneLogin_Saml2_ValidationError ( "The SPNameQualifier value mistmatch the SP entityID value." , OneLogin_Saml2_ValidationError :: SP_NAME_QUALIFIER_NAME_MISMATCH ) ; } } $ nameIdData [ $ attr ] = $ nameId -> getAttribute ( $ attr ) ; } } } return $ nameIdData ; }
Gets the NameID Data provided by the SAML response from the IdP.

@return array Name ID Data (Value, Format, NameQualifier, SPNameQualifier)

@throws OneLogin_Saml2_ValidationError
Gets the NameID Data provided by the SAML response from the IdP .