예제 #1
0
def update_saml_provider_config():
    # [START update_saml_provider]
    saml = auth.update_saml_provider_config(
        'saml.myProvider',
        x509_certificates=[
            '-----BEGIN CERTIFICATE-----\nCERT2...\n-----END CERTIFICATE-----',
            '-----BEGIN CERTIFICATE-----\nCERT3...\n-----END CERTIFICATE-----',
        ])

    print('Updated SAML provider:', saml.provider_id)
    def test_update_minimal(self, user_mgt_app):
        recorder = _instrument_provider_mgt(user_mgt_app, 200, SAML_PROVIDER_CONFIG_RESPONSE)

        provider_config = auth.update_saml_provider_config(
            'saml.provider', display_name='samlProviderName', app=user_mgt_app)

        self._assert_provider_config(provider_config)
        assert len(recorder) == 1
        req = recorder[0]
        assert req.method == 'PATCH'
        assert req.url == '{0}/inboundSamlConfigs/saml.provider?updateMask=displayName'.format(
            USER_MGT_URLS['PREFIX'])
        got = json.loads(req.body.decode())
        assert got == {'displayName': 'samlProviderName'}
    def test_update_empty_values(self, user_mgt_app):
        recorder = _instrument_provider_mgt(user_mgt_app, 200, SAML_PROVIDER_CONFIG_RESPONSE)

        provider_config = auth.update_saml_provider_config(
            'saml.provider', display_name=auth.DELETE_ATTRIBUTE, enabled=False, app=user_mgt_app)

        self._assert_provider_config(provider_config)
        assert len(recorder) == 1
        req = recorder[0]
        assert req.method == 'PATCH'
        mask = ['displayName', 'enabled']
        assert req.url == '{0}/inboundSamlConfigs/saml.provider?updateMask={1}'.format(
            USER_MGT_URLS['PREFIX'], ','.join(mask))
        got = json.loads(req.body.decode())
        assert got == {'displayName': None, 'enabled': False}
    def test_update(self, user_mgt_app):
        recorder = _instrument_provider_mgt(user_mgt_app, 200, SAML_PROVIDER_CONFIG_RESPONSE)

        provider_config = auth.update_saml_provider_config(
            **self.VALID_CREATE_OPTIONS, app=user_mgt_app)

        self._assert_provider_config(provider_config)
        assert len(recorder) == 1
        req = recorder[0]
        assert req.method == 'PATCH'
        mask = [
            'displayName', 'enabled', 'idpConfig.idpCertificates', 'idpConfig.idpEntityId',
            'idpConfig.ssoUrl', 'spConfig.callbackUri', 'spConfig.spEntityId',
        ]
        assert req.url == '{0}/inboundSamlConfigs/saml.provider?updateMask={1}'.format(
            USER_MGT_URLS['PREFIX'], ','.join(mask))
        got = json.loads(req.body.decode())
        assert got == self.SAML_CONFIG_REQUEST
예제 #5
0
def test_update_saml_provider_config():
    provider_config = _create_saml_provider_config()
    try:
        provider_config = auth.update_saml_provider_config(
            provider_config.provider_id,
            idp_entity_id='UPDATED_IDP_ENTITY_ID',
            sso_url='https://example.com/updated_login',
            x509_certificates=[X509_CERTIFICATES[1]],
            rp_entity_id='UPDATED_RP_ENTITY_ID',
            callback_url='https://updatedProjectId.firebaseapp.com/__/auth/handler',
            display_name='UPDATED_SAML_DISPLAY_NAME',
            enabled=False)
        assert provider_config.idp_entity_id == 'UPDATED_IDP_ENTITY_ID'
        assert provider_config.sso_url == 'https://example.com/updated_login'
        assert provider_config.x509_certificates == [X509_CERTIFICATES[1]]
        assert provider_config.rp_entity_id == 'UPDATED_RP_ENTITY_ID'
        assert provider_config.callback_url == ('https://updatedProjectId.firebaseapp.com/'
                                                '__/auth/handler')
        assert provider_config.display_name == 'UPDATED_SAML_DISPLAY_NAME'
        assert provider_config.enabled is False
    finally:
        auth.delete_saml_provider_config(provider_config.provider_id)
예제 #6
0
 def test_update_invalid_args(self, user_mgt_app, invalid_opts):
     options = {'provider_id': 'saml.provider'}
     options.update(invalid_opts)
     with pytest.raises(ValueError):
         auth.update_saml_provider_config(**options, app=user_mgt_app)