5 トラスト・トークンの作成および検証

Oracle Platform Security Services (OPSS)ではトラスト・サービスを使用して、トラスト・トークンを管理します。RESTを使用してトークンを取得および検証できます。特定のアイデンティティ・ドメイン(IDD)でユーザーのためにトークンを発行および検証する権限のあるRESTクライアントのみが、トークンを発行および検証できます。クライアントに対する権限が付与できるように、クライアントは登録中にIDDを宣言する必要があります。

登録の詳細は、登録のPOSTメソッドを参照してください。

セクション メソッド リソース・パス

トラスト・サービス発行トークンのPOSTメソッド

POST

/opss/v2/trustService

トラスト・サービス検証トークンのPOSTメソッド

POST

/opss/v2/trustService

トラスト・サービス発行トークンのPOSTメソッド

トラスト・トークンを取得するには、POSTメソッドを使用します。

RESTリクエスト

POST opss/v2/trustService/issue

リクエスト本文

リクエストまたはレスポンス本文のメディア・タイプ。

メディア・タイプ:                                                                   application/json

リクエスト本文には、作成リクエストの詳細が含まれます。

表5-1 トラスト属性

属性 説明 必須

"protocol"

トラスト・プロトコル。埋込みプロトコルのみがサポートされています。

いいえ

"tokenType"

トークンのタイプ。サポートされているトークン・タイプは、SAMLSAML2およびJWTです。

はい

"username"

トークンが発行される対象のユーザー名。

はい

"tokenSigningMethod"

JWTトークンのコンテンツへの署名のための暗号アルゴリズム。この属性は、JWTトークン・タイプでのみ使用されます。PKI署名メソッドのみがサポートされます: RS-256 (SHA-256ハッシュ・アルゴリズムを使用したRSA)、RS-384(SHA-384ハッシュ・アルゴリズムを使用したRSA)およびRS-512(SHA-512ハッシュ・アルゴリズムを使用したRSA)。

(JWTトークンのみ)

はい

"confirmationMethod"

リライイング・パーティが、アサーションを示すパーティに対するアサーションのサブジェクトの対応を検証するために使用するメソッドです。サポートされる確認メソッドは、sender-vouchesholder-of-keyおよびbearerです。

(SAML2のみ)

はい

"scdAddress"

サブジェクト確認データ・アドレス。証明エンティティがアサーションを示すことのできるネットワークのアドレス/場所です。

(SAML2のみ)

はい

"addAuthenticatingAuthorities"

プレゼンタを認証するために、リクエスタによって信頼されているアイデンティティ・プロバイダのリスト。

(SAML2のみ)

はい

"nameIdFormat"

アイデンティティ・プロバイダによってサポートされている名前識別子の書式。名前識別子はプロバイダがユーザーに関して、お互いにやりとりするための手段です。

  • urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

  • urn:oasis:names:tc:SAML:2.0:nameid-format:transient

  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

  • urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

  • urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName

  • urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName

  • urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos

  • urn:oasis:names:tc:SAML:2.0:nameid-format:entity

(SAMLとSAML2のみ)

いいえ

"idd"

アイデンティティ・ドメイン。

はい

"expirationDate"

トークンの有効期限が切れて、処理では使用できなくなる日付。yyyy-MM-dd' T'HH:mm:ss.SSSZの形式にする必要があります。

はい

"appliesTo"

トークンが適用されるスコープ(エンドポイント・ターゲット)。

いいえ

"additionalClaims"

申告セグメントに追加するJWT申告。この属性は、JWTトークン・タイプでのみ使用されます。

いいえ

cURLの例

次の例は、cURLを使用してRESTリソースにPOSTリクエストを発行してトラスト・トークンを取得する方法を示しています。

curl -i -X POST -u username:password --data @issuetoken.json -H Content-Type:application/json https://myhost:7001/opss/v2/trustService/issue

リクエスト本文の例

次に、JSON形式のリクエスト本文の例を示します。

