summaryrefslogtreecommitdiffstats
path: root/docs/sections/development/index.rst
blob: 623da6aa502cca29611ed17f483181bc5feeb067 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright © 2017 AT&T Intellectual Property. All rights reserved.


Development
============
.. _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
.. _Developer Video: https://wiki.onap.org/download/attachments/38111886/ONAPClient.mp4?version=1&modificationDate=1532378616000&api=v2

============
Resources
============
  * `Example RESTful Client`_ (Java Client)
  * `Developer Video`_ (might be large)

=========================
ONAP Test Env
=========================

-------
Purpose
-------

The AAF Test Environment is a single instance VM setp so that 
  - ONAP Developers can utilize AAF with their personal machines without having to run their own AAF. 
  - ONAP Developers can put the Permissions and Roles required for their Apps into a common AAF Environment with others
  - AAF will pull (on demand) all the ONAP related Data (Perms/Roles/Identities) and put into "Bootstrap Data".  
	- This Bootstrap data becomes available on the myriad Testing Systems so that
		- They don't have to create AAF Data loading on their own.
		- The data is already consistent with other ONAP entities.

------
Access
------

You must be connected to the WindRiver "pod-onap-01" VPN to gain access
to AAF Beijing

----------------
DNS (/etc/hosts)
----------------

At this time, there is no known DNS available for ONAP Entities.  It is
recommended that you add the following entry into your "/etc/hosts" on
your accessing machine:

    /etc/hosts:

    10.12.6.214 aaf-onap-beijing-test aaf-onap-beijing-test.osaaf.org

------------------------------
Environment Artifacts (AAF FS)
------------------------------

    AAF has an HTTP Fileserver to gain access to needed public info.

    http://aaf-onap-beijing-test.osaaf.org/-

-----------
Credentials
-----------

    AAF does support User/Password, and allows additional plugins as it
    did in Amsterdam, however, User/Password credentials are inferior to
    PKI technology, and does not match the ONAP Design goal of TLS and
    PKI Identity across the board.  Therefore, while an individual
    organization might avail themselves of the User/Password facilities
    within AAF, for ONAP, we are avoiding.

    THEREFORE: **GO WITH CERTIFICATE IDENTITY**


Root Certificate
^^^^^^^^^^^^^^^^

    `AAF\_RootCA.cer <http://aaf-onap-beijing-test.osaaf.org/AAF_RootCA.cer>`__

AAF CA
^^^^^^

    At time of Beijing, an official Certificate Authority for ONAP was
    not declared, installed or operationalized.  Secure TLS requires
    certificates, so for the time being, the Certificate Authority is
    being run by AAF Team.

Root Certificate
''''''''''''''''

    | The Root Certificate for ONAP Certificate Authority used by AAF
      is \ `AAF\_RootCA.cer <http://aaf-onap-beijing-test.osaaf.org/AAF_RootCA.cer>`__
    | Depending on your Browser/ Operating System, clicking on this link
      will allow you to install this Cert into your Browser for GUI
      access (see next)

    This Root Certificate is also available in "truststore" form, ready
    to be used by Java or other processes:

-  

   -  

      -  `truststoreONAP.p12 <http://aaf-onap-beijing-test.osaaf.org/truststoreONAP.p12>`__ 
             -  This Truststore has ONLY the ONAP AAF\_RootCA in it.

      -  `truststoreONAPall.jks <http://aaf-onap-beijing-test.osaaf.org/truststoreONAPall.jks>`__
             - 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)

    Note: as of Java 8, pkcs12 format is recommended, rather than jks.
     Java's "keytool" utility provides a conversion for .jks for Java 7
    and previous.

Identity
''''''''

    Certificates certify nothing if there is no identity or process to
    verify the Identity.  Typically, for a company, an HR department
    will establish the formal organization, specifically, who reports to
    whom.  For ONAP, at time of Beijing, no such formalized "Org Chart"
    existed, so we'll be building this up as we go along.

    Therefore, with each Certificate Request, we'll need identity
    information as well, that will be entered into an ONAP Identity
    file.  Again, as a real company, this can be derived or accessed
    real-time (if available) as an "Organization Plugin".  Again, as
    there appears to be no such central formal system in ONAP, though,
    of course, Linux Foundation logins have some of this information for
    ALL LF projects.  Until ONAP declares such a system or decides how
    we might integrate with LF for Identity and we have time to create
    an Integration strategy, AAF will control this data.

    For each Identity, we'll need:

  People
        

    | # 0 - unique ID (for Apps, just make sure it is unique, for
      People, one might consider your LinuxFoundation ID)
    | # 1 - full name (for App, name of the APP)
    | # 2 - first name (for App, 
    | # 3 - last name
    | # 4 - phone
    | # 5 - official email
    | # 6 - type - person
    | # 7 - reports to: If you are working as part of a Project, list
      the PTL of your Project.  If you are PTL, just declare you are the
      PTL 

  Applications
              

    | # 0 - unique ID - For ONAP Test, this will be the same a the App
      Acronym.
    | # 1 - full name of the App
    | # 2 - App Acronym
    | # 3 - App Description, or just "Application"
    | # 5 - official email - a Distribution list for the Application, or
      the Email of the Owner
    | # 6 - type - application
    | # 7 - reports to: give the Application Owner's Unique ID.  Note,
      this should also be the Owner in AAF Namespace

Obtaining a Certificate
'''''''''''''''''''''''

Services/Clients
    See `Automated Configuration and Certificates`_.

.. _Automated Configuration and Certificates: AAF_4.1_config.html

People
      

    People Certificates can be used for browsers, curl, etc.

    Automation and tracking of People Certificates will be proposed for
    Dublin.