Ignore:
Timestamp:
19/12/08 16:39:57 (12 years ago)
Author:
pjkersha
Message:

Refactoring of SSO service to enable use of local AA and SM instances via keys to environ.

Location:
TI12-security/trunk/python/ndg.security.server/ndg/security/server
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/paster_templates/default_deployment/services.ini_tmpl

    r4688 r4692  
    2020# Attribute Authority settings 
    2121# 'name' setting MUST agree with map config file 'thisHost' name attribute 
    22 attributeAuthority.name: Site A 
     22attributeAuthority.name: ${attributeAuthorityID} 
    2323 
    2424# Lifetime is measured in seconds 
     
    4141 
    4242# Location of role mapping file 
    43 attributeAuthority.mapConfigFile: %(here)s/attributeauthority/siteAMapConfig.xml 
     43attributeAuthority.mapConfigFile: %(here)s/attributeauthority/mapConfig.xml 
    4444 
    4545# Settings for custom AAUserRoles derived class to get user roles for given  
     
    141141use = egg:Paste#http 
    142142host = 0.0.0.0 
    143 port = 5000 
     143port = 8000 
    144144 
    145145[app:mainApp] 
     
    160160set debug = false 
    161161 
    162 configfile = %(here)s/singleSignOnService/sso.cfg 
    163 #configfile = /home/pjkersha/workspace/security/python/ndg.security.server/ndg/security/server/sso/sso.cfg 
     162configfile = %(here)s/sso/sso.cfg 
    164163 
    165164# AuthKit Set-up 
     
    301300# Certificate associated with private key used to sign a message.  The sign  
    302301# method will add this to the BinarySecurityToken element of the WSSE header.   
    303 wssecurity.signingCertFilePath=%(here)s/server.crt 
     302wssecurity.signingCertFilePath=%(here)s/wssecurity/server.crt 
    304303 
    305304# PEM encoded private key file 
    306 wssecurity.signingPriKeyFilePath=%(here)s/server.key 
     305wssecurity.signingPriKeyFilePath=%(here)s/wssecurity/server.key 
    307306 
    308307# Set the ValueType for the BinarySecurityToken added to the WSSE header for a 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/paster_templates/template.py

    r4688 r4692  
    22 
    33from paste.script.templates import Template, var, _skip_variables 
     4import os 
    45import socket 
    56_hostTuple = socket.gethostbyaddr(socket.gethostname()) 
     
    2223    summary = 'NERC DataGrid Security services deployment template' 
    2324    vars = vars 
    24      
     25 
     26    def write_files(self, command, output_dir, vars): 
     27        '''Extend to enable substitutions for Single Sign On Service config 
     28        file''' 
     29        if output_dir.startswith('./'): 
     30            outDir = output_dir.lstrip('./') 
     31        else: 
     32            outDir = output_dir 
     33             
     34        vars['ssoConfigDir'] = os.path.join(os.getcwd(), outDir, 'sso') 
     35        super(DefaultDeploymentTemplate, self).write_files(command,  
     36                                                           output_dir,  
     37                                                           vars) 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/sso/certs/clnt.crt

    r3652 r4692  
    22    Data: 
    33        Version: 3 (0x2) 
    4         Serial Number: 243 (0xf3) 
     4        Serial Number: 259 (0x103) 
    55        Signature Algorithm: md5WithRSAEncryption 
    66        Issuer: O=NDG, OU=BADC, CN=Test CA 
    77        Validity 
    8             Not Before: Dec 18 11:42:41 2007 GMT 
    9             Not After : Dec 17 11:42:41 2008 GMT 
     8            Not Before: Dec 16 15:19:45 2008 GMT 
     9            Not After : Dec 15 15:19:45 2013 GMT 
    1010        Subject: O=NDG Security Test, OU=WS-Security Unittest, CN=client 
    1111        Subject Public Key Info: 
     
    3333                Exponent: 65537 (0x10001) 
    3434        X509v3 extensions: 
    35             Netscape Cert Type: 
     35            Netscape Cert Type:  
    3636                SSL Client, SSL Server, S/MIME, Object Signing 
    3737    Signature Algorithm: md5WithRSAEncryption 
    38         c1:2b:11:0e:c3:fe:3e:f2:87:ee:48:e5:f1:29:9c:1f:a3:d8: 
    39         eb:f9:3a:d4:af:75:c7:b4:39:e0:b2:83:5e:ee:71:7c:fc:28: 
    40         73:fb:e4:62:7e:96:7b:f1:c3:b7:a4:94:b5:f7:41:a4:32:6a: 
    41         16:4b:8c:60:36:0c:c1:79:62:51:aa:79:fa:1e:8c:a0:82:58: 
    42         28:c6:cf:da:9b:79:eb:3a:f3:bf:e2:4a:8e:c2:f3:55:3f:b9: 
    43         c6:0e:55:ea:a9:79:9e:3c:d2:d1:07:6c:81:90:2f:a9:54:ba: 
    44         4a:7e:3c:f0:7c:86:c5:e0:b3:71:a5:48:a8:77:e3:83:b6:48: 
    45         6d:78 
     38        63:11:bf:8c:fe:88:3a:7d:12:1e:c1:ea:90:f6:11:33:f2:7d: 
     39        1d:2b:f3:22:3d:72:fb:1b:35:ed:cc:55:79:0e:98:13:41:cf: 
     40        44:5e:c7:88:75:08:b4:b2:2b:ad:11:0e:0b:2e:49:21:41:18: 
     41        6b:e9:2f:77:6d:27:4b:17:85:c8:fa:7b:91:45:97:a4:2d:f3: 
     42        24:4e:1e:be:c5:e5:bc:ca:fd:dc:b2:e9:e1:b1:8a:f0:c1:4f: 
     43        f9:c9:14:f8:c3:c2:98:66:fa:04:82:f1:8d:68:59:17:1f:f2: 
     44        bf:34:f7:c6:3c:85:9b:80:c6:bc:2f:66:2e:0e:f4:24:7c:d8: 
     45        9e:5f 
    4646-----BEGIN CERTIFICATE----- 
    47 MIICizCCAfSgAwIBAgICAPMwDQYJKoZIhvcNAQEEBQAwLzEMMAoGA1UEChMDTkRH 
    48 MQ0wCwYDVQQLEwRCQURDMRAwDgYDVQQDEwdUZXN0IENBMB4XDTA3MTIxODExNDI0 
    49 MVoXDTA4MTIxNzExNDI0MVowTDEaMBgGA1UEChMRTkRHIFNlY3VyaXR5IFRlc3Qx 
     47MIICizCCAfSgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwLzEMMAoGA1UEChMDTkRH 
     48MQ0wCwYDVQQLEwRCQURDMRAwDgYDVQQDEwdUZXN0IENBMB4XDTA4MTIxNjE1MTk0 
     49NVoXDTEzMTIxNTE1MTk0NVowTDEaMBgGA1UEChMRTkRHIFNlY3VyaXR5IFRlc3Qx 
    5050HTAbBgNVBAsTFFdTLVNlY3VyaXR5IFVuaXR0ZXN0MQ8wDQYDVQQDEwZjbGllbnQw 
    5151ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCY7CFf5GAGGJEY38Vukj0U 
     
    5555mtvitXt9HJwdCZbPmPyxs6STvFHMZru1mY5dj1YWT8PBT5Svmpo/EEiL+TZctcXE 
    5656SRRSVxu99yRBJ0f9Nd8IPxtuyyIVX4+xfgOLrNoVQuIV5vKTCZh5RrWjpbk/0eqN 
    57 AgMBAAGjFTATMBEGCWCGSAGG+EIBAQQEAwIE8DANBgkqhkiG9w0BAQQFAAOBgQDB 
    58 KxEOw/4+8ofuSOXxKZwfo9jr+TrUr3XHtDngsoNe7nF8/Chz++RifpZ78cO3pJS1 
    59 90GkMmoWS4xgNgzBeWJRqnn6Hoygglgoxs/am3nrOvO/4kqOwvNVP7nGDlXqqXme 
    60 PNLRB2yBkC+pVLpKfjzwfIbF4LNxpUiod+ODtkhteA== 
     57AgMBAAGjFTATMBEGCWCGSAGG+EIBAQQEAwIE8DANBgkqhkiG9w0BAQQFAAOBgQBj 
     58Eb+M/og6fRIeweqQ9hEz8n0dK/MiPXL7GzXtzFV5DpgTQc9EXseIdQi0siutEQ4L 
     59LkkhQRhr6S93bSdLF4XI+nuRRZekLfMkTh6+xeW8yv3csunhsYrwwU/5yRT4w8KY 
     60ZvoEgvGNaFkXH/K/NPfGPIWbgMa8L2YuDvQkfNieXw== 
    6161-----END CERTIFICATE----- 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/sso/sso.cfg

    r4584 r4692  
    1818#sessionMgrURI: https://gabriel.badc.rl.ac.uk/SessionManager 
    1919sessionMgrURI: http://localhost:8000/SessionManager 
    20 attAuthorityURI: http://localhost:8000/AttributeAuthority 
     20attributeAuthorityURI: http://localhost:8000/AttributeAuthority 
    2121 
    2222# WS-Security signature handler - set a config file with 'wssCfgFilePath' 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/sso/sso/config/ssoServiceMiddleware.py

    r4587 r4692  
    116116            self.smURI = None 
    117117             
    118         if self.cfg.has_option(defSection, 'attAuthorityURI'):         
    119             self.aaURI = self.cfg.get(defSection, 'attAuthorityURI') 
     118        if self.cfg.has_option(defSection, 'sessionManagerEnvironKey'):         
     119            self.smEnvironKey = self.cfg.get(defSection,  
     120                                             'sessionManagerEnvironKey') 
     121        else: 
     122            self.smEnvironKey = None 
     123             
     124        if self.cfg.has_option(defSection, 'attributeAuthorityURI'):         
     125            self.aaURI = self.cfg.get(defSection, 'attributeAuthorityURI') 
    120126        else: 
    121127            self.aaURI = None 
     128             
     129        if self.cfg.has_option(defSection, 'attributeAuthorityEnvironKey'):         
     130            self.aaEnvironKey = self.cfg.get(defSection,  
     131                                             'attributeAuthorityEnvironKey') 
     132        else: 
     133            self.aaEnvironKey = None 
    122134         
    123135        # ... for SSL connections to security web services 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/sso/sso/controllers/login.py

    r4680 r4692  
    5656                        environ=request.environ, 
    5757                        uri=session['ndgSec']['h'], 
     58                        environKey=self.cfg.smEnvironKey, 
     59                        attributeAuthorityEnvironKey=self.cfg.aaEnvironKey, 
    5860                        tracefile=self.cfg.tracefile, 
    5961                        httpProxyHost=self.cfg.httpProxyHost, 
     
    109111        try:     
    110112            smClnt = WSGISessionManagerClient( 
    111                                      environ=request.environ, 
    112                                      uri=self.cfg.smURI, 
    113                                      tracefile=self.cfg.tracefile, 
    114                                      httpProxyHost=self.cfg.httpProxyHost, 
    115                                      noHttpProxyList=self.cfg.noHttpProxyList, 
    116                                      **self.cfg.wss) 
     113                        environ=request.environ, 
     114                        uri=self.cfg.smURI, 
     115                        environKey=self.cfg.smEnvironKey, 
     116                        attributeAuthorityEnvironKey=self.cfg.aaEnvironKey, 
     117                        tracefile=self.cfg.tracefile, 
     118                        httpProxyHost=self.cfg.httpProxyHost, 
     119                        noHttpProxyList=self.cfg.noHttpProxyList, 
     120                        **self.cfg.wss) 
    117121                                 
    118122            username = request.params['username'] 
     
    221225                                    environ=request.environ, 
    222226                                    uri=self.cfg.aaURI, 
     227                                    environKey=self.cfg.aaEnvironKey, 
    223228                                    tracefile=self.cfg.tracefile, 
    224229                                    httpProxyHost=self.cfg.httpProxyHost, 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/sso/sso/lib/openid_util.py

    r4587 r4692  
    127127                                        environ=pylons.request.environ, 
    128128                                        uri=cfg.aaURI, 
     129                                        environKey=self.cfg.aaEnvironKey, 
    129130                                        tracefile=cfg.tracefile, 
    130131                                        httpProxyHost=cfg.httpProxyHost, 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/provider/__init__.py

    r4680 r4692  
    421421                    else: 
    422422                        opt[filtOptName] = optVal 
    423                 else: 
    424                     # Options not starting with prefix are ignored 
    425                     log.debug("Skipping option \"%s\": it doesn't start with " 
    426                               "the prefix \"%s\"", optName, prefix) 
     423#                else: 
     424                    # Options not starting with prefix are ignored - omit debug 
     425                    # it's too verbose even for debug setting :) 
     426#                    log.debug("Skipping option \"%s\": it doesn't start with " 
     427#                              "the prefix \"%s\"", optName, prefix) 
    427428            else: 
    428429                filtOptName = '_'.join(optName.split('.')) 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/zsi/sessionmanager/SessionManager_services_server.py

    r4480 r4692  
    7272                    <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"userX509Cert\" type=\"xsd:string\"/> 
    7373                    <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"sessID\" type=\"xsd:string\"/> 
    74                     <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"attAuthorityURI\" type=\"xsd:string\"/> 
     74                    <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"attributeAuthorityURI\" type=\"xsd:string\"/> 
    7575                    <xsd:element maxOccurs=\"1\" minOccurs=\"0\" name=\"reqRole\" type=\"xsd:string\"/> 
    7676                    <xsd:element maxOccurs=\"1\" minOccurs=\"1\" name=\"mapFromTrustedHosts\" type=\"xsd:boolean\"/> 
     
    269269    def soap_getAttCert(self, ps): 
    270270        self.request = ps.Parse(getAttCertInputMsg.typecode) 
    271         parameters = (self.request._userX509Cert, self.request._sessID, self.request._attAuthorityURI, self.request._reqRole, self.request._mapFromTrustedHosts, self.request._rtnExtAttCertList, self.request._extAttCert, self.request._extTrustedHost) 
     271        parameters = (self.request._userX509Cert, self.request._sessID, self.request._attributeAuthorityURI, self.request._reqRole, self.request._mapFromTrustedHosts, self.request._rtnExtAttCertList, self.request._extAttCert, self.request._extTrustedHost) 
    272272 
    273273        # If we have an implementation object use it 
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/zsi/sessionmanager/__init__.py

    r4680 r4692  
    190190        # If no Attribute Authority URI is set pick up local Attribute  
    191191        # instance Authority 
    192         if request.AttAuthorityURI is None: 
     192        if request.AttributeAuthorityURI is None: 
    193193            attributeAuthorityFilter = \ 
    194194                self.referencedWSGIFilters.get(self.attributeAuthorityFilterID) 
    195195                 
    196196            try: 
    197                 attributeAuthority = \ 
    198                     attributeAuthorityFilter.serviceSOAPBinding.aa 
     197                attributeAuthority= \ 
     198                                attributeAuthorityFilter.serviceSOAPBinding.aa 
    199199            except AttributeError, e: 
    200200                raise SessionManagerWSConfigError("No Attribute Authority URI " 
     
    210210                            userX509Cert=userX509Cert or request.UserX509Cert, 
    211211                            sessID=request.SessID, 
    212                             attributeAuthorityURI=request.AttAuthorityURI, 
     212                            attributeAuthorityURI=request.AttributeAuthorityURI, 
    213213                            attributeAuthority=attributeAuthority, 
    214214                            reqRole=request.ReqRole, 
Note: See TracChangeset for help on using the changeset viewer.