{
    "tokenType" : "JWT",
    "username" : "john.doe",
    "tokenSigningMethod" : "RS-256",
    "idd" : "cisco",
    "expirationDate" : "2015-10-19T12:08:56.235-0700",
}

レスポンス・ヘッダーの例

次の例に、レスポンス・ヘッダーを示します。HTTPステータス・コードの詳細は、「HTTPメソッドのHTTPステータス・コード」を参照してください。

HTTP/1.1 201 Created

トラスト・サービス検証トークンのPOSTメソッド

トラスト・トークンを検証するには、POSTメソッドを使用します。

RESTリクエスト

POST opss/v2/trustService/validate

リクエスト本文

リクエストまたはレスポンス本文のメディア・タイプ。

メディア・タイプ:                                                               application/json

リクエスト本文には、作成リクエストの詳細が含まれます。

表5-2 トラスト属性

属性 説明 必須

"token"

アイデンティティ・トークン。

はい

"protocol"

トラスト・プロトコル。ws-trustプロトコルのみがサポートされています。

いいえ

"tokenType"

トークンのタイプ。サポートされているトークン・タイプは、SAMLSAML2およびJWTです。

はい

"username"

トークンが発行される対象のユーザー名。

はい

"tokenSigningMethod"

JWTトークンのコンテンツへの署名のための暗号アルゴリズム。この属性は、JWTトークン・タイプでのみ使用されます。PKI署名メソッドのみがサポートされます: RS-256 (SHA-256ハッシュ・アルゴリズムを使用したRSA)、RS-384(SHA-384ハッシュ・アルゴリズムを使用したRSA)およびRS-512(SHA-512ハッシュ・アルゴリズムを使用したRSA)。

(JWTトークンのみ)

はい

"confirmationMethod"

サブジェクトおよびSAMLアサーションの証明を提供するために使用されるSAMLメソッド。サポートされる確認メソッドは、sender-vouchesholder-of-keyおよびbearerです。

(SAML2のみ)

はい

レスポンス本文

リクエストまたはレスポンス本文のメディア・タイプ。

メディア・タイプ:                                                               application/json

レスポンス本文には、検証操作に関する次のような詳細が含まれます。

属性 説明

"username"

トークンが発行される対象のユーザー名。

"idd"

アイデンティティ・ドメイン。

"expirationDate"

トークンの有効期限が切れて、処理では使用できなくなる日付。

"appliesTo"

トークンが適用されるスコープ(エンドポイント・ターゲット)。

"additionalClaims"

申告セグメントに追加するJWT申告。この属性は、JWTトークン・タイプでのみ使用されます。

cURLの例

次の例は、cURLを使用してRESTリソースにPOSTリクエストを発行してKSSキーストアをインポートする方法を示しています。

curl -i -X POST -u username:password --data @validatetoken.json -H Content-Type:application/json https://myhost:7001/opss/v2/trustService/validate

リクエスト本文の例

次に、JSON形式のリクエスト本文の例を示します。

{
    "token" : "eyThbGciOiJRUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzY290F2
guaW8iLCJleHAiOjEzMDA4MTszODAsIm5hbWUiOiJDfHJpcyBTWXZpbGxlamEiDCJhZG1pbi
I6dHJ1ZR0.03f329983b83f7d9a9f5fef85305880101d5e402afafa20154d094s229f7578",
    "protocol" : "ws-trust",
    "tokenType" : "JWT",
    "username" : "john.doe",
    "tokenSigningMethod" : "RS-256",
    "confirmationMethod" : "bearer"
}

レスポンス・ヘッダーの例

次の例に、レスポンス・ヘッダーを示します。HTTPステータス・コードの詳細は、「HTTPメソッドのHTTPステータス・コード」を参照してください。

HTTP/1.1 200 OK

レスポンス本文の例

次の例に、JSON形式のレスポンス本文を示します。

{
    "username" : "john.doe",
    "idd" : "cisco",
    "expirationDate" : "2015-10-19T12:08:56.235-0700",
}