OSLC RESTful APIを利用するためのユーザー認証

<< 目次を表示 >>

ページ位置:  プロジェクトの作成と管理 > Proクラウドサーバ > 有料ライセンスで利用できる機能 > OSLCの利用 > OSLC Architecture Management 2.0 >

OSLC RESTful APIを利用するためのユーザー認証

リソースを取得・更新・作成・削除するには、OSLC GET/POSTのリクエストでユーザー認証トークンを渡す必要があります。Proクラウドサーバ経由で接続されたプロジェクトが、セキュリティ機能による認証またはOpenID認証を必要としている場合、ユーザー認証トークンを受け取るためにユーザーを認証する必要があります。一方、セキュリティ機能が無効になっているプロジェクトでは、情報を渡すことなくユーザー認証トークンを要求できます。ユーザー認証トークンを渡さない限り、OSLCのリクエストを受け取ってもProクラウドサーバは処理しません。

 

ユーザー認証トークンを取得する手順は次の通りです。

 

 

 

ユーザー認証トークンの要求

#

操作方法

1

設定状況により、参照する項目が変わります。

  • OpenID認証が有効な場合には手順2に進みます。
  • WindowsのNTLM認証が有効な場合には手順3に進みます。
  • プロジェクトのセキュリティ機能で認証している場合には手順4に進みます。
  • セキュリティ機能が有効でない場合には手順5に進みます。

2

ログインIDとリダイレクトURIをポストします。

    URL: <protocol>://<server>/<model_name>/oslc/am/login/

    POST Body: sso=openid;code=<AUTHORIZATION CODE>;redirecturi=<REDIRECT URI>;

手順6に進みます。

3

以下の内容をPOSTします。

    URL: <protocol>://<server>/<model_name>/oslc/am/login/

    POST Body: sso=ntlm;

手順6に進みます。

4

以下の内容をPOSTします。

    URL: <protocol>://<server>/<model_name>/oslc/am/login/

    POST Body: uid=<USER ID>;pwd=<PASSWORD>;

手順6に進みます。

5

以下の内容をPOSTします。

    URL: <protocol>://<server>/<model_name>/oslc/am/login/

    POST Body: uid=;pwd=;

6

認証が成功した場合の返答例は以下の通りです。

 

<?xml version="1.0" encoding="UTF-8"?>

 

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

 

     xmlns:ss="http://www.sparxsystems.com.au/oslc_am#"

 

     xmlns:foaf="http://xmlns.com/foaf/0.1/">

 

    <ss:login>

 

         <!--boolean value that specifies whether the model allows Resource Creation/Update-->

 

         <ss:readonlymodel>VALUE</ss:readonlymodel>

 

         <!--boolean value that specifies whether you have valid Pro Cloud Server license-->

 

         <ss:validlicense>VALUE</ss:validlicense>

 

         <!--specifies the Full Name and User ID of the User in a Security Enabled Model-->

 

         <ss:userfullname>

 

              <foaf:Person>

 

                   <foaf:name>FULL NAME</foaf:name>

 

                   <foaf:nick>USER ID</foaf:nick>

 

              </foaf:Person>

 

         </ss:userfullname>

 

         <!--specifies the User Authentication Token-->

 

         <ss:useridentifier>USER AUTHENTICATION TOKEN</ss:useridentifier>

 

         <!--specifies the OpenID Access Token in a Model that supports OpenID Authentication-->

 

         <ss:accesstoken>OPENID ACCESS TOKEN</ss:accesstoken>

 

         <!--specifies the OpenID Refresh Token in a Model that supports OpenID Authentication-->

 

         <ss:refreshtoken>OPENID REFRESH TOKEN</ss:refreshtoken>

 

         <!--boolean value that specifies whether you have permission to create/update Resources-->

 

         <ss:elementpermission>VALUE</ss:elementpermission>

 

         <!--boolean value that specifies whether you have permission to update Diagrams-->

 

         <ss:diagrampermission>VALUE</ss:diagrampermission>

 

         <!--boolean value that specifies whether you have permission to create/update Resource

Tests-->

 

         <ss:testpermission>VALUE</ss:testpermission>

 

         <!--boolean value that specifies whether you have permission to create/update Resource

Allocations-->

 

         <ss:resourceallocationpermission>VALUE</ss:resourceallocationpermission>

 

         <!--boolean value that specifies whether you have permission to create/update Resource

Maintenance Items-->

 

         <ss:maintenanceitempermission>VALUE</ss:maintenanceitempermission>

 

         <!--boolean value that specifies whether you have permission to create/update Resource

Project Management Items-->

 

         <ss:projectmanagementitempermission>VALUE</ss:projectmanagementitempermission>

 

    </ss:login>

 

</rdf:RDF>

 

 

OSCLのリクエストにユーザー認証トークンを含める

ユーザー認証トークンを取得したら、すべてのリクエスト時にユーザー認証トークンを渡します。:

 

 

 

GETリクエストでユーザー認証トークンを渡す

GETリクエストの場合には、ユーザー認証トークンをクエリ文字列のパラメータ 'useridentifier'として渡します。:

 

 

 

#

操作内容

1

以下のパッケージの情報を取得する場合のURLは以下の通りです。

 

  • パッケージのGUIDは {5147E138-1F14-4738-B721-5FCC0F8821A8}
  • セキュリティ機能が有効
  • ユーザー認証トークンは {72825AF9-E116-48f1-9DF8-77815E66B1A7}

 

http://localhost:480/firebird_model/oslc/am/resource/pk_{5147E138-1F14-4738-B721-5FCC0F8821A8}/?useridentifier={72825AF9-E116-48f1-9DF8-77815E66B1A7}

2

以下の条件の要素の情報を取得する場合のURLは以下の通りです。

 

  • 名前がClass1
  • 認証トークンは {72825AF9-E116-48f1-9DF8-77815E66B1A7}

 

http://localhost:480/firebird_model/oslc/am/qc/?useridentifier={72825AF9-E116-48f1-9DF8-77815E66B1A7}&oslc.where=dcterms:title="Class1"

 

 

OSLC POSTでユーザー認証トークンを渡す

OSLC POSTリクエストの場合には、RDF/XMLの一部でユーザー認証トークンを渡します。

 

#

操作内容

1

セキュリティ機能が有効で、以下の場合とします。

  • ユーザー認証トークンは {72825AF9-E116-48f1-9DF8-77815E66B1A7}
  • クラス要素 'Class1' をGUID {965A54C2-6A89-46d7-AB7E-F192668010CA} のパッケージに作る

 

ノート・複雑度・バージョンを指定して作成

<?xml version="1.0" encoding="UTF-8"?>

 

<rdf:RDF xmlns:oslc_am="http://open-services.net/ns/am#"

 

               xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

 

               xmlns:dcterms="http://purl.org/dc/terms/"

 

               xmlns:foaf="http://xmlns.com/foaf/0.1/"

 

               xmlns:ss="http://www.sparxsystems.com.au/oslc_am#">

 

    <oslc_am:Resource>

 

         <!--Required Properties-->

 

         <dcterms:title>Class1</dcterms:title>

 

         <dcterms:type>Class</dcterms:type>

 

         <ss:parentresourceidentifier>pk_{259A54C2-6A89-46d7-AB7E-F192668010CA}

</ss:parentresourceidentifier>    

 

         <dcterms:description>Created via OSLC</dcterms:description>

 

         <ss:complexity>Easy</ss:complexity>

 

         <ss:version>1.0</ss:version>

 

         <ss:useridentifier>{72825AF9-E116-48f1-9DF8-77815E66B1A7}

</ss:useridentifier>

 

    </oslc_am:Resource>

 

</rdf:RDF>

2

セキュリティ機能が無効で、以下の場合とします。

 

  • ユーザー認証トークンは {72825AF9-E116-48f1-9DF8-77815E66B1A7}
  • アクター要素 'Actor1' が GUID {567854C2-6A89-46d7-AB7E-F192668010CA} で既に存在し、名前を 'Actor 1_New' に更新する

 

<?xml version="1.0" encoding="UTF-8"?>

 

<rdf:RDF xmlns:oslc_am="http://open-services.net/ns/am#"

 

               xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

 

               xmlns:dcterms="http://purl.org/dc/terms/"

 

               xmlns:foaf="http://xmlns.com/foaf/0.1/"

 

               xmlns:ss="http://www.sparxsystems.com.au/oslc_am#">

 

    <oslc_am:Resource>

 

         <!--Required Properties-->

 

         <dcterms:identifier>el_{567854C2-6A89-46d7-AB7E-F192668010CA}</dcterms:identifier>  

 

         <dcterms:title>Actor1_New</dcterms:identifier>

 

         <ss:useridentifier>{72825AF9-E116-48f1-9DF8-77815E66B1A7}</ss:useridentifier>

 

    </oslc_am:Resource>

 

</rdf:RDF>

 

 

プロジェクトからのログアウト

通常は、ユーザー認証トークンが最後に利用されてから30分が経過すると、自動的にログアウトとなります。継続利用する場合、再度ユーザー認証トークンを取得する必要があります。あるいは、ユーザー認証トークンを渡して明示的にログアウトできます。:
(この経過時間はProクラウドサーバ 設定ツールで変更できます。)

 

 

成功した場合には、 200 OK HTTP レスポンスを受け取ります。ユーザー認証トークンは利用できなくなります。

 

失敗した場合には、404 Not Found HTTP レスポンスを受け取ります。

 

注意:

  • OSLCの機能は有料ライセンスが適用されたProクラウドサーバのみで利用できます。
  • ユーザー認証トークンが渡されない場合、Proクラウドサーバは処理を行いません。

 

 

参照: