623da6aa502cca29611ed17f483181bc5feeb067
[aaf/authz.git] / docs / sections / development / index.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. Copyright © 2017 AT&T Intellectual Property. All rights reserved.
4
5
6 Development
7 ============
8 .. _Example RESTful Client: https://gerrit.onap.org/r/gitweb?p=aaf/authz.git;a=blob;f=cadi/oauth-enduser/src/main/java/org/onap/aaf/cadi/enduser/SimpleRESTClient.java;h=30344de521ae628221bdb54642a71733304a5656;hb=HEAD
9 .. _Developer Video: https://wiki.onap.org/download/attachments/38111886/ONAPClient.mp4?version=1&modificationDate=1532378616000&api=v2
10
11 ============
12 Resources
13 ============
14   * `Example RESTful Client`_ (Java Client)
15   * `Developer Video`_ (might be large)
16
17 =========================
18 ONAP Test Env
19 =========================
20
21 -------
22 Purpose
23 -------
24
25 The AAF Test Environment is a single instance VM setp so that 
26   - ONAP Developers can utilize AAF with their personal machines without having to run their own AAF. 
27   - ONAP Developers can put the Permissions and Roles required for their Apps into a common AAF Environment with others
28   - AAF will pull (on demand) all the ONAP related Data (Perms/Roles/Identities) and put into "Bootstrap Data".  
29         - This Bootstrap data becomes available on the myriad Testing Systems so that
30                 - They don't have to create AAF Data loading on their own.
31                 - The data is already consistent with other ONAP entities.
32
33 ------
34 Access
35 ------
36
37 You must be connected to the WindRiver "pod-onap-01" VPN to gain access
38 to AAF Beijing
39
40 ----------------
41 DNS (/etc/hosts)
42 ----------------
43
44 At this time, there is no known DNS available for ONAP Entities.  It is
45 recommended that you add the following entry into your "/etc/hosts" on
46 your accessing machine:
47
48     /etc/hosts:
49
50     10.12.6.214 aaf-onap-beijing-test aaf-onap-beijing-test.osaaf.org
51
52 ------------------------------
53 Environment Artifacts (AAF FS)
54 ------------------------------
55
56     AAF has an HTTP Fileserver to gain access to needed public info.
57
58     http://aaf-onap-beijing-test.osaaf.org/-
59
60 -----------
61 Credentials
62 -----------
63
64     AAF does support User/Password, and allows additional plugins as it
65     did in Amsterdam, however, User/Password credentials are inferior to
66     PKI technology, and does not match the ONAP Design goal of TLS and
67     PKI Identity across the board.  Therefore, while an individual
68     organization might avail themselves of the User/Password facilities
69     within AAF, for ONAP, we are avoiding.
70
71     THEREFORE: **GO WITH CERTIFICATE IDENTITY**
72
73
74 Root Certificate
75 ^^^^^^^^^^^^^^^^
76
77     `AAF\_RootCA.cer <http://aaf-onap-beijing-test.osaaf.org/AAF_RootCA.cer>`__
78
79 AAF CA
80 ^^^^^^
81
82     At time of Beijing, an official Certificate Authority for ONAP was
83     not declared, installed or operationalized.  Secure TLS requires
84     certificates, so for the time being, the Certificate Authority is
85     being run by AAF Team.
86
87 Root Certificate
88 ''''''''''''''''
89
90     | The Root Certificate for ONAP Certificate Authority used by AAF
91       is \ `AAF\_RootCA.cer <http://aaf-onap-beijing-test.osaaf.org/AAF_RootCA.cer>`__
92     | Depending on your Browser/ Operating System, clicking on this link
93       will allow you to install this Cert into your Browser for GUI
94       access (see next)
95
96     This Root Certificate is also available in "truststore" form, ready
97     to be used by Java or other processes:
98
99 -  
100
101    -  
102
103       -  `truststoreONAP.p12 <http://aaf-onap-beijing-test.osaaf.org/truststoreONAP.p12>`__ 
104              -  This Truststore has ONLY the ONAP AAF\_RootCA in it.
105
106       -  `truststoreONAPall.jks <http://aaf-onap-beijing-test.osaaf.org/truststoreONAPall.jks>`__
107              - This Truststore has the ONAP AAF\_RootCA in it PLUS all the Public CA Certs that are in Java 1.8.131 (note: this is in jks format, because the original JAVA truststore was in jks format)
108
109     Note: as of Java 8, pkcs12 format is recommended, rather than jks.
110      Java's "keytool" utility provides a conversion for .jks for Java 7
111     and previous.
112
113 Identity
114 ''''''''
115
116     Certificates certify nothing if there is no identity or process to
117     verify the Identity.  Typically, for a company, an HR department
118     will establish the formal organization, specifically, who reports to
119     whom.  For ONAP, at time of Beijing, no such formalized "Org Chart"
120     existed, so we'll be building this up as we go along.
121
122     Therefore, with each Certificate Request, we'll need identity
123     information as well, that will be entered into an ONAP Identity
124     file.  Again, as a real company, this can be derived or accessed
125     real-time (if available) as an "Organization Plugin".  Again, as
126     there appears to be no such central formal system in ONAP, though,
127     of course, Linux Foundation logins have some of this information for
128     ALL LF projects.  Until ONAP declares such a system or decides how
129     we might integrate with LF for Identity and we have time to create
130     an Integration strategy, AAF will control this data.
131
132     For each Identity, we'll need:
133
134   People
135         
136
137     | # 0 - unique ID (for Apps, just make sure it is unique, for
138       People, one might consider your LinuxFoundation ID)
139     | # 1 - full name (for App, name of the APP)
140     | # 2 - first name (for App, 
141     | # 3 - last name
142     | # 4 - phone
143     | # 5 - official email
144     | # 6 - type - person
145     | # 7 - reports to: If you are working as part of a Project, list
146       the PTL of your Project.  If you are PTL, just declare you are the
147       PTL 
148
149   Applications
150               
151
152     | # 0 - unique ID - For ONAP Test, this will be the same a the App
153       Acronym.
154     | # 1 - full name of the App
155     | # 2 - App Acronym
156     | # 3 - App Description, or just "Application"
157     | # 5 - official email - a Distribution list for the Application, or
158       the Email of the Owner
159     | # 6 - type - application
160     | # 7 - reports to: give the Application Owner's Unique ID.  Note,
161       this should also be the Owner in AAF Namespace
162
163 Obtaining a Certificate
164 '''''''''''''''''''''''
165
166 Services/Clients
167     See `Automated Configuration and Certificates`_.
168
169 .. _Automated Configuration and Certificates: AAF_4.1_config.html
170
171 People
172       
173
174     People Certificates can be used for browsers, curl, etc.
175
176     Automation and tracking of People Certificates will be proposed for
177     Dublin.
178
179
180