Cosmos API の OAuth2

コンテンツ :

トークンのリクエスト

OAuth2 で保護され REST API を使用する前に、Cosmos Tokens Generator にトークンを要求する必要があります。そしてそれをインストールしておく必要があります。これは、TCP /13000 ポートをリッスンするサービスです。FIWARE Labでは、これはcomputing.cosmos.lab.fiware.org:13000 です。任意の REST クライアントを使用して行うことができますが、最も簡単な方法は、次の curl コマンドを使用することです :

$ curl -k -X POST "https://<tokens_generator_host>:13000/cosmos-auth/v1/token" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=password&username=<registered_email_in_imd>&password=<password_in_idm>"
{"access_token": "qjHPUcnW6leYAqr3Xw34DWLQlja0Ix", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "V2Wlk7aFCnElKlW9BOmRzGhBtqgR2z"}

ご覧のとおり、パスワード・ベースの認可タイプの形式で、Identity Manager の資格情報がペイロードに必要です。これは、Cosmos Tokens Generator が Identity Manager インスタンスに依存しているためです。

トップ

Http APIs でのトークンの使用

これは、Cosmos-proxy が Cosmos Http ベースのリソースを保護するために使用されたケースです。

たとえば、WebHDFS サービスに送信されたすべてのリクエストは、実際にプロキシに送信され、X-Auth-Token 認証と承認のために必要なものが添付されます :

$ curl -X GET "http://storage.cosmos.lab.fiware.org:14000/webhdfs/v1/user/frb?op=liststatus&user.name=frb" -H "X-Auth-Token: <mytoken>"
"FileStatuses":{"FileStatus":[{"pathSuffix":".Trash","type":"DIRECTORY","length":0,"owner":"frb","group":"frb","permission":"700","accessTime":0,"modificationTime":1468519200094,"blockSize":0,"replication":0},{"pathSuffix":...

認証プロセスはユーザにとって透過的です。すべてが cosmos-proxy で行われます。

トップ

Hive でのトークンの使用

OAuth2 を使用して、HiveServer2 JDBC インタフェースを保護するには、cosmos-hive-auth-provider を使用します。

この場合、ユーザはいつものように資格情報を提供しますが、パスワードの代わりに有効な OAuth2 トークンを渡します。たとえば、resources folder フォルダにある Hive クライアントを使用している場合、次のように接続できます :

$ python hiveserver2-client.py computing.cosmos.lab.fiware.org 10000 default frb <mytoken>

認証プロセスはユーザにとって透過的です。すべては cosmos-hive-auth-provider で行われます。

トップ