README update

This commit is contained in:
Olof hagsand 2018-03-25 16:04:30 +02:00
parent bfce20c760
commit b8e35742b9
2 changed files with 20 additions and 20 deletions

View file

@ -18,11 +18,11 @@ Topics
* [Restconf](#restconf) * [Restconf](#restconf)
* [Datastore](datastore/README.md) * [Datastore](datastore/README.md)
* [Authentication and Authorization](#auth) * [Authentication and Authorization](#auth)
* [Example](example/README.md) * [Example](example/)
* [Changelog](CHANGELOG.md) recent changes. * [Changelog](CHANGELOG.md)
* [Clixon SDK](#SDK) * [Runtime](#runtime)
* [Clicon and Clixon project page](http://www.clicon.org) * [Clicon and Clixon project page](http://www.clicon.org)
* [Tests](test/README.md) * [Tests](test/)
* [Reference manual](http://www.clicon.org/doxygen/index.html) (Note: the link may not be up-to-date. It is better to build your own: `cd doc; make doc`) * [Reference manual](http://www.clicon.org/doxygen/index.html) (Note: the link may not be up-to-date. It is better to build your own: `cd doc; make doc`)
Background Background
@ -37,8 +37,8 @@ Users of clixon currently include:
* [Netgate](https://www.netgate.com) * [Netgate](https://www.netgate.com)
* [CloudMon360](http://cloudmon360.com) * [CloudMon360](http://cloudmon360.com)
* [Grideye](http://hagsand.se/grideye) * [Grideye](http://hagsand.se/grideye)
* [Netclean](https://www.netclean.com/solutions/whitebox) (only CLIgen) * [Netclean](https://www.netclean.com/solutions/whitebox) # only CLIgen
* [Prosilient's PTAnalyzer]<a href="http://www.prosilient.com"> (only CLIgen) * [Prosilient's PTAnalyzer](http://www.prosilient.com) # only CLIgen
See also [Clicon project page](http://clicon.org). See also [Clicon project page](http://clicon.org).
@ -139,7 +139,7 @@ The following are not implemented
- notifications (sec 6) - notifications (sec 6)
- schema resource - schema resource
See [more detailed restconf instructions](apps/restconf/README.md). See [more detailed instructions](apps/restconf/README.md).
Datastore Datastore
========= =========
@ -152,25 +152,25 @@ Update: There used to be a key-value plugin based on qdbm but isnow obsoleted. O
The datastore is primarily designed to be used by Clixon but can be used The datastore is primarily designed to be used by Clixon but can be used
separately. separately.
See [more detailed restconf instructions](datastore/README.md). See [more detailed instructions](datastore/README.md).
Auth Auth
==== ====
Authentication is not in-scope for Clixon, however, there is ongoing work Authentication is managed outside Clixon using SSH, SSL, Oauth2, etc.
to implement [NACM](https://tools.ietf.org/html/rfc8341).
There are hooks (plugin callbacks) to identify which user is accessing a For CLI, login is typically made via SSH. For netconf, SSH netconf subsystem can be used.
client. That identity can then be used for authorization.
Restconf however needs credentials. This is done by writing a credentials callback in a restconf plugin. See:
* [FAQ](doc/FAQ.md#how-do-i-write-an-authentication-callback).
* [Example](example/README.md) has an example how to do this with HTTP basic auth.
* It would be possible for do this for more advanced mechanisms such as Oauth2 or (https://github.com/CESNET/Netopeer2/tree/master/server/configuration)
In short, authentication needs to be coupled to clixon clients: There is an ongoing effort to implement authorization for Clixon according to [RFC8341(NACM)](https://tools.ietf.org/html/rfc8341), at least a subset of the functionality.
* CLI - Login has already been made via SSH
* Netconf - SSH netconf subsystem
* Restconf needs credentials. See [FAQ](doc/FAQ.md#How-do-I-write-an-authentication-callback). The [Example](example/README.md) has an example how to do this with HTTP basic auth. It is possible for do this for more advanced mechanisms such as Oauth2 or [https://github.com/CESNET/Netopeer2/tree/master/server/configuration]
SDK
=== Runtime
=======
<img src="doc/clixon_example_sdk.png" alt="clixon sdk" style="width: 180px;"/> <img src="doc/clixon_example_sdk.png" alt="clixon sdk" style="width: 180px;"/>

View file

@ -320,5 +320,5 @@ If a plugin is provided, it needs to supply a username. If not, the
request is unauthorized. the function mallocs a username and returns request is unauthorized. the function mallocs a username and returns
it. it.
See [../apps/example/routing_restconf.c] plugin_credentials() for See (../apps/example/routing_restconf.c) plugin_credentials() for
an example of HTTP basic auth. an example of HTTP basic auth.