root/trunk/rp/common/python/docs/infocardlib.html

Revision 1264, 11.3 kB (checked in by dbuss, 9 months ago)

#346 Added base documentation, enhanced a number of events to be more descriptive and added some event logging. Updated sample.

  • Property svn:eol-style set to native
Line 
1
2<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
3<html><head><title>Python: module infocardlib</title>
4</head><body bgcolor="#f0f0f8">
5
6<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
7<tr bgcolor="#7799ee">
8<td valign=bottom>&nbsp;<br>
9<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>infocardlib</strong></big></big></font></td
10><td align=right valign=bottom
11><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/dbuss/dev/bandit/rp/common/python/infocard/infocardlib.py">/home/dbuss/dev/bandit/rp/common/python/infocard/infocardlib.py</a></font></td></tr></table>
12    <p><tt>#&nbsp;&nbsp;Copyright&nbsp;(c)&nbsp;2007,&nbsp;2008&nbsp;Novell,&nbsp;Inc.<br>
13#&nbsp;&nbsp;All&nbsp;Rights&nbsp;Reserved.</tt></p>
14<p>
15<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
16<tr bgcolor="#aa55cc">
17<td colspan=3 valign=bottom>&nbsp;<br>
18<font color="#fffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
19   
20<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
21<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="cookielib.html">cookielib</a><br>
22<a href="datetime.html">datetime</a><br>
23<a href="event.html">event</a><br>
24</td><td width="25%" valign=top><a href="hashlib.html">hashlib</a><br>
25<a href="xml.dom.minidom.html">xml.dom.minidom</a><br>
26<a href="re.html">re</a><br>
27</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
28<a href="traceback.html">traceback</a><br>
29<a href="urlparse.html">urlparse</a><br>
30</td><td width="25%" valign=top><a href="_xmlplus.html">_xmlplus</a><br>
31<a href="xmlseclibs.html">xmlseclibs</a><br>
32<a href="xml.xpath.html">xml.xpath</a><br>
33</td></tr></table></td></tr></table><p>
34<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
35<tr bgcolor="#ee77aa">
36<td colspan=3 valign=bottom>&nbsp;<br>
37<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
38   
39<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
40<td width="100%"><dl>
41<dt><font face="helvetica, arial"><a href="infocardlib.html#InfoCardProcessor">InfoCardProcessor</a>
42</font></dt><dt><font face="helvetica, arial"><a href="infocardlib.html#SecToken">SecToken</a>
43</font></dt></dl>
44 <p>
45<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
46<tr bgcolor="#ffc8d8">
47<td colspan=3 valign=bottom>&nbsp;<br>
48<font color="#000000" face="helvetica, arial"><a name="InfoCardProcessor">class <strong>InfoCardProcessor</strong></a></font></td></tr>
49   
50<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
51<td colspan=2><tt>Base&nbsp;object&nbsp;for&nbsp;consumers&nbsp;who&nbsp;wish&nbsp;to&nbsp;build&nbsp;a&nbsp;python&nbsp;based&nbsp;RP&nbsp;for&nbsp;<br>
52processing&nbsp;information&nbsp;cards&nbsp;and&nbsp;dealing&nbsp;with&nbsp;cardspace.<br>
53&nbsp;<br>
54This&nbsp;object&nbsp;may&nbsp;be&nbsp;created&nbsp;and&nbsp;configured&nbsp;once&nbsp;then&nbsp;used&nbsp;to&nbsp;evaluate&nbsp;many&nbsp;<br>
55security&nbsp;tokens<br>&nbsp;</tt></td></tr>
56<tr><td>&nbsp;</td>
57<td width="100%">Methods defined here:<br>
58<dl><dt><a name="InfoCardProcessor-__init__"><strong>__init__</strong></a>(self)</dt></dl>
59
60<dl><dt><a name="InfoCardProcessor-processToken"><strong>processToken</strong></a>(self, xmlToken<font color="#909090">=None</font>)</dt><dd><tt>Parse&nbsp;the&nbsp;token&nbsp;using&nbsp;prevously&nbsp;configured&nbsp;keys,&nbsp;claims&nbsp;and&nbsp;options.<br>
61&nbsp;<br>
62returns&nbsp;a&nbsp;<a href="#SecToken">SecToken</a>&nbsp;objec,&nbsp;the&nbsp;returned&nbsp;secToken&nbsp;may&nbsp;or&nbsp;may&nbsp;not&nbsp;be&nbsp;valid,<br>
63it&nbsp;is&nbsp;up&nbsp;to&nbsp;the&nbsp;caller&nbsp;to&nbsp;check&nbsp;secToken.isValid()</tt></dd></dl>
64
65<dl><dt><a name="InfoCardProcessor-setClaims"><strong>setClaims</strong></a>(self, required, optional<font color="#909090">=None</font>, multivalued<font color="#909090">=None</font>)</dt><dd><tt>Helper&nbsp;function&nbsp;to&nbsp;simplify&nbsp;setting&nbsp;of&nbsp;the&nbsp;optional&nbsp;and&nbsp;required<br>
66claims,&nbsp;as&nbsp;well&nbsp;as&nbsp;which&nbsp;claims&nbsp;may&nbsp;be&nbsp;multivalued.<br>
67&nbsp;<br>
68Failure&nbsp;to&nbsp;tell&nbsp;the&nbsp;processor&nbsp;which&nbsp;claims&nbsp;are&nbsp;expected&nbsp;may&nbsp;result&nbsp;in<br>
69errors&nbsp;being&nbsp;reported.&nbsp;&nbsp;&nbsp;The&nbsp;process&nbsp;helps&nbsp;verify&nbsp;that&nbsp;all&nbsp;required&nbsp;claims<br>
70were&nbsp;received&nbsp;and&nbsp;that&nbsp;no&nbsp;additional&nbsp;claims&nbsp;were&nbsp;sent.<br>
71&nbsp;<br>
72Todo:&nbsp;insert&nbsp;empty&nbsp;claim&nbsp;handling<br>
73Todo:&nbsp;insert&nbsp;custom&nbsp;claim&nbsp;transformations<br>
74&nbsp;<br>
75always&nbsp;returns&nbsp;None</tt></dd></dl>
76
77<dl><dt><a name="InfoCardProcessor-setDecode"><strong>setDecode</strong></a>(self, privateKey, passPhrase<font color="#909090">=None</font>, isFile<font color="#909090">=False</font>, isCert<font color="#909090">=True</font>)</dt><dd><tt>Setup&nbsp;the&nbsp;cert/private&nbsp;key&nbsp;used&nbsp;to&nbsp;decrypt&nbsp;tokens.&nbsp;&nbsp;In&nbsp;many&nbsp;cases&nbsp;this&nbsp;<br>
78will&nbsp;be&nbsp;the&nbsp;servers&nbsp;ssl&nbsp;cert.<br>
79&nbsp;<br>
80always&nbsp;returns&nbsp;None</tt></dd></dl>
81
82<dl><dt><a name="InfoCardProcessor-setOptions"><strong>setOptions</strong></a>(self, options)</dt><dd><tt>Set&nbsp;options&nbsp;for&nbsp;processing&nbsp;the&nbsp;security&nbsp;token<br>
83&nbsp;<br>
84The&nbsp;most&nbsp;common&nbsp;options&nbsp;relate&nbsp;to&nbsp;the&nbsp;overriding&nbsp;of&nbsp;event&nbsp;severity,&nbsp;please<br>
85see&nbsp;evemt.py&nbsp;for&nbsp;details&nbsp;of&nbsp;option&nbsp;name&nbsp;and&nbsp;values.</tt></dd></dl>
86
87</td></tr></table> <p>
88<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
89<tr bgcolor="#ffc8d8">
90<td colspan=3 valign=bottom>&nbsp;<br>
91<font color="#000000" face="helvetica, arial"><a name="SecToken">class <strong>SecToken</strong></a></font></td></tr>
92   
93<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
94<td colspan=2><tt>Class&nbsp;for&nbsp;the&nbsp;parsing&nbsp;and&nbsp;holding&nbsp;of&nbsp;security&nbsp;token&nbsp;data<br>
95&nbsp;<br>
96Instantiate,&nbsp;configure,&nbsp;process,&nbsp;check&nbsp;validity<br>
97Typiclly&nbsp;not&nbsp;directly&nbsp;instanciated,&nbsp;instead&nbsp;<a href="#InfoCardProcessor">InfoCardProcessor</a>&nbsp;is&nbsp;used&nbsp;to&nbsp;<br>
98hold&nbsp;the&nbsp;common&nbsp;configuration&nbsp;and&nbsp;as&nbsp;a&nbsp;factory&nbsp;for&nbsp;creating&nbsp;SecTokens<br>
99&nbsp;<br>
100Todo:&nbsp;&nbsp;currently&nbsp;only&nbsp;supports&nbsp;SAML&nbsp;1.0/1.1&nbsp;tokens,&nbsp;that&nbsp;should&nbsp;be&nbsp;abstracted&nbsp;out<br>
101to&nbsp;allow&nbsp;for&nbsp;many&nbsp;token&nbsp;types.<br>&nbsp;</tt></td></tr>
102<tr><td>&nbsp;</td>
103<td width="100%">Methods defined here:<br>
104<dl><dt><a name="SecToken-__init__"><strong>__init__</strong></a>(self, options<font color="#909090">=None</font>)</dt></dl>
105
106<dl><dt><a name="SecToken-getAssertionValues"><strong>getAssertionValues</strong></a>(self, identifier<font color="#909090">=None</font>)</dt><dd><tt>Allows&nbsp;retrivial&nbsp;of&nbsp;any&nbsp;claim&nbsp;or&nbsp;assertion&nbsp;associated&nbsp;with&nbsp;the&nbsp;security&nbsp;token<br>
107&nbsp;<br>
108Todo::&nbsp;&nbsp;visit&nbsp;and&nbsp;finish&nbsp;this&nbsp;function<br>
109Returns&nbsp;either&nbsp;the&nbsp;data&nbsp;or&nbsp;None</tt></dd></dl>
110
111<dl><dt><a name="SecToken-getMetaDataValues"><strong>getMetaDataValues</strong></a>(self, identifier<font color="#909090">=None</font>)</dt><dd><tt>Allows&nbsp;retrivial&nbsp;of&nbsp;any&nbsp;meta&nbsp;data&nbsp;associated&nbsp;with&nbsp;the&nbsp;security&nbsp;token<br>
112&nbsp;<br>
113Note:&nbsp;currently&nbsp;all&nbsp;meta&nbsp;data&nbsp;is&nbsp;single&nbsp;valued!<br>
114Pass&nbsp;a&nbsp;specific&nbsp;string&nbsp;for&nbsp;the&nbsp;identifier&nbsp;and&nbsp;receive&nbsp;either&nbsp;a&nbsp;<br>
115string&nbsp;or&nbsp;None<br>
116If&nbsp;the&nbsp;identifier&nbsp;is&nbsp;None&nbsp;then&nbsp;a&nbsp;dictionary&nbsp;of&nbsp;all&nbsp;meta&nbsp;data&nbsp;is&nbsp;returned</tt></dd></dl>
117
118<dl><dt><a name="SecToken-processToken"><strong>processToken</strong></a>(self, xmlToken, options)</dt><dd><tt>Process&nbsp;the&nbsp;token,&nbsp;until&nbsp;processed&nbsp;no&nbsp;data&nbsp;is&nbsp;present<br>
119&nbsp;<br>
120returns&nbsp;True&nbsp;if&nbsp;valid,&nbsp;False&nbsp;if&nbsp;invalid.&nbsp;&nbsp;&nbsp;Events&nbsp;are&nbsp;logged&nbsp;to&nbsp;<br>
121self.<strong>eventLog</strong>&nbsp;detialing&nbsp;failure&nbsp;reasons.</tt></dd></dl>
122
123</td></tr></table></td></tr></table><p>
124<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
125<tr bgcolor="#eeaa77">
126<td colspan=3 valign=bottom>&nbsp;<br>
127<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
128   
129<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
130<td width="100%"><dl><dt><a name="-checkDateConditions"><strong>checkDateConditions</strong></a>(start<font color="#909090">=None</font>, end<font color="#909090">=None</font>, difference<font color="#909090">=300</font>)</dt><dd><tt>Validate&nbsp;a&nbsp;datetime&nbsp;is&nbsp;in&nbsp;range.&nbsp;&nbsp;&nbsp;<br>
131&nbsp;<br>
132difference&nbsp;in&nbsp;seconds&nbsp;allows&nbsp;for&nbsp;clock&nbsp;skew.<br>
133&nbsp;<br>
134Todo::&nbsp;need&nbsp;work&nbsp;on&nbsp;ISO&nbsp;date&nbsp;checking&nbsp;-&nbsp;skip&nbsp;for&nbsp;now<br>
135&nbsp;<br>
136returns&nbsp;True&nbsp;if&nbsp;time&nbsp;is&nbsp;in&nbsp;range&nbsp;False&nbsp;if&nbsp;not&nbsp;in&nbsp;range</tt></dd></dl>
137</td></tr></table><p>
138<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
139<tr bgcolor="#55aa55">
140<td colspan=3 valign=bottom>&nbsp;<br>
141<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
142   
143<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
144<td width="100%"><strong>BEARER_TOKEN</strong> = 'urn:oasis:names:tc:SAML:1.0:cm:bearer'<br>
145<strong>HOLDER_OF_KEY_TOKEN</strong> = 'urn:oasis:names:tc:SAML:1.0:cm:holder-of-key'<br>
146<strong>META_AssertionID</strong> = 'AssertionID'<br>
147<strong>META_Audience</strong> = 'Audience'<br>
148<strong>META_CardKeyHash</strong> = 'CardKeyHash'<br>
149<strong>META_IssueInstant</strong> = 'IssueInstant'<br>
150<strong>META_Issuer</strong> = 'Issuer'<br>
151<strong>META_MajorVersion</strong> = 'MajorVersion'<br>
152<strong>META_MinorVersion</strong> = 'MinorVersion'<br>
153<strong>META_NotBefore</strong> = 'NotBefore'<br>
154<strong>META_NotOnOrAfter</strong> = 'NotOnOrAfter'<br>
155<strong>META_SubjectConfirmation</strong> = 'SubjectConfirmationNethod'<br>
156<strong>OPTION_CryptoKey</strong> = 'cryptoKey'<br>
157<strong>OPTION_CryptoKeyIsCert</strong> = 'cryptoKeyIsCert'<br>
158<strong>OPTION_CryptoKeyIsFile</strong> = 'cryptoKeyIsFile'<br>
159<strong>OPTION_CryptoKeyPass</strong> = 'cryptoKeyPass'<br>
160<strong>OPTION_multivalued_claims</strong> = 'multivalued_claims'<br>
161<strong>OPTION_optional_claims</strong> = 'optional_claims'<br>
162<strong>OPTION_required_claims</strong> = 'required_claims'<br>
163<strong>SAML_1_0_ASSERT_NS</strong> = 'urn:oasis:names:tc:SAML:1.0:assertion'<br>
164<strong>SAML_1_1_ASSERT_NS</strong> = 'http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1'<br>
165<strong>SAML_2_0_ASSERT_NS</strong> = 'urn:oasis:names:tc:SAML:2.0:assertion'<br>
166<strong>SENDER_VOUCHES_TOKEN</strong> = 'urn:oasis:names:tc:SAML:1.0:cm:sender-vouches'</td></tr></table>
167</body></html>
Note: See TracBrowser for help on using the browser